
    .`iQ                         d dl Z d dlmZ d dlmZ d dlmZ d dlmZ d dl	Z	de
fdZde
fdZdd	edefd
Z	 ddee         deedf         fdZede
fd            Zede
fd            ZdS )    N)Sequence)ProcessPoolExecutor)cache)Anyreturnc                  ~    t           j                                        sdS t           j                                        S )zCheck if CUDA is initialized.F)torchcuda_is_compiledis_initialized     m/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/vllm/utils/platform_utils.pycuda_is_initializedr      s1    :""$$ u:$$&&&r   c                  ~    t           j                                        sdS t           j                                        S )zCheck if XPU is initialized.F)r	   xpur   r   r   r   r   xpu_is_initializedr      s1    9!!## u9##%%%r   	device_idc                 J    t           j                            |           j        S )z=Returns the total number of compute units (CU) on single GPU.)r	   r
   get_device_propertiesmulti_processor_count)r   s    r   get_cu_countr      s    :++I66LLr   Fnames.c                 t   |st                      r:t          j                            |           t	          fd|D                       S t          j        d          }t          d|          5 }|                    t          | |d          
                                cddd           S # 1 swxY w Y   dS )z_Get specified CUDA device property values without initializing CUDA in
    the current process.c              3   8   K   | ]}t          |          V  d S )N)getattr).0namepropss     r   	<genexpr>z-cuda_get_device_properties.<locals>.<genexpr>'   s-      <<dWUD))<<<<<<r   fork   )max_workers
mp_contextTN)r   r	   r
   r   tuplemultiprocessingget_contextr   submitcuda_get_device_propertiesresult)devicer   	init_cudamp_ctxexecutorr   s        @r   r)   r)       s   
  =')) =
0088<<<<e<<<<<< (00F	v	>	>	> Y(965$OOVVXXY Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Ys   1/B--B14B1c                  6    ddl m}  |                                 S )Nr   current_platform)vllm.platformsr1   is_pin_memory_availabler0   s    r   r3   r3   /   s&    //////33555r   c                      t                      S )z7Check if Unified Virtual Addressing (UVA) is available.)r3   r   r   r   is_uva_availabler5   6   s    
 #$$$r   )r   )F)r&   collections.abcr   concurrent.futures.processr   	functoolsr   typingr   r	   boolr   r   intr   strr%   r)   r3   r5   r   r   r   <module>r=      sa       $ $ $ $ $ $ : : : : : :             'T ' ' ' '&D & & & &M MC M M M M M -2Y YC=Y
38_Y Y Y Y 6 6 6 6 6 %$ % % % % % %r   