-
Notifications
You must be signed in to change notification settings - Fork 4
/
setup.py
84 lines (67 loc) · 2.64 KB
/
setup.py
1
2
3
4
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
#!/usr/bin/env python
# Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved
import glob
import os
import torch
from setuptools import find_packages, setup
from torch.utils.cpp_extension import CUDA_HOME, CppExtension, CUDAExtension
torch_ver = [int(x) for x in torch.__version__.split('.')[:2]]
assert torch_ver >= [1, 3], 'Requires PyTorch >= 1.3'
def get_extensions():
this_dir = os.path.dirname(os.path.abspath(__file__))
extensions_dir = os.path.join(this_dir, 'adet', 'layers', 'csrc')
main_source = os.path.join(extensions_dir, 'vision.cpp')
sources = glob.glob(os.path.join(extensions_dir, '**', '*.cpp'))
source_cuda = glob.glob(os.path.join(
extensions_dir, '**', '*.cu')) + glob.glob(
os.path.join(extensions_dir, '*.cu'))
sources = [main_source] + sources
extension = CppExtension
extra_compile_args = {'cxx': []}
define_macros = []
if (torch.cuda.is_available() and CUDA_HOME is not None) or os.getenv(
'FORCE_CUDA', '0') == '1':
extension = CUDAExtension
sources += source_cuda
define_macros += [('WITH_CUDA', None)]
extra_compile_args['nvcc'] = [
'-DCUDA_HAS_FP16=1',
'-D__CUDA_NO_HALF_OPERATORS__',
'-D__CUDA_NO_HALF_CONVERSIONS__',
'-D__CUDA_NO_HALF2_OPERATORS__',
]
if torch_ver < [1, 7]:
# supported by https://github.com/pytorch/pytorch/pull/43931
CC = os.environ.get('CC', None)
if CC is not None:
extra_compile_args['nvcc'].append('-ccbin={}'.format(CC))
sources = [os.path.join(extensions_dir, s) for s in sources]
include_dirs = [extensions_dir]
ext_modules = [
extension(
'adet._C',
sources,
include_dirs=include_dirs,
define_macros=define_macros,
extra_compile_args=extra_compile_args,
)
]
return ext_modules
setup(
name='AdelaiDet',
version='0.2.0',
author='Adelaide Intelligent Machines',
url='https://github.com/stanstarks/AdelaiDet',
description="AdelaiDet is AIM's research "
'platform for instance-level detection tasks based on Detectron2.',
packages=find_packages(exclude=('configs', 'tests')),
python_requires='>=3.6',
install_requires=[
'termcolor>=1.1', 'Pillow>=6.0', 'yacs>=0.1.6', 'tabulate',
'cloudpickle', 'matplotlib', 'tqdm>4.29.0', 'tensorboard', 'rapidfuzz',
'Polygon3', 'shapely', 'scikit-image'
],
extras_require={'all': ['psutil']},
ext_modules=get_extensions(),
cmdclass={'build_ext': torch.utils.cpp_extension.BuildExtension},
)