setup_lmcustomop.py 1.11 KB
Newer Older
1
2
3
import os
from pathlib import Path

4
from setuptools import setup
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
from torch.utils.cpp_extension import BuildExtension, CUDAExtension


ROOT_DIR = Path(__file__).parent.resolve()


def get_extensions():
    extra_compile_args = {
        "cxx": ["-O3", "-w"],
        "nvcc": [
            "-O3",
            "-w",
            "-mllvm",
            "-enable-num-vgprs-512=true",
            "-DHIP_ENABLE_WARP_SYNC_BUILTINS",
        ],
    }

    sources = [
        str(ROOT_DIR / "csrc/export.cpp"),
        str(ROOT_DIR / "csrc/fuse_rms_roped.cu"),
    ]

    include_dirs = [str(ROOT_DIR / "csrc")]

    extension = CUDAExtension(
31
        name="lmcustomop.op",
32
33
34
35
36
37
38
39
40
        sources=sources,
        include_dirs=include_dirs,
        extra_compile_args=extra_compile_args,
    )

    return [extension]


setup(
41
42
43
44
45
    name="lmcustomop",
    version=os.getenv("LMCUSTOMOP_VERSION", "0.0.1"),
    description="Minimal lmcustomop package",
    packages=["lmcustomop"],
    package_dir={"lmcustomop": "."},
46
47
48
49
50
    ext_modules=get_extensions(),
    cmdclass={"build_ext": BuildExtension},
    zip_safe=False,
    install_requires=["torch"],
)