
    .`i^	                         d dl Z d dlmZ d dlmZ dedede j        dz  fdZdedededede	e j        e j        f         f
d	Z
dededz  dedede	eee j        dz  f         f
d
ZdS )    N)get_dp_groupdp_size
num_tokensreturnc                 X    | dk    rd S t          j        | f|t           j        d          S )N   cpudtypedevice)torchfullint32)r   r   s     o/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/vllm/v1/worker/gpu/dp_utils.pymake_num_tokens_across_dpr   	   s-    !||t:wj*EKNNNN    cudagraph_sizedp_rankc                     |dk    sJ t                      j        }t          j        d|t          j        d          }| |d         |<   ||d         |<   t          j        ||           |d         |d         fS )Nr      r	   r
   r   )group)r   	cpu_groupr   zerosr   dist
all_reduce)r   r   r   r   r   tensors         r   get_batch_metadata_across_dpr      s{     Q;;;;NN$E[G5;uEEEF#F1Ig'F1IgOF%((((!9fQir   c                    |dk    r|d|d fS d| d fS | dk    rd}n|d}t          | |||          \  }}t          j        |dk                                              rdS t          j        |dk                                              r?t	          |                                                                          }||d d <   d||fS t          j        |d          }t	          ||                                                   }d||fS )Nr   TFr   )Fr   N)min)r   r   allitemintmaxclamp)r   r   r   r   num_tokens_across_dpcudagraph_size_across_dpmax_cudagraph_sizenum_tokens_after_paddings           r   get_cudagraph_and_dp_paddingr*      sE    !||%--*d**Q		5QNGW6 622 y%*++0022 ~y)R/005577 E !!9!=!=!?!?!D!D!F!FGG"4QQQ')===  %{+?QGGG#&';G'D'I'I'K'K#L#L .0DDDr   )r   torch.distributeddistributedr   vllm.distributed.parallel_stater   r#   Tensorr   tupler   boolr*    r   r   <module>r2      s)                8 8 8 8 8 8Os O Ot@S O O O O      	 
 5<%&        #E#E$J#E #E 	#E
 4elT))*#E #E #E #E #E #Er   