|
import os
|
|
import torch
|
|
from torch.utils.cpp_extension import (BuildExtension, CppExtension,
|
|
CUDAExtension)
|
|
import setuptools
|
|
|
|
|
|
script_folder = os.path.dirname(os.path.realpath(__file__))
|
|
os.chdir(script_folder)
|
|
|
|
with open("requirements.txt") as f:
|
|
requirements = f.read().splitlines()
|
|
|
|
def make_cuda_ext(name,
|
|
module,
|
|
sources,
|
|
sources_cuda=[],
|
|
extra_args=[],
|
|
extra_include_path=[]):
|
|
|
|
define_macros = []
|
|
extra_compile_args = {'cxx': [] + extra_args}
|
|
|
|
if torch.cuda.is_available() or os.getenv('FORCE_CUDA', '0') == '1':
|
|
define_macros += [('WITH_CUDA', None)]
|
|
extension = CUDAExtension
|
|
extra_compile_args['nvcc'] = extra_args + [
|
|
'-D__CUDA_NO_HALF_OPERATORS__',
|
|
'-D__CUDA_NO_HALF_CONVERSIONS__',
|
|
'-D__CUDA_NO_HALF2_OPERATORS__',
|
|
]
|
|
sources += sources_cuda
|
|
else:
|
|
print('Compiling {} without CUDA'.format(name))
|
|
extension = CppExtension
|
|
|
|
|
|
return extension(
|
|
name='{}.{}'.format(module, name),
|
|
sources=[os.path.join(*module.split('.'), p) for p in sources],
|
|
include_dirs=extra_include_path,
|
|
define_macros=define_macros,
|
|
extra_compile_args=extra_compile_args)
|
|
|
|
|
|
|
|
setuptools.setup(
|
|
name="navsim",
|
|
version="1.0.0",
|
|
author="University of Tuebingen",
|
|
author_email="[email protected]",
|
|
description="TODO",
|
|
url="TODO",
|
|
python_requires=">=3.9",
|
|
packages=setuptools.find_packages(script_folder),
|
|
package_dir={"": "."},
|
|
classifiers=[
|
|
"Programming Language :: Python :: 3.9",
|
|
"Operating System :: OS Independent",
|
|
"License :: Free for non-commercial use",
|
|
],
|
|
license="apache-2.0",
|
|
install_requires=requirements,
|
|
ext_modules=[
|
|
make_cuda_ext(
|
|
name='bev_pool_v2_ext',
|
|
module='det_map.det.dal.mmdet3d.ops.bev_pool_v2',
|
|
sources=[
|
|
'src/bev_pool.cpp',
|
|
'src/bev_pool_cuda.cu',
|
|
],
|
|
),
|
|
],
|
|
cmdclass={'build_ext': BuildExtension},
|
|
|
|
)
|
|
|