§
    .`ƒi<  ã                   ó"  — d dl Z d dlmZmZ ej        dej        fd„¦   «         Zde j        de j        de j        ddfd	„Zej        dej        d
ej        fd„¦   «         Z	de j        de j        de j        de j        de j        de
de j        fd„ZdS )é    N)ÚtlÚtritonÚ
BLOCK_SIZEc                 ó  — t          j        d¦  «        }t          j        ||z   ¦  «        }t          j        ||z   ¦  «                             t           j        ¦  «        }|dk    s|dk    rd S t          j        d¦  «        }	|	|z  t          j        d|¦  «        z   }
|
|k     }t          j        | ||z  z   |
z   |¬¦  «        }|                     t           j        ¦  «        }||z  }t          j        | ||z  z   |
z   ||¬¦  «         d S )Nr   ç        g      ð?é   )Úmask)r   Ú
program_idÚloadÚtoÚfloat32ÚarangeÚstore)Ú
logits_ptrÚlogits_strideÚidx_mapping_ptrÚtemperature_ptrÚ
vocab_sizer   Ú	batch_idxÚreq_state_idxÚtemperatureÚ	block_idxÚblockr	   Úlogitss                út/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/vllm/v1/worker/gpu/sample/gumbel.pyÚ_temperature_kernelr      s  € õ ”˜aÑ Ô €IÝ”G˜O¨iÑ7Ñ8Ô8€MÝ”'˜/¨MÑ9Ñ:Ô:×=Ò=½b¼jÑIÔI€KØcÒÐ˜[¨CÒ/Ð/àˆå”˜aÑ Ô €IØ˜
Ñ"¥R¤Y¨q°*Ñ%=Ô%=Ñ=€EØ:Ò€DåŒWZ )¨mÑ";Ñ;¸eÑCÈ$ÐOÑOÔO€FØYŠY•r”zÑ"Ô"€FØkÑ!€FÝ„HˆZ˜) mÑ3Ñ3°eÑ;¸VÈ$ÐOÑOÔOÐOÐOÐOó    r   Úidx_mappingr   Úreturnc                 ó¨   — | j         \  }}d}t          j        ||¦  «        }t          ||f         | |                      d¦  «        ||||¬¦  «         d S )Ni    r   )r   )Úshaper   Úcdivr   Ústride)r   r   r   Únum_reqsr   r   Ú
num_blockss          r   Úapply_temperaturer&   "   so   € ð
 "œ<Ñ€HˆjØ€JÝ”˜Z¨Ñ4Ô4€JÝ˜ :Ð.Ô/ØØŠaÑÔØØØØðñ ô ð ð ð r   ÚAPPLY_TEMPERATUREc                 ó  — t          j        d¦  «        }t          j        ||z   ¦  «        }t          j        d¦  «        }||z  t          j        d|¦  «        z   }||
k     }t          j        |||z  z   |z   |t	          d¦  «        ¬¦  «        }|                     t           j        ¦  «        }t          j        |	|z   ¦  «                             t           j        ¦  «        }|dk    rït          j        ||z   ¦  «        }t          j        ||z   ¦  «        }t          j        ||¦  «        }t          j        ||¦  «                             t           j	        ¦  «        }t          j
        t          j
        |dz   ¦  «         dz   ¦  «         }|                     t           j        ¦  «        }|r||z  }t          j        |||z   t	          d¦  «        ¦  «        }t          j        |d¬¦  «        }||z  |z   }t          j        |d¬¦  «        }t          j        | ||z  z   |z   |¦  «         t          j        |||z  z   |z   |¦  «         d S )Nr   r   z-inf)r	   Úotherr   g#B’¡œÇ;)Úaxis)r   r
   r   r   Úfloatr   r   ÚrandintÚrandÚfloat64ÚlogÚwhereÚargmaxÚmaxr   )Úlocal_argmax_ptrÚlocal_argmax_strideÚlocal_max_ptrÚlocal_max_strider   r   r   Ú	seeds_ptrÚpos_ptrÚtemp_ptrr   r   r'   r   r   r   r   r	   r   ÚtempÚseedÚposÚgumbel_seedÚrÚgumbel_noiseÚidxÚtoken_idÚvalues                               r   Ú_gumbel_sample_kernelrC   4   s  € õ  ”˜aÑ Ô €IÝ”G˜O¨iÑ7Ñ8Ô8€Må”˜aÑ Ô €IØ˜
Ñ"¥R¤Y¨q°*Ñ%=Ô%=Ñ=€EØ:Ò€DÝŒWØY Ñ.Ñ.°Ñ6ØÝF‰mŒmðñ ô €Fð
 YŠY•r”zÑ"Ô"€FåŒ78˜mÑ+Ñ,Ô,×/Ò/µ´
Ñ;Ô;€DØˆs‚{€{åŒwy =Ñ0Ñ1Ô1ˆÝŒgg 	Ñ)Ñ*Ô*ˆÝ”j  sÑ+Ô+ˆõ ŒGK Ñ'Ô'×*Ò*­2¬:Ñ6Ô6ˆÝœ¥¤ q¨5¡yÑ 1Ô 1Ð1°EÑ9Ñ:Ô:Ð:ˆØ#—’¥r¤zÑ2Ô2ˆð ð 	#ð ˜d‘]ˆFõ ”˜$ ¨Ñ 5µu¸V±}´}ÑEÔEˆå
Œ)F Ð
#Ñ
#Ô
#€CØ˜:Ñ%¨Ñ+€HÝŒF6 Ð"Ñ"Ô"€EÝ„HÐ 	Ð,?Ñ ?Ñ?À)ÑKÈXÑVÔVÐVÝ„Hˆ]˜YÐ)9Ñ9Ñ9¸IÑEÀuÑMÔMÐMÐMÐMr   r;   r<   r&   c                 ó   — | j         \  }}d}t          j        ||¦  «        }	t          j        ||	t          j        | j        ¬¦  «        }
t          j        ||	t          j        | j        ¬¦  «        }t          ||	f         |
|
 	                    d¦  «        || 	                    d¦  «        | |  	                    d¦  «        |||||||¬¦  «         | 
                    dd¬¦  «        }|
                     d|¬¦  «                             d¦  «        }|S )	Ni   )ÚdtypeÚdevicer   )r   r'   éÿÿÿÿT)ÚdimÚkeepdim)rH   Úindex)r!   r   r"   ÚtorchÚemptyÚint64rF   r   rC   r#   r1   ÚgatherÚview)r   r   r   r;   r<   r&   r$   r   r   r%   Úlocal_argmaxÚ	local_maxÚmax_block_idxÚsampleds                 r   Úgumbel_samplerT   m   s+  € ð "œ<Ñ€HˆjØ€JÝ”˜Z¨Ñ4Ô4€JÝ”;ØØÝŒkØŒ}ð	ñ ô €Lõ ”ØØÝŒmØŒ}ð	ñ ô €Iõ ˜8 ZÐ0Ô1ØØ×Ò˜AÑÔØØ×Ò˜ÑÔØØŠaÑÔØØØØØØØ+ðñ ô ð ð  ×$Ò$¨°TÐ$Ñ:Ô:€MØ×!Ò! b°Ð!Ñ>Ô>×CÒCÀBÑGÔG€GØ€Nr   )rK   Úvllm.triton_utilsr   r   ÚjitÚ	constexprr   ÚTensorr&   rC   ÚboolrT   © r   r   ú<module>r[      sF  ðð €€€à (Ð (Ð (Ð (Ð (Ð (Ð (Ð (ð „ðPð ”ðPð Pð Pñ „ðPð2ØŒLðà”ðð ”ðð 
ð	ð ð ð ð$ „ð5Nð ”ð5Nð ”|ð5Nð 5Nð 5Nñ „ð5Nðp)ØŒLð)à”ð)ð ”ð)ð Œ,ð	)ð
 
Œð)ð ð)ð „\ð)ð )ð )ð )ð )ð )r   