o
    Ti                     @   s(   d dl Z ddlmZ G dd deZdS )    N   )AsyncIOBuilderc                       sn   e Zd ZdZdZ fddZdd Z fddZd	d
 Z fddZ	dd Z
 fddZd fdd	Z  ZS )
GDSBuilderDS_BUILD_GDSgdsc                    s   t    d S )N)super__init__self	__class__ P/home/ubuntu/.local/lib/python3.10/site-packages/deepspeed/ops/op_builder/gds.pyr         zGDSBuilder.__init__c                 C   s   d| j  dS )Nzdeepspeed.ops.gds._op)NAMEr	   r   r   r   absolute_name   r   zGDSBuilder.absolute_namec                    s   ddg}t   | S )Nz+csrc/gds/py_lib/deepspeed_py_gds_handle.cppz$csrc/gds/py_lib/deepspeed_gds_op.cpp)r   lib_sources)r
   src_listr   r   r   r      s   zGDSBuilder.lib_sourcesc                 C   s   |   dg S )Nzcsrc/gds/py_lib/py_ds_gds.cpp)r   r	   r   r   r   sources   r   zGDSBuilder.sourcesc                       t   dg S Nz-lcufile)r   cxx_argsr	   r   r   r   r         zGDSBuilder.cxx_argsc                 C   s*   dd l }tj|jjjdg}ddg| S )Nr   includezcsrc/aio/py_libzcsrc/aio/common)torchospathjoinutilscpp_extension	CUDA_HOME)r
   r   CUDA_INCLUDEr   r   r   include_paths   s   zGDSBuilder.include_pathsc                    r   r   )r   extra_ldflagsr	   r   r   r   r$   #   r   zGDSBuilder.extra_ldflagsFc                    s   |   r|r| | j d dS zdd l}W n ty(   |r%| d Y dS w |jjj}|d u r;|r9| d dS tj	
|d}| jdd||f|d	}|oTt |S )
Nz is not compatible with ROCMFr   z1Please install torch if trying to pre-compile GDSz@Please install torch CUDA if trying to pre-compile GDS with CUDAlib64cuFileDriverOpen)cufile)funcname	librarieslibrary_dirsverbose)is_rocm_pytorchwarningr   torch.utils.cpp_extensionImportErrorr   r    r!   r   r   r   has_functionr   is_compatible)r
   r+   r   r!   
CUDA_LIB64gds_compatibler   r   r   r1   &   s2   


zGDSBuilder.is_compatible)F)__name__
__module____qualname__	BUILD_VARr   r   r   r   r   r   r#   r$   r1   __classcell__r   r   r   r   r   
   s    r   )r   async_ior   r   r   r   r   r   <module>   s   