setup.py 3.17 KB
Newer Older
rusty1s's avatar
rusty1s committed
1
from setuptools import setup, find_packages
Dmitry Leonov's avatar
Dmitry Leonov committed
2
from sys import argv
rusty1s's avatar
rusty1s committed
3
import torch
AntoinePrv's avatar
AntoinePrv committed
4
from torch.utils.cpp_extension import CppExtension, CUDAExtension, CUDA_HOME
rusty1s's avatar
rusty1s committed
5

rusty1s's avatar
rusty1s committed
6
7
8
9
10
11
12
TORCH_MAJOR = int(torch.__version__.split('.')[0])
TORCH_MINOR = int(torch.__version__.split('.')[1])

extra_compile_args = []
if (TORCH_MAJOR > 1) or (TORCH_MAJOR == 1 and TORCH_MINOR > 2):
    extra_compile_args += ['-DVERSION_GE_1_3']

rusty1s's avatar
rusty1s committed
13
ext_modules = [
rusty1s's avatar
rusty1s committed
14
15
    CppExtension('torch_cluster.graclus_cpu', ['cpu/graclus.cpp'],
                 extra_compile_args=extra_compile_args),
16
    CppExtension('torch_cluster.grid_cpu', ['cpu/grid.cpp']),
rusty1s's avatar
rusty1s committed
17
18
19
20
21
22
    CppExtension('torch_cluster.fps_cpu', ['cpu/fps.cpp'],
                 extra_compile_args=extra_compile_args),
    CppExtension('torch_cluster.rw_cpu', ['cpu/rw.cpp'],
                 extra_compile_args=extra_compile_args),
    CppExtension('torch_cluster.sampler_cpu', ['cpu/sampler.cpp'],
                 extra_compile_args=extra_compile_args),
rusty1s's avatar
rusty1s committed
23
24
25
]
cmdclass = {'build_ext': torch.utils.cpp_extension.BuildExtension}

Dmitry Leonov's avatar
Dmitry Leonov committed
26
27
28
29
30
31
32
GPU = True
for arg in argv:
    if arg == '--cpu':
        GPU = False
        argv.remove(arg)

if CUDA_HOME is not None and GPU:
rusty1s's avatar
rusty1s committed
33
    ext_modules += [
34
        CUDAExtension('torch_cluster.graclus_cuda',
rusty1s's avatar
rusty1s committed
35
36
                      ['cuda/graclus.cpp', 'cuda/graclus_kernel.cu'],
                      extra_compile_args=extra_compile_args),
37
        CUDAExtension('torch_cluster.grid_cuda',
rusty1s's avatar
rusty1s committed
38
39
                      ['cuda/grid.cpp', 'cuda/grid_kernel.cu'],
                      extra_compile_args=extra_compile_args),
40
        CUDAExtension('torch_cluster.fps_cuda',
rusty1s's avatar
rusty1s committed
41
42
                      ['cuda/fps.cpp', 'cuda/fps_kernel.cu'],
                      extra_compile_args=extra_compile_args),
43
        CUDAExtension('torch_cluster.nearest_cuda',
rusty1s's avatar
rusty1s committed
44
45
                      ['cuda/nearest.cpp', 'cuda/nearest_kernel.cu'],
                      extra_compile_args=extra_compile_args),
46
        CUDAExtension('torch_cluster.knn_cuda',
rusty1s's avatar
rusty1s committed
47
48
                      ['cuda/knn.cpp', 'cuda/knn_kernel.cu'],
                      extra_compile_args=extra_compile_args),
49
        CUDAExtension('torch_cluster.radius_cuda',
rusty1s's avatar
rusty1s committed
50
51
                      ['cuda/radius.cpp', 'cuda/radius_kernel.cu'],
                      extra_compile_args=extra_compile_args),
rusty1s's avatar
rusty1s committed
52
        CUDAExtension('torch_cluster.rw_cuda',
rusty1s's avatar
rusty1s committed
53
54
                      ['cuda/rw.cpp', 'cuda/rw_kernel.cu'],
                      extra_compile_args=extra_compile_args),
rusty1s's avatar
rusty1s committed
55
    ]
rusty1s's avatar
rusty1s committed
56

rusty1s's avatar
rusty1s committed
57
__version__ = '1.4.5'
rusty1s's avatar
rusty1s committed
58
59
url = 'https://github.com/rusty1s/pytorch_cluster'

rusty1s's avatar
rusty1s committed
60
install_requires = ['scipy']
rusty1s's avatar
rusty1s committed
61
setup_requires = ['pytest-runner']
rusty1s's avatar
rusty1s committed
62
63
64
tests_require = ['pytest', 'pytest-cov']

setup(
rusty1s's avatar
rusty1s committed
65
    name='torch_cluster',
rusty1s's avatar
rusty1s committed
66
    version=__version__,
67
68
    description=('PyTorch Extension Library of Optimized Graph Cluster '
                 'Algorithms'),
rusty1s's avatar
rusty1s committed
69
70
71
72
    author='Matthias Fey',
    author_email='matthias.fey@tu-dortmund.de',
    url=url,
    download_url='{}/archive/{}.tar.gz'.format(url, __version__),
rusty1s's avatar
rusty1s committed
73
74
75
76
77
78
    keywords=[
        'pytorch',
        'geometric-deep-learning',
        'graph-neural-networks',
        'cluster-algorithms',
    ],
rusty1s's avatar
rusty1s committed
79
80
81
    install_requires=install_requires,
    setup_requires=setup_requires,
    tests_require=tests_require,
rusty1s's avatar
rusty1s committed
82
83
    ext_modules=ext_modules,
    cmdclass=cmdclass,
84
85
    packages=find_packages(),
)