setup.py 3.03 KB
Newer Older
1
import setuptools
Rick Ho's avatar
Rick Ho committed
2
3
from torch.utils.cpp_extension import BuildExtension, CUDAExtension
import os
hclearner's avatar
hclearner committed
4
import torch
zhanggzh's avatar
zhanggzh committed
5
from fastpt import CUDAExtension
zhanggzh's avatar
zhanggzh committed
6
#import get_dcu_version
7
cxx_flags = []
Rick Ho's avatar
Rick Ho committed
8
ext_libs = []
9

Rick Ho's avatar
Rick Ho committed
10
11
12
13
14
15
16
authors = [
        'Jiaao He', 
        'Jiezhong Qiu', 
        'Aohan Zeng', 
        'Tiago Antunes', 
        'Jinjun Peng', 
        'Qin Li',
Rick Ho's avatar
Rick Ho committed
17
        'Mingshu Zhai'
Rick Ho's avatar
Rick Ho committed
18
19
]

hclearner's avatar
hclearner committed
20
21
22
23
24
is_rocm_pytorch = False
if torch.__version__ >= '1.5':
    from torch.utils.cpp_extension import ROCM_HOME
    is_rocm_pytorch = True if ((torch.version.hip is not None) and (ROCM_HOME is not None)) else False

Rick Ho's avatar
Rick Ho committed
25
if os.environ.get('USE_NCCL', '1') == '1':
Rick Ho's avatar
Rick Ho committed
26
    cxx_flags.append('-DFMOE_USE_NCCL')
27
    cxx_flags.append('-DUSE_C10D_NCCL')
hclearner's avatar
hclearner committed
28
    if is_rocm_pytorch:
huchen1's avatar
huchen1 committed
29
30
31
32
        ext_libs.append('rccl')
    else:
        ext_libs.append('nccl')

zms1999's avatar
zms1999 committed
33
34
35
if os.environ.get('MOE_DEBUG', '0') == '1':
    cxx_flags.append('-DMOE_DEBUG')

hclearner's avatar
hclearner committed
36
37
if is_rocm_pytorch:
    define_macros=[('FMOE_USE_HIP', None)]
huchen1's avatar
huchen1 committed
38
39
else:
    define_macros=[]
Rick Ho's avatar
Rick Ho committed
40

zhanggzh's avatar
zhanggzh committed
41
42
43
def get_package_version():
    __version__ = '1.1.0'
    return __version__
zhanggzh's avatar
zhanggzh committed
44
45
46
47
48
49
50
51
52
53
54
55
56
ROCM_PATH = os.getenv('ROCM_PATH')
dtk_path = ROCM_PATH + '/.info/rocm_version'
with open(dtk_path, 'r') as file:
    content = file.read().strip()
dtk_version = content.replace('.', '')
print(dtk_version)
cwd = os.path.dirname(os.path.abspath(__file__))
ver_path = os.path.join(cwd, "fmoe", "__init__.py")
with open(ver_path, 'w') as f:
    f.write("__version__ = '1.2.0'\n")
#with open(version_path, "w") as f:
#        f.write(f"__dcu_version__ = '{version}'\n")
#    f.write(f"__dcu_version__ = '1.2.0+das.dtk{dtk_version}'\n")
zhanggzh's avatar
zhanggzh committed
57
58
59
60

def write_version_file():
    cwd = os.path.dirname(os.path.abspath(__file__))
    version_path = os.path.join(cwd, "fmoe", "version.py")
zhanggzh's avatar
zhanggzh committed
61
    version = dtk_version
zhanggzh's avatar
zhanggzh committed
62
63
64
    with open(version_path, "w") as f:
        f.write(f"__dcu_version__ = '{version}'\n")
write_version_file()
Rick Ho's avatar
Rick Ho committed
65

66
67
if __name__ == '__main__':
    setuptools.setup(
Rick Ho's avatar
Rick Ho committed
68
        name='fastmoe',
zhanggzh's avatar
zhanggzh committed
69
        #version='1.1.0',
zhanggzh's avatar
zhanggzh committed
70
        version = '1.1.0' + '.das.' + dtk_version,
Rick Ho's avatar
Rick Ho committed
71
        description='An efficient Mixture-of-Experts system for PyTorch',
Rick Ho's avatar
Rick Ho committed
72
        author=', '.join(authors),
Rick Ho's avatar
Rick Ho committed
73
74
75
        author_email='hja20@mails.tsinghua.edu.cn',
        license='Apache-2',
        url='https://github.com/laekov/fastmoe',
Rick Ho's avatar
Rick Ho committed
76
        packages=['fmoe', 'fmoe.megatron', 'fmoe.gates', 'fmoe.fastermoe'],
77
78
79
80
        ext_modules=[
            CUDAExtension(
                name='fmoe_cuda', 
                sources=[
Rick Ho's avatar
Rick Ho committed
81
82
                    'cuda/stream_manager.cpp',
                    'cuda/local_exchange.cu',
Rick Ho's avatar
Rick Ho committed
83
                    'cuda/balancing.cu',
Rick Ho's avatar
Rick Ho committed
84
                    'cuda/global_exchange.cpp',
85
                    'cuda/parallel_linear.cu',
Rick Ho's avatar
Rick Ho committed
86
                    'cuda/fmoe_cuda.cpp',
Rick Ho's avatar
Rick Ho committed
87
                    'cuda/fastermoe/smart_schedule.cpp',
88
                    ],
huchen1's avatar
huchen1 committed
89
                define_macros=define_macros,
90
91
92
                extra_compile_args={
                    'cxx': cxx_flags,
                    'nvcc': cxx_flags
Rick Ho's avatar
Rick Ho committed
93
94
                    },
                libraries=ext_libs
95
96
97
98
99
                )
            ],
        cmdclass={
            'build_ext': BuildExtension
        })