o
    àÙ·iè  ã                   @   sX   d dl Z d dlmZ G dd„ deƒZG dd„ deƒZG dd„ deƒZG d	d
„ d
eƒZdS )é    N)ÚABCc                   @   sÞ   e Zd ZU eed< eed< eed< eed< eed< edd„ ƒZedd	„ ƒZed
d„ ƒZedd„ ƒZ	edd„ ƒZ
edd„ ƒZedd„ ƒZedd„ ƒZedd„ ƒZedd„ ƒZedd„ ƒZedd„ ƒZedd„ ƒZed d!„ ƒZd"S )#ÚBasePlatformÚdevice_typeÚdevice_control_env_varÚdispatch_keyÚdist_backendÚfull_dist_backendc                  O   ó   t ‚©N©ÚNotImplementedError©ÚargsÚkwargs© r   úP/home/ubuntu/.local/lib/python3.10/site-packages/cache_dit/platforms/platform.pyÚempty_cache   ó   zBasePlatform.empty_cachec                  O   r	   r
   r   r   r   r   r   Úipc_collect   r   zBasePlatform.ipc_collectc                   C   r	   r
   r   r   r   r   r   Úget_device_name   r   zBasePlatform.get_device_namec                  O   r	   r
   r   r   r   r   r   Ú
device_ctx   r   zBasePlatform.device_ctxc                  O   r	   r
   r   r   r   r   r   Údefault_device   r   zBasePlatform.default_devicec                  O   r	   r
   r   r   r   r   r   Úsynchronize!   r   zBasePlatform.synchronizec                  O   r	   r
   r   r   r   r   r   Údevice_count%   r   zBasePlatform.device_countc                  O   r	   r
   r   r   r   r   r   Úis_accelerator_available)   r   z%BasePlatform.is_accelerator_availablec                  O   r	   r
   r   r   r   r   r   Úcurrent_device-   r   zBasePlatform.current_devicec                  O   r	   r
   r   r   r   r   r   Úreset_peak_memory_stats1   r   z$BasePlatform.reset_peak_memory_statsc                  O   r	   r
   r   r   r   r   r   Úmax_memory_allocated5   r   z!BasePlatform.max_memory_allocatedc                  O   r	   r
   r   r   r   r   r   Úget_device_properties9   r   z"BasePlatform.get_device_propertiesc                  O   r	   r
   r   r   r   r   r   Ú
set_device=   r   zBasePlatform.set_devicec                  O   r	   r
   r   r   r   r   r   Úget_device_capabilityA   r   z"BasePlatform.get_device_capabilityN)Ú__name__Ú
__module__Ú__qualname__ÚstrÚ__annotations__Ústaticmethodr   r   r   r   r   r   r   r   r   r   r   r   r   r    r   r   r   r   r      sD   
 












r   c                   @   sf   e Zd ZU dZeed< dZeed< dZdZeed< dZ	eed	< e
d
d„ ƒZe
dd„ ƒZe
dd„ ƒZdS )ÚCpuPlatformÚcpur   ÚCPUr   ÚCPU_VISIBLE_MEMORY_NODESÚgloor   zcpu:gloor   c                   C   ó
   t  d¡S )Nr(   ©ÚtorchÚdevicer   r   r   r   r   M   ó   
zCpuPlatform.default_devicec                   C   ó   dS )Nr)   r   r   r   r   r   r   Q   r   zCpuPlatform.get_device_namec                   C   r1   )NFr   r   r   r   r   r   U   r   z$CpuPlatform.is_accelerator_availableN)r!   r"   r#   r   r$   r%   r   r   r   r   r&   r   r   r   r   r   r   r   r'   F   s   
 

r'   c                   @   sü   e Zd ZU dZeed< dZeed< dZeed< dZeed< d	Z	eed
< e
dd„ ƒZe
dd„ ƒZe
dd„ ƒZe
dd„ ƒZe
dd„ ƒZe
d(dd„ƒZe
dd„ ƒZe
dd„ ƒZe
dd„ ƒZe
d(dd„ƒZe
d(d d!„ƒZe
d(d"d#„ƒZe
d$d%„ ƒZe
d(d&d'„ƒZdS ))ÚCudaPlatformÚcudar   ÚCUDA_VISIBLE_DEVICESr   ÚCUDAr   Úncclr   z	cuda:ncclr   c                   C   ó   t j ¡  d S r
   )r.   r3   r   r   r   r   r   r   a   ó   zCudaPlatform.empty_cachec                   C   r7   r
   )r.   r3   r   r   r   r   r   r   e   r8   zCudaPlatform.ipc_collectc                   C   ó
   t j ¡ S r
   )r.   r3   r   r   r   r   r   r   i   r0   zCudaPlatform.get_device_namec                 C   ó   t j | ¡S r
   )r.   r3   r/   ©r/   r   r   r   r   m   ó   zCudaPlatform.device_ctxc                   C   r,   )Nr3   r-   r   r   r   r   r   q   r0   zCudaPlatform.default_deviceNc                 C   ó   t j | ¡ d S r
   )r.   r3   r   r;   r   r   r   r   u   ó   zCudaPlatform.synchronizec                   C   r9   r
   )r.   r3   r   r   r   r   r   r   y   r0   zCudaPlatform.device_countc                   C   r9   r
   )r.   r3   Úis_availabler   r   r   r   r   }   r0   z%CudaPlatform.is_accelerator_availablec                   C   r9   r
   )r.   r3   r   r   r   r   r   r      r0   zCudaPlatform.current_devicec                 C   r:   r
   )r.   r3   r   r;   r   r   r   r   …   r<   z$CudaPlatform.reset_peak_memory_statsc                 C   r:   r
   )r.   r3   r   r;   r   r   r   r   ‰   r<   z!CudaPlatform.max_memory_allocatedc                 C   r:   r
   )r.   r3   r   r;   r   r   r   r      r<   z"CudaPlatform.get_device_propertiesc                 C   r:   r
   )r.   r3   r   r;   r   r   r   r   ‘   r<   zCudaPlatform.set_devicec                 C   r:   r
   )r.   r3   r    r;   r   r   r   r    •   r<   z"CudaPlatform.get_device_capabilityr
   )r!   r"   r#   r   r$   r%   r   r   r   r   r&   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r   r   r   r   r2   Z   sD   
 








r2   c                   @   sî   e Zd ZU dZeed< dZeed< dZeed< dZeed< d	Z	eed
< e
dd„ ƒZe
dd„ ƒZe
dd„ ƒZe
dd„ ƒZe
dd„ ƒZe
d&dd„ƒZe
dd„ ƒZe
dd„ ƒZe
dd„ ƒZe
d&dd„ƒZe
d&d d!„ƒZe
d&d"d#„ƒZe
d$d%„ ƒZdS )'ÚNPUPlatformÚnpur   ÚASCEND_RT_VISIBLE_DEVICESr   ÚPrivateUse1r   Úhcclr   znpu:hcclr   c                   C   r7   r
   )r.   rA   r   r   r   r   r   r   ¡   r8   zNPUPlatform.empty_cachec                   C   r1   )zA
        torch.npu.ipc_collect() is not implemented yet.
        Nr   r   r   r   r   r   ¥   s   zNPUPlatform.ipc_collectc                   C   r9   r
   )r.   rA   r   r   r   r   r   r   ¬   r0   zNPUPlatform.get_device_namec                 C   r:   r
   )r.   rA   r/   r;   r   r   r   r   °   r<   zNPUPlatform.device_ctxc                   C   r,   )NrA   r-   r   r   r   r   r   ´   r0   zNPUPlatform.default_deviceNc                 C   r=   r
   )r.   rA   r   r;   r   r   r   r   ¸   r>   zNPUPlatform.synchronizec                   C   r9   r
   )r.   rA   r   r   r   r   r   r   ¼   r0   zNPUPlatform.device_countc                   C   r9   r
   )r.   rA   r?   r   r   r   r   r   À   r0   z$NPUPlatform.is_accelerator_availablec                   C   r9   r
   )r.   rA   r   r   r   r   r   r   Ä   r0   zNPUPlatform.current_devicec                 C   r:   r
   )r.   rA   r   r;   r   r   r   r   È   r<   z#NPUPlatform.reset_peak_memory_statsc                 C   r:   r
   )r.   rA   r   r;   r   r   r   r   Ì   r<   z NPUPlatform.max_memory_allocatedc                 C   r:   r
   )r.   rA   r   r;   r   r   r   r   Ð   r<   z!NPUPlatform.get_device_propertiesc                 C   r:   r
   )r.   rA   r   r;   r   r   r   r   Ô   r<   zNPUPlatform.set_devicer
   )r!   r"   r#   r   r$   r%   r   r   r   r   r&   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r@   š   s@   
 







r@   )r.   Úabcr   r   r'   r2   r@   r   r   r   r   Ú<module>   s   @@