
    .`i                         d dl mZ d dlZd dlZd dlmZmZmZ d dl	m
Z
  G d de          Zedej        j        dz  fd            Zd	ej        d
ej        fdZdS )    )contextmanagerN)AsyncModelRunnerOutputLogprobsTensorsModelRunnerOutput)SamplerOutputc            
       h    e Zd Zdededej        dej        j        dej        j	        f
dZ
defdZd	S )
AsyncOutputmodel_runner_outputsampler_outputnum_sampled_tokenscopy_stream
copy_eventc                 8   || _         || _        || _        || _        || _        t
          j                                        }t
          j                            | j                  5  | j        	                    |           t          |j                  | _        |j        |j                                        | _        nd | _        |j        t          |j                  | _        nd | _        t          |          | _        i | _        | j         j        rM| j         j                                        D ].\  }}||                                | j        |<   $d | j        |<   /| j                            | j                   d d d            d S # 1 swxY w Y   d S N)r
   r   r   r   r   torchcudacurrent_streamstreamwait_streamasync_copy_to_npsampled_token_idslogprobs_tensorsto_cpu_nonblockingnum_nansnum_sampled_tokens_npprompt_logprobs_dictitemsrecord)	selfr
   r   r   r   r   default_streamkvs	            r/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/vllm/v1/worker/gpu/async_utils.py__init__zAsyncOutput.__init__   s    $7 ,"4&$2244Zt/00 	5 	5((888%5n6V%W%WD".:"3FFHH %% )-%&2 01H I I $)9:L)M)MD&KMD%'< < 4IOOQQ < <DAq}787K7K7M7M1!447;1!44O""4#3444-	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5s   &DFFFreturnc                 8   | j                                          | j                                        }t	          |          }| j                                        }t          |          D ]}||         ||         d = || j        _        | j        H| j                                        fdt          | j        j
                  D             | j        _        | j        #| j                                        | j        _        | j        | j        _        | j        S )Nc                 (    i | ]\  }}||         S  r(   ).0ireq_idr   s      r#   
<dictcomp>z*AsyncOutput.get_output.<locals>.<dictcomp>K   s3     ; ; ;Av ; ; ;    )r   synchronizer   tolistlenr   ranger
   r   	enumeratereq_idsnum_nans_in_logitsr   tolistslogprobsr   )r   r   num_reqsr   r*   r   s        @r#   
get_outputzAsyncOutput.get_output;   s    ##%%% .2-C-J-J-L-L())!7>>@@x 	> 	>A!!$%7%:%<%<==5F 2=$}++--H; ; ; ;!*4+C+K!L!L; ; ;D$7
  ,040E0M0M0O0OD$-8<8Q 5''r-   N)__name__
__module____qualname__r   r   r   Tensorr   StreamEventr$   r8   r(   r-   r#   r	   r	      s        (5.(5 &(5 "L	(5
 Z&(5 J$(5 (5 (5 (5T(- ( ( ( ( ( (r-   r	   eventc              #      K   | |                                   	 d V  | |                                  d S d S # | |                                  w w xY wr   )r.   r   )r?   s    r#   async_barrierrA   V   sh      LLNNNNN 5LLNNNN s	   8 Axr%   c                 T    |                      dd                                          S )NcpuT)non_blocking)tonumpy)rB   s    r#   r   r   a   s$    44D4))//111r-   )
contextlibr   rG   npr   vllm.v1.outputsr   r   r    vllm.v1.worker.gpu.sample.outputr   r	   r   r>   rA   r<   ndarrayr   r(   r-   r#   <module>rM      s	   & % % % % %              
 ; : : : : :C( C( C( C( C(( C( C( C(L )D0    2 2 2 2 2 2 2 2r-   