o
    
۾i
                     @   sZ   d dl Zd dlZd dlmZ d dlmZ dZeej	j
Zeej	jZG dd dZdS )    N)SamplingParams)UvaBackedTensorc                   @   s   e Zd ZdedefddZdededdfd	d
ZdddZdej	de
fddZdej	de
fddZdej	de
fddZdej	defddZdS )SamplingStatesmax_num_reqs
vocab_sizec                 C   s   || _ || _t|tjd| _t|tjd| _t|tjd| _t|tjd| _	t|tj
d| _| jj| j | j  | jjd | j  tj| j tjd| _| jt d S )N)dtype      ?)r   r   r   torchfloat32temperatureint32top_ktop_pmin_pint64seedsnpfillcopy_to_uvaemptynum_logprobsNO_LOGPROBS)selfr   r    r   T/home/ubuntu/.local/lib/python3.10/site-packages/vllm/v1/worker/gpu/sample/states.py__init__   s   

zSamplingStates.__init__req_idxsampling_paramsreturnNc                 C   s   |j | j j|< |j| jj|< |j}|dks|| jkr| j}|| jj|< |j| jj|< |j}|d u r8tjt	t
}|| jj|< |j}|d u rGt}|| j|< d S )Nr   )r   r   r   r   r   r   seedrandomrandint_NP_INT64_MIN_NP_INT64_MAXr   logprobsr   r   )r   r   r   r   r    r   r   r   r   add_request#   s   zSamplingStates.add_requestc                 C   s6   | j   | j  | j  | j  | j  d S N)r   r   r   r   r   r   )r   r   r   r   apply_staged_writes6   s
   



z"SamplingStates.apply_staged_writesidx_mapping_npc                 C      t | jj | dkS )Ng        )r   anyr   r   r)   r   r   r   do_min_p=      zSamplingStates.do_min_pc                 C   s   t | jj | | jkS r'   )r   r+   r   r   r,   r   r   r   do_top_k@   s   zSamplingStates.do_top_kc                 C   r*   )Nr	   )r   r+   r   r,   r   r   r   do_top_pC   r.   zSamplingStates.do_top_pc                 C   s   t t| j| S r'   )intr   maxr   r,   r   r   r   max_num_logprobsF   s   zSamplingStates.max_num_logprobs)r   N)__name__
__module____qualname__r1   r   r   r&   r(   r   ndarrayboolr-   r/   r0   r3   r   r   r   r   r      s    
r   )numpyr   r
   vllm.sampling_paramsr   vllm.v1.worker.gpu.buffer_utilsr   r   iinfor   minr#   r2   r$   r   r   r   r   r   <module>   s   