
    &`ih                         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dZdZ G d d	e          ZdS )
    N)ListOptionalTuple)AcceleratorManagerONEAPI_DEVICE_SELECTOR-RAY_EXPERIMENTAL_NOSET_ONEAPI_DEVICE_SELECTOR
level_zerogpuc                   *   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 )IntelGPUAcceleratorManagerzIntel 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/intel_gpu.pyget_resource_namez,IntelGPUAcceleratorManager.get_resource_name   s    ur   c                      t           S )N)ONEAPI_DEVICE_SELECTOR_ENV_VARr   r   r   #get_visible_accelerator_ids_env_varz>IntelGPUAcceleratorManager.get_visible_accelerator_ids_env_var   s    --r   c                  "   t           j                            t                                          d           } | d S | dk    rg S | dk    rg S t
          dz   }t          |                     |          d                             d                    S )N 
NoDevFiles:   ,)osenvirongetr   r   ONEAPI_DEVICE_BACKEND_TYPElistsplit)oneapi_visible_devicesprefixs     r   +get_current_process_visible_accelerator_idszFIntelGPUAcceleratorManager.get_current_process_visible_accelerator_ids   s    !#&JJLLd"
 "
 ")4!R''I!\11I+c1*0088;AA#FFGGGr   c                      	 dd l } n# t          $ r d } Y nw xY w| dS d}	 t          dz   t          z   }|                     |          }|j        }n# t          $ r d}Y nw xY w|S )Nr   r   )dpctlImportErrorr    ONEAPI_DEVICE_TYPESyclContextdevice_count	Exception)r'   num_gpusdev_infocontexts       r   !get_current_node_num_acceleratorsz<IntelGPUAcceleratorManager.get_current_node_num_accelerators,   s    	LLLL 	 	 	EEE	=1	1C7:LLH''11G+HH 	 	 	HHH	s    .A AAc                  .   	 ddl } n# t          $ r d} Y nw xY w| dS d}	 t          dz   t          z   dz   }|                     |          }dd                    |j                            d          dd                   z   }n# t          $ r d}Y nw xY w|S )	a  Get the name of first Intel GPU. (supposed only one GPU type on a node)
        Example:
            name: 'Intel(R) Data Center GPU Max 1550'
            return name: 'Intel-GPU-Max-1550'
        Returns:
            A string representing the name of Intel GPU type.
        r   Nr   z:0z
Intel-GPU-- )	r'   r(   r    r)   
SyclDevicejoinnamer"   r,   )r'   accelerator_typer.   devs       r   !get_current_node_accelerator_typez<IntelGPUAcceleratorManager.get_current_node_accelerator_type>   s    	LLLL 	 	 	EEE	=4	$1C7:LLtSH""8,,C+chhsx~~c7J7J2337O.P.PP 	$ 	$ 	$#	$s    A"B BBquantityc                     dS )N)TNr   )r;   s    r   "validate_resource_request_quantityz=IntelGPUAcceleratorManager.validate_resource_request_quantityW   s	     |r   visible_xpu_devicesNc                     t           j                            t                    rd S t          dz   }|d                    d | D                       z   t           j        t                                          <   d S )Nr   r   c                 ,    g | ]}t          |          S r   )str).0is     r   
<listcomp>zZIntelGPUAcceleratorManager.set_current_process_visible_accelerator_ids.<locals>.<listcomp>g   s    CCC!s1vvCCCr   )r   r   r   $NOSET_ONEAPI_DEVICE_SELECTOR_ENV_VARr    r6   r   r   )r>   r$   s     r   +set_current_process_visible_accelerator_idszFIntelGPUAcceleratorManager.set_current_process_visible_accelerator_ids]   su     :>>>?? 	F+c1 SXXCC/BCCCDDD 	
&JJLL	
 	
 	
r   )__name__
__module____qualname____doc__staticmethodrA   r   r   r   r   r%   intr0   r:   floatr   boolr=   rF   r   r   r   r   r      sg       !!s    \ . . . . \. H$s)9L H H H \H" s    \"  x}       \ 0 	tXc]"	#   \
 	E!#Y	E		E 	E 	E \	E 	E 	Er   r   )loggingr   typingr   r   r   %ray._private.accelerators.acceleratorr   	getLoggerrG   loggerr   rE   r    r)   r   r   r   r   <module>rT      s     				 ( ( ( ( ( ( ( ( ( ( D D D D D D		8	$	$!9 'V $)  XE XE XE XE XE!3 XE XE XE XE XEr   