
    .`i                         d dl Z d dlmZmZ d dlmZ ej        dej        dej        fd            Zej        dej        fd            Z	de j
        d	e j
        d
e j
        fdZde j
        dede j
        d
efdZdS )    N)tltriton)LogprobsTensors
BLOCK_SIZEPADDED_TOPKc                 Z   t          j        d          }|||z  z   }	t          d          }
t          d||          D ]l}|t          j        d|          z   }t          j        |	|z   ||k     t          d                    }t          j        t          j        ||
                    }
m|
                    t           j	                  }
d}t          d||          D ]}|t          j        d|          z   }t          j        |	|z   ||k     d          }|                    t           j	                  }t          j
        ||
z
            }t          j        ||k     |d          }|t          j        |          z  }t          j        |          }t          j        d|          }||k     }t          j        |||z  z   |z   |d          }t          j        |	|z   |          }|                    t           j	                  }||
z
  |z
  }t          j        | ||z  z   |z   ||           d S )Nr   -infmaskotherg        )r   )r   
program_idfloatrangearangeloadmaxmaximumtofloat32expwheresumlogstore)
output_ptr
logits_ptrlogits_stridetopk_ids_ptrtopk
vocab_sizer   r   req_idxrow_ptrmax_valiblocklogitsseelsek_offsetk_masktopk_idsos                        u/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/vllm/v1/worker/gpu/sample/logprob.py_topk_log_softmax_kernelr/   
   s    mAG7]22GFmmG1j*-- 6 6BIa,,,5uz/AvWWW&FG4455jj$$G	B1j*--  BIa,,,5uz/AMMM2:&&F6G#$$HUZ'C00
bfQii
&**CyK((H_Fw|gn4x?fTUVVVHWWx'f555FYYrz""F3AHZ'D.(83QVDDDDDD    c                    t          j        d          }|||z  z   }t          j        ||z             }t          j        ||z             }	d}
t          d||          D ]}}|t          j        d|          z   }t          j        ||z   ||k     t          d                    }|
t          j        ||	k                        t           j                            z  }
~t          j	        | |z   |
           d S )Nr   r	   r
   )
r   r   r   r   r   r   r   r   int32r   )r   r   r   token_ids_ptrr    r   r!   r"   token_idxnr$   r%   r&   s                 r.   _ranks_kernelr7   4   s     mAG7]22Gw}w.//H
("##A	A1j*-- / /BIa,,,5uz/AvWWW	RVVaZOOBH--...HZ'!1%%%%%r0   r&   	token_idsreturnc                 f   | j         d         }| j         d         }|                    t          j                  }|j         d         }t          j        ||t          j        | j                  }t          |f         || |                     d          |||dt          j
        |                     |S )Nr      dtypedevicei   )r   r   )shaper   torchint64emptyr   r>   r/   strider   next_power_of_2)r&   r8   
batch_sizer    num_logprobslogprobss         r.   compute_token_logprobsrH   K   s     aJaJU[))I?1%L{m}	  H j]+a*<88	 	 	 	 Or0   rF   sampled_token_idsc                    |dk    sJ | j         \  }}|dk    r|                    d          }nGt          j        | |d          j        }t          j        |                    d          |fd          }t          | |          }t          j        |t          j        | j	                  }t          |f         || |                     d          ||d           t          |||          S )	Nr   )dimr;   r<   i    )r   )logprob_token_idsrG   selected_token_ranks)r?   	unsqueezer@   r   indicescatrH   rB   rA   r>   r7   rC   r   )	r&   rF   rI   rE   r    rM   topk_indicesrG   token_rankss	            r.   compute_topk_logprobsrT   f   s    
 1#\J
q-77;;z&,B???G!I((,,l;
 
 
 &f.?@@H+k}  K
 :- a    +(   r0   )r@   vllm.triton_utilsr   r   vllm.v1.outputsr   jit	constexprr/   r7   TensorrH   intrT    r0   r.   <module>r\      s#    ( ( ( ( ( ( ( ( + + + + + + &E &E &E &E &E &ER & & & & &,L| \   6$L$$ |$ 	$ $ $ $ $ $r0   