setup.py 1.56 KB
Newer Older
Benjamin Thomas Graham's avatar
Benjamin Thomas Graham committed
1
2
3
# Copyright 2016-present, Facebook, Inc.
# All rights reserved.
#
Benjamin Graham's avatar
Benjamin Graham committed
4
# This source code is licensed under the BSD-style license found in the
Benjamin Thomas Graham's avatar
Benjamin Thomas Graham committed
5
6
# LICENSE file in the root directory of this source tree.

7
8
9
10
import torch, os
from torch.utils.cpp_extension import BuildExtension, CppExtension, CUDAExtension
from setuptools import setup, find_packages

Benjamin Thomas Graham's avatar
Benjamin Thomas Graham committed
11
12
this_dir = os.path.dirname(os.path.realpath(__file__))
torch_dir = os.path.dirname(torch.__file__)
13
conda_include_dir = '/'.join(torch_dir.split('/')[:-4]) + '/include'
Benjamin Thomas Graham's avatar
Benjamin Thomas Graham committed
14

15
extra = {'cxx': ['-std=c++11', '-fopenmp'], 'nvcc': ['-std=c++11', '-Xcompiler', '-fopenmp']}
Benjamin Thomas Graham's avatar
Benjamin Thomas Graham committed
16
17
18

setup(
    name='sparseconvnet',
19
    version='0.2',
Benjamin Thomas Graham's avatar
Benjamin Thomas Graham committed
20
21
22
23
    description='Submanifold (Spatially) Sparse Convolutional Networks https://arxiv.org/abs/1706.01307',
    author='Facebook AI Research',
    author_email='benjamingraham@fb.com',
    url='https://github.com/facebookresearch/SparseConvNet',
24
25
    packages=['sparseconvnet','sparseconvnet.SCN'],
    ext_modules=[
26
      CUDAExtension('sparseconvnet.SCN',
Benjamin Thomas Graham's avatar
Benjamin Thomas Graham committed
27
28
        [
         'sparseconvnet/SCN/cuda.cu', 'sparseconvnet/SCN/sparseconvnet_cuda.cpp', 'sparseconvnet/SCN/pybind.cpp'],
29
30
31
        include_dirs=[conda_include_dir, this_dir+'/sparseconvnet/SCN/'],
        extra_compile_args=extra)
      if torch.cuda.is_available()  else
32
      CppExtension('sparseconvnet.SCN',
Benjamin Thomas Graham's avatar
Benjamin Thomas Graham committed
33
        ['sparseconvnet/SCN/pybind.cpp', 'sparseconvnet/SCN/sparseconvnet_cpu.cpp'],
34
35
36
        include_dirs=[conda_include_dir, this_dir+'/sparseconvnet/SCN/'],
        extra_compile_args=extra['cxx'])],
    cmdclass={'build_ext': BuildExtension},
Benjamin Thomas Graham's avatar
Benjamin Thomas Graham committed
37
    zip_safe=False,
Benjamin Thomas Graham's avatar
Benjamin Thomas Graham committed
38
)