o
    TiB                     @   s8   d dl Z ddlmZ G dd deZG dd deZdS )    N   )CPUOpBuilderc                       s\   e Zd ZdZdZd fdd	Zdd Zdd	 Zd
d Zdd Z	d fdd	Z
dd Z  ZS )CCLCommBuilderDS_BUILD_CCL_COMMdeepspeed_ccl_commNc                    $   |d u r| j n|}t j|d d S N)nameNAMEsuper__init__selfr	   	__class__ U/home/ubuntu/.local/lib/python3.10/site-packages/deepspeed/ops/op_builder/cpu/comm.pyr         zCCLCommBuilder.__init__c                 C      d| j  dS Nzdeepspeed.ops.comm._opr   r   r   r   r   absolute_name      zCCLCommBuilder.absolute_namec                 C      ddgS )Nzcsrc/cpu/comm/ccl.cppcsrc/cpu/comm/shm.cppr   r   r   r   r   sources      zCCLCommBuilder.sourcesc                 C   
   dg}|S Nzcsrc/cpu/includesr   r   includesr   r   r   include_paths      zCCLCommBuilder.include_pathsc                 C   r   Nz-O2z-fopenmpr   r   r   r   r   cxx_args   r   zCCLCommBuilder.cxx_argsFc                       t  |S Nr   is_compatibler   verboser   r   r   r+         zCCLCommBuilder.is_compatiblec                 C   s,   t jd}|d u rtddd| dgS )NCCL_ROOTzrDidn't find CCL_ROOT, install oneCCL from https://github.com/oneapi-src/oneCCL and source its environment variablez-lcclz-Lz/lib)osenvironget
ValueError)r   ccl_root_pathr   r   r   extra_ldflags$   s   zCCLCommBuilder.extra_ldflagsr)   F)__name__
__module____qualname__	BUILD_VARr   r   r   r   r$   r'   r+   r5   __classcell__r   r   r   r   r   
   s    r   c                       sT   e Zd ZdZdZd fdd	Zdd Zdd	 Zd
d Zdd Z	d fdd	Z
  ZS )ShareMemCommBuilderDS_BUILD_SHM_COMMdeepspeed_shm_commNc                    r   r   r
   r   r   r   r   r   3   r   zShareMemCommBuilder.__init__c                 C   r   r   r   r   r   r   r   r   7   r   z!ShareMemCommBuilder.absolute_namec                 C   r   )Nzcsrc/cpu/comm/shm_interface.cppr   r   r   r   r   r   r   :   r   zShareMemCommBuilder.sourcesc                 C   r    r!   r   r"   r   r   r   r$   =   r%   z!ShareMemCommBuilder.include_pathsc                 C   r   r&   r   r   r   r   r   r'   A   r   zShareMemCommBuilder.cxx_argsFc                    r(   r)   r*   r,   r   r   r   r+   D   r.   z!ShareMemCommBuilder.is_compatibler)   r6   )r7   r8   r9   r:   r   r   r   r   r$   r'   r+   r;   r   r   r   r   r<   /   s    r<   )r0   builderr   r   r<   r   r   r   r   <module>   s   %