o
    Ti?                     @   s$   d dl mZmZ G dd deZdS )   )CUDAOpBuilderinstalled_cuda_versionc                       sL   e Zd ZdZdZd fdd	Zdd Zd fd	d
	Zdd Zdd Z	  Z
S )SpatialInferenceBuilderDS_BUILD_SPATIAL_INFERENCEspatial_inferenceNc                    s$   |d u r| j n|}t j|d d S )N)name)NAMEsuper__init__)selfr   	__class__ ^/home/ubuntu/.local/lib/python3.10/site-packages/deepspeed/ops/op_builder/spatial_inference.pyr
      s   z SpatialInferenceBuilder.__init__c                 C   s   d| j  dS )Nzdeepspeed.ops.spatial._op)r   r   r   r   r   absolute_name   s   z%SpatialInferenceBuilder.absolute_nameFc                    s   zdd l }W n ty   |r| d Y dS w d}|  sO|j rOt \}}t|jj	dd }|j
dj}|dkrO|dk sF|dk rO|rM| d d}t |oV|S )	N    z?Please install torch if trying to pre-compile inference kernelsFT.      z6On Ampere and higher architectures please use CUDA 11+)torchImportErrorwarningis_rocm_pytorchcudais_availabler   intversionsplitget_device_propertiesmajorr	   is_compatible)r   verboser   	cuda_okaysys_cuda_major_torch_cuda_majorcuda_capabilityr   r   r   r"      s$   


z%SpatialInferenceBuilder.is_compatiblec                 C      ddgS )Nz!csrc/spatial/csrc/opt_bias_add.cuz csrc/spatial/csrc/pt_binding.cppr   r   r   r   r   sources(   s   zSpatialInferenceBuilder.sourcesc                 C   r)   )Nzcsrc/spatial/includeszcsrc/includesr   r   r   r   r   include_paths.   s   z%SpatialInferenceBuilder.include_paths)N)F)__name__
__module____qualname__	BUILD_VARr   r
   r   r"   r*   r+   __classcell__r   r   r   r   r   	   s    r   N)builderr   r   r   r   r   r   r   <module>   s   