tuning_setup.py 1.1 KB

123456789101112131415161718192021222324252627282930313233343536
  1. import os
  2. from setuptools import setup
  3. from pathlib import Path
  4. import torch.cuda
  5. from torch.utils.cpp_extension import CppExtension, CUDAExtension, BuildExtension
  6. from torch.utils.cpp_extension import CUDA_HOME
  7. extensions_dir = Path(os.getenv('TUNING_SOURCE_DIR')).absolute()
  8. assert extensions_dir.exists()
  9. source_files=[
  10. 'cauchy.cpp',
  11. 'cauchy_cuda.cu',
  12. ]
  13. sources = [str(extensions_dir / name) for name in source_files]
  14. extension_name = os.getenv('TUNING_EXTENSION_NAME', default='cauchy_mult_tuning')
  15. ext_modules = []
  16. if torch.cuda.is_available() and CUDA_HOME is not None:
  17. extension = CUDAExtension(
  18. extension_name,
  19. sources,
  20. include_dirs=[extensions_dir],
  21. extra_compile_args={'cxx': ['-g', '-march=native', '-funroll-loops'],
  22. # 'nvcc': ['-O2', '-lineinfo']
  23. 'nvcc': ['-O2', '-lineinfo', '--use_fast_math']
  24. }
  25. )
  26. ext_modules.append(extension)
  27. setup(
  28. name=extension_name,
  29. ext_modules=ext_modules,
  30. # cmdclass={'build_ext': BuildExtension.with_options(use_ninja=False)})
  31. cmdclass={'build_ext': BuildExtension})