
    &`i                     z    d dl Z d dlZd dlmZmZmZ d dlmZ  e j        e	          Z
dZdZ G d de          ZdS )    N)ListOptionalTuple)AcceleratorManagerCUDA_VISIBLE_DEVICES+RAY_EXPERIMENTAL_NOSET_CUDA_VISIBLE_DEVICESc                   *   e Zd ZdZedefd            Zedefd            Zedee	e                  fd            Z
edefd            Zedee         fd            Zededeeee         f         fd	            Zed
e	e         ddfd            ZdS )MetaxGPUAcceleratorManagerzMetax GPU accelerators.returnc                      dS )NGPU r       w/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/ray/_private/accelerators/metax_gpu.pyget_resource_namez,MetaxGPUAcceleratorManager.get_resource_name   s    ur   c                      t           S )N)CUDA_VISIBLE_DEVICES_ENV_VARr   r   r   #get_visible_accelerator_ids_env_varz>MetaxGPUAcceleratorManager.get_visible_accelerator_ids_env_var   s    ++r   c                      t           j                            t                                          d           } | d S | dk    rg S t          |                     d                    S )N ,)osenvirongetr
   r   listsplit)cuda_visible_devicess    r   +get_current_process_visible_accelerator_idszFMetaxGPUAcceleratorManager.get_current_process_visible_accelerator_ids   sc    !z~~&JJLLd 
  
  '42%%I(..s33444r   c                     	 dd l m}  	 |                                  n# | j        $ r Y dS w xY w|                                 }|                                  |S # t          $ r%}t                              d|           Y d }~nd }~ww xY wdS )Nr   zCould not import pymxsml: %s)	pymxsml.mxsml_extensionmxsml_extensionmxSmlExInitMXSMLEXErrormxSmlExDeviceGetCountmxSmlExShutdown	Exceptionloggerdebug)pymxsmldevice_countes      r   !get_current_node_num_acceleratorsz<MetaxGPUAcceleratorManager.get_current_node_num_accelerators%   s    	<555555##%%%%'   qq"88::L##%%% 	< 	< 	<LL7;;;;;;;;	<qs2   A  A 
,A ,,A 
B#BBc                     	 dd l m}  	 |                                  n# | j        $ r Y d S w xY wd }|                                 }|dk    rT|                     d          }|                     |          }t          |t                    r|	                    d          }| 
                                 |S # t          $ r t                              dd           Y nw xY wd S )Nr   zutf-8zFailed to detect GPU type.T)exc_info)r    r!   r"   r#   r$   mxSmlExDeviceGetHandleByIndexmxSmlExDeviceGetName
isinstancebytesdecoder%   r&   r'   warning)r)   device_namer*   handles       r   !get_current_node_accelerator_typez<MetaxGPUAcceleratorManager.get_current_node_accelerator_type5   s   	H555555##%%%%'   ttK"88::La >>qAA%::6BBk511 >"-"4"4W"="=K##%%% 	H 	H 	HNN7$NGGGGG	Hts-   B5  B5 
,B5 ,BB5 5&CCquantityc                     dS )N)TNr   )r8   s    r   "validate_resource_request_quantityz=MetaxGPUAcceleratorManager.validate_resource_request_quantityK   s	     |r   visible_cuda_devicesNc                     t           j                            t                    rd S d                    |           t           j        t
                                          <   d S )Nr   )r   r   r   "NOSET_CUDA_VISIBLE_DEVICES_ENV_VARjoinr
   r   )r;   s    r   +set_current_process_visible_accelerator_idszFMetaxGPUAcceleratorManager.set_current_process_visible_accelerator_idsQ   sW     :>><== 	F HH)** 	
&JJLL	
 	
 	
r   )__name__
__module____qualname____doc__staticmethodstrr   r   r   r   r   intr,   r7   floatr   boolr:   r?   r   r   r   r
   r
      sZ       !!s    \ , , , , \, 
5$s)9L 
5 
5 
5 \
5 s    \ x}    \* 	tXc]"	#   \
 +"3i+	+ + + \+ + +r   r
   )loggingr   typingr   r   r   %ray._private.accelerators.acceleratorr   	getLoggerr@   r'   r   r=   r
   r   r   r   <module>rM      s     				 ( ( ( ( ( ( ( ( ( ( D D D D D D		8	$	$5 %R "M+ M+ M+ M+ M+!3 M+ M+ M+ M+ M+r   