
    &`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RBLN_DEVICES.RAY_EXPERIMENTAL_NOSET_RBLN_RT_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 )RBLNAcceleratorManagerzRebellions RBLN accelerators.returnc                      dS )NRBLN r       r/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/ray/_private/accelerators/rbln.pyget_resource_namez(RBLNAcceleratorManager.get_resource_name   s    vr   c                      t           S )N)RBLN_RT_VISIBLE_DEVICES_ENV_VARr   r   r   #get_visible_accelerator_ids_env_varz:RBLNAcceleratorManager.get_visible_accelerator_ids_env_var   s    ..r   c                      t           j                            t                                                    } | d S | dk    rg S |                     d          S )N ,)osenvirongetr
   r   split)visible_devicess    r   +get_current_process_visible_accelerator_idszBRBLNAcceleratorManager.get_current_process_visible_accelerator_ids   sW    *.."FFHH
 
 "4b  I$$S)))r   c                      	 ddl m}   |             S # t          $ r&}t                              d|           Y d}~dS d}~ww xY w)z:Detects the number of RBLN devices on the current machine.r   )device_countz!Could not detect RBLN devices: %sN)rebelr   	Exceptionloggerdebug)r   es     r   !get_current_node_num_acceleratorsz8RBLNAcceleratorManager.get_current_node_num_accelerators#   sf    	******<>>! 	 	 	LL<a@@@11111	    
A=Ac                      	 ddl m}   |             S # t          $ r&}t                              d|           Y d}~dS d}~ww xY w)z.Gets the type of RBLN NPU on the current node.r   )get_npu_namez"Failed to detect RBLN NPU type: %sN)r    r(   r!   r"   	exception)r(   r$   s     r   !get_current_node_accelerator_typez8RBLNAcceleratorManager.get_current_node_accelerator_type.   sh    	******<>>! 	 	 	A1EEE44444	r&   quantityc                     t          | t                    r5|                                 s!dt                                           d|  dfS dS )NFzA resource quantity must be whole numbers. The specified quantity z is invalid.)TN)
isinstancefloat
is_integerr
   r   )r+   s    r   "validate_resource_request_quantityz9RBLNAcceleratorManager.validate_resource_request_quantity9   sm     h&& 	 x/B/B/D/D 	 );;== A A*2A A A   <r   visible_rbln_devicesNc                     t          j        t                    sNd                    t	          t
          |                     t           j        t                                          <   d S d S )Nr   )	r   getenv%NOSET_RBLN_RT_VISIBLE_DEVICES_ENV_VARjoinmapstrr   r
   r   )r1   s    r   +set_current_process_visible_accelerator_idszBRBLNAcceleratorManager.set_current_process_visible_accelerator_idsG   sb     y>?? 	9 S"67788 J&JJLL  	9 	9r   )__name__
__module____qualname____doc__staticmethodr7   r   r   r   r   r   intr%   r*   r.   r   boolr0   r8   r   r   r   r
   r
      sZ       ''s    \ / / / / \/ *$s)9L * * * \* s    \ x}    \   	tXc]"	#      \  9"3i9	9 9 9 \9 9 9r   r
   )loggingr   typingr   r   r   %ray._private.accelerators.acceleratorr   	getLoggerr9   r"   r   r4   r
   r   r   r   <module>rD      s     				 ( ( ( ( ( ( ( ( ( ( D D D D D D		8	$	$"0 (X %A9 A9 A9 A9 A9/ A9 A9 A9 A9 A9r   