§
    &`ƒiÉ  ã                   ót   — d dl mZ d dlmZmZ d dlZd dlmZ d dlm	Z	 er	d dl
mc mZ  G d„ de	¦  «        ZdS )é    ©Úcontextmanager)ÚListÚUnionN)ÚHPU_PACKAGE_AVAILABLE)ÚTorchDeviceManagerc                   ó¢   — e Zd ZdZed„ ¦   «         Zd e¦   «         fd„Zdee	j
                 fd„Zdee	j
        eedf         fd„Zdefd	„Zd
„ ZdS )ÚHPUTorchDeviceManagerzHPU device managerc                  ó(   — t           r
dd l} dd l} d S d S )Nr   )r   Úhabana_frameworks.torch.coreÚ(habana_frameworks.torch.distributed.hccl)Úhabana_frameworkss    úx/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/ray/air/_internal/device_manager/hpu.pyÚ"register_custom_torch_dist_backendz8HPUTorchDeviceManager.register_custom_torch_dist_backend   s2   € å ð 	<Ø/Ð/Ð/Ð/Ø;Ð;Ð;Ð;Ð;Ð;ð	<ð 	<ó    Úreturnc                 ó:   — t           sdS t          j        ¦   «         S )NF)r   Ú	torch_hpuÚis_available©Úselfs    r   r   z"HPUTorchDeviceManager.is_available   s   € Ý$ð 	Ø5åÔ%Ñ'Ô'Ð'r   c                 ór   — |                       ¦   «         st          d¦  «        ‚t          j        d¦  «        gS )Nz;Using HPUTorchDeviceManager but torch hpu is not available.Úhpu)r   ÚRuntimeErrorÚtorchÚdevicer   s    r   Úget_devicesz!HPUTorchDeviceManager.get_devices   s@   € Ø× Ò Ñ"Ô"ð 	ÝØMñô ð õ ”˜UÑ#Ô#Ð$Ð$r   r   Nc                 ó.   — t          j        |¦  «         d S ©N)r   Ú
set_device)r   r   s     r   r    z HPUTorchDeviceManager.set_device$   s   € ÝÔ˜VÑ$Ô$Ð$Ð$Ð$r   c                 ó   — dS )z3Validate if the device type support create a streamF© r   s    r   Úsupports_streamz%HPUTorchDeviceManager.supports_stream'   s   € àˆur   c                 ó6   — t           d„ ¦   «         } |¦   «         S )z-Get HPU stream context manager, empty so far.c               3   ó   K  — d V — d S r   r"   r"   r   r   Údefault_context_managerzIHPUTorchDeviceManager.get_stream_context.<locals>.default_context_manager.   s   è è € àˆEˆEˆEˆEˆEr   r   )r   Ústreamr&   s      r   Úget_stream_contextz(HPUTorchDeviceManager.get_stream_context+   s.   € õ 
ð	ð 	ñ 
Œð	ð 'Ð&Ñ(Ô(Ð(r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ústaticmethodr   Úboolr   r   r   r   r   r   ÚintÚstrr    r#   r(   r"   r   r   r
   r
      sË   € € € € € ØÐàð<ð <ñ „\ð<ð
(˜d˜d™fœfð (ð (ð (ð (ð%˜T %¤,Ô/ð %ð %ð %ð %ð%  u¤|°S¸#¸tÐ'CÔ!Dð %ð %ð %ð %ð ð ð ð ð ð)ð )ð )ð )ð )r   r
   )Ú
contextlibr   Útypingr   r   r   Úray._private.accelerators.hpur   Ú5ray.air._internal.device_manager.torch_device_managerr   Úhabana_frameworks.torch.hpur   r   r
   r"   r   r   ú<module>r6      s´   ðØ %Ð %Ð %Ð %Ð %Ð %Ø Ð Ð Ð Ð Ð Ð Ð à €€€à ?Ð ?Ð ?Ð ?Ð ?Ð ?Ø TÐ TÐ TÐ TÐ TÐ Tàð 4Ø3Ð3Ð3Ð3Ð3Ð3Ð3Ð3Ð3ð%)ð %)ð %)ð %)ð %)Ð.ñ %)ô %)ð %)ð %)ð %)r   