| 123456789101112131415161718192021222324252627282930313233343536 |
- import os
- from setuptools import setup
- from pathlib import Path
- import torch.cuda
- from torch.utils.cpp_extension import CppExtension, CUDAExtension, BuildExtension
- from torch.utils.cpp_extension import CUDA_HOME
- extensions_dir = Path(os.getenv('TUNING_SOURCE_DIR')).absolute()
- assert extensions_dir.exists()
- source_files=[
- 'cauchy.cpp',
- 'cauchy_cuda.cu',
- ]
- sources = [str(extensions_dir / name) for name in source_files]
- extension_name = os.getenv('TUNING_EXTENSION_NAME', default='cauchy_mult_tuning')
- ext_modules = []
- if torch.cuda.is_available() and CUDA_HOME is not None:
- extension = CUDAExtension(
- extension_name,
- sources,
- include_dirs=[extensions_dir],
- extra_compile_args={'cxx': ['-g', '-march=native', '-funroll-loops'],
- # 'nvcc': ['-O2', '-lineinfo']
- 'nvcc': ['-O2', '-lineinfo', '--use_fast_math']
- }
- )
- ext_modules.append(extension)
- setup(
- name=extension_name,
- ext_modules=ext_modules,
- # cmdclass={'build_ext': BuildExtension.with_options(use_ninja=False)})
- cmdclass={'build_ext': BuildExtension})
|