o
    
۾i                     @   sT   d dl Z d dlmZ d dlmZmZ ejdejfddZde j	de j	fd	d
Z
dS )    N)	libdevice)tltriton
BLOCK_SIZEc                 C   s   t d}d}td||D ]6}|t d| }||k }	t j| ||  | |	dd}
|
t j}
t|
t j	}|t 
|t j7 }qt || | d S )Nr   )maskother)r   
program_idrangearangeloadtofloat32r   isnanint1sumint32store)
logits_ptrlogits_stridenum_nans_ptr
vocab_sizer   req_idxnum_nansiblockr   logitsis_nan r   U/home/ubuntu/.local/lib/python3.10/site-packages/vllm/v1/worker/gpu/metrics/logits.py_num_nans_kernel	   s   
r   r   returnc                 C   sD   | j \}}d}tj|tj| jd}t|f | | d|||d |S )Ni    )dtypedevicer   )r   )shapetorchemptyr   r"   r   stride)r   num_reqsr   r   r   r   r   r   get_num_nans   s   
r(   )r$   &torch._inductor.runtime.triton_helpersr   vllm.triton_utilsr   r   jit	constexprr   Tensorr(   r   r   r   r   <module>   s   