Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
OpenDAS
torch-spline-conv
Commits
ad0d2d67
Commit
ad0d2d67
authored
Apr 23, 2020
by
rusty1s
Browse files
cmake build [skip ci]
parent
114aa00b
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
129 additions
and
0 deletions
+129
-0
CMakeLists.txt
CMakeLists.txt
+66
-0
README.md
README.md
+13
-0
cmake/TorchSplineConvConfig.cmake.in
cmake/TorchSplineConvConfig.cmake.in
+38
-0
csrc/spline_conv.h
csrc/spline_conv.h
+12
-0
No files found.
CMakeLists.txt
0 → 100644
View file @
ad0d2d67
cmake_minimum_required
(
VERSION 3.0
)
project
(
torchsplineconv
)
set
(
CMAKE_CXX_STANDARD 14
)
set
(
TORCHSPLINECONV_VERSION 1.5.4
)
option
(
WITH_CUDA
"Enable CUDA support"
OFF
)
if
(
WITH_CUDA
)
enable_language
(
CUDA
)
add_definitions
(
-D__CUDA_NO_HALF_OPERATORS__
)
endif
()
find_package
(
Python3 COMPONENTS Development
)
find_package
(
Torch REQUIRED
)
file
(
GLOB HEADERS csrc/spline_conv.h
)
file
(
GLOB OPERATOR_SOURCES csrc/cpu/*.h csrc/cpu/*.cpp csrc/*.cpp
)
if
(
WITH_CUDA
)
file
(
GLOB OPERATOR_SOURCES
${
OPERATOR_SOURCES
}
csrc/cuda/*.h csrc/cuda/*.cu
)
endif
()
add_library
(
${
PROJECT_NAME
}
SHARED
${
OPERATOR_SOURCES
}
)
target_link_libraries
(
${
PROJECT_NAME
}
PRIVATE
${
TORCH_LIBRARIES
}
Python3::Python
)
set_target_properties
(
${
PROJECT_NAME
}
PROPERTIES EXPORT_NAME TorchSplineConv
)
target_include_directories
(
${
PROJECT_NAME
}
INTERFACE
$<BUILD_INTERFACE:
${
HEADERS
}
>
$<INSTALL_INTERFACE:
${
CMAKE_INSTALL_INCLUDEDIR
}
>
)
include
(
GNUInstallDirs
)
include
(
CMakePackageConfigHelpers
)
set
(
TORCHSPLINECONV_CMAKECONFIG_INSTALL_DIR
"share/cmake/TorchSplineConv"
CACHE STRING
"install path for TorchSplineConvConfig.cmake"
)
configure_package_config_file
(
cmake/TorchSplineConvConfig.cmake.in
"
${
CMAKE_CURRENT_BINARY_DIR
}
/TorchSplineConvConfig.cmake"
INSTALL_DESTINATION
${
TORCHSPLINECONV_CMAKECONFIG_INSTALL_DIR
}
)
write_basic_package_version_file
(
${
CMAKE_CURRENT_BINARY_DIR
}
/TorchSplineConvConfigVersion.cmake
VERSION
${
TORCHSPLINECONV_VERSION
}
COMPATIBILITY AnyNewerVersion
)
install
(
FILES
${
CMAKE_CURRENT_BINARY_DIR
}
/TorchSplineConvConfig.cmake
${
CMAKE_CURRENT_BINARY_DIR
}
/TorchSplineConvConfigVersion.cmake
DESTINATION
${
TORCHSPLINECONV_CMAKECONFIG_INSTALL_DIR
}
)
install
(
TARGETS
${
PROJECT_NAME
}
EXPORT TorchSplineConvTargets
LIBRARY DESTINATION
${
CMAKE_INSTALL_LIBDIR
}
)
install
(
EXPORT TorchSplineConvTargets
NAMESPACE TorchSplineConv::
DESTINATION
${
TORCHSPLINECONV_CMAKECONFIG_INSTALL_DIR
}
)
install
(
FILES
${
HEADERS
}
DESTINATION
${
CMAKE_INSTALL_INCLUDEDIR
}
/
${
PROJECT_NAME
}
)
install
(
FILES
csrc/cpu/basis_cpu.h
csrc/cpu/weighting_cpu.h
DESTINATION
${
CMAKE_INSTALL_INCLUDEDIR
}
/
${
PROJECT_NAME
}
/cpu
)
if
(
WITH_CUDA
)
install
(
FILES
csrc/cuda/basis_cuda.h
csrc/cuda/weighting_cuda.h
DESTINATION
${
CMAKE_INSTALL_INCLUDEDIR
}
/
${
PROJECT_NAME
}
/cuda
)
endif
()
README.md
View file @
ad0d2d67
...
@@ -173,3 +173,16 @@ Please cite our paper if you use this code in your own work:
...
@@ -173,3 +173,16 @@ Please cite our paper if you use this code in your own work:
```
```
python setup.py test
python setup.py test
```
```
## C++ API
`torch-spline-conv`
also offers a C++ API that contains C++ equivalent of python models.
```
mkdir build
cd build
# Add -DWITH_CUDA=on support for the CUDA if needed
cmake ..
make
make install
```
cmake/TorchSplineConvConfig.cmake.in
0 → 100644
View file @
ad0d2d67
# TorchSplineConvConfig.cmake
# --------------------
#
# Exported targets:: SplineConv
#
@PACKAGE_INIT@
set(PN TorchSplineConv)
set(${PN}_INCLUDE_DIR "${PACKAGE_PREFIX_DIR}/@CMAKE_INSTALL_INCLUDEDIR@")
set(${PN}_LIBRARY "")
set(${PN}_DEFINITIONS USING_${PN})
check_required_components(${PN})
if(NOT (CMAKE_VERSION VERSION_LESS 3.0))
#-----------------------------------------------------------------------------
# Don't include targets if this file is being picked up by another
# project which has already built this as a subproject
#-----------------------------------------------------------------------------
if(NOT TARGET ${PN}::TorchSplineConv)
include("${CMAKE_CURRENT_LIST_DIR}/${PN}Targets.cmake")
if(NOT TARGET torch_library)
find_package(Torch REQUIRED)
endif()
if(NOT TARGET Python3::Python)
find_package(Python3 COMPONENTS Development)
endif()
target_link_libraries(TorchSplineConv::TorchSplineConv INTERFACE ${TORCH_LIBRARIES} Python3::Python)
if(@WITH_CUDA@)
target_compile_definitions(TorchSplineConv::TorchSplineConv INTERFACE WITH_CUDA)
endif()
endif()
endif()
csrc/spline_conv.h
0 → 100644
View file @
ad0d2d67
#pragma once
#include <torch/extension.h>
int64_t
cuda_version
();
std
::
tuple
<
torch
::
Tensor
,
torch
::
Tensor
>
spline_basis
(
torch
::
Tensor
pseudo
,
torch
::
Tensor
kernel_size
,
torch
::
Tensor
is_open_spline
,
int64_t
degree
);
torch
::
Tensor
spline_weighting
(
torch
::
Tensor
x
,
torch
::
Tensor
weight
,
torch
::
Tensor
basis
,
torch
::
Tensor
weight_index
);
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment