-
Notifications
You must be signed in to change notification settings - Fork 17
/
Copy pathCMakeLists.txt
53 lines (45 loc) · 1.81 KB
/
CMakeLists.txt
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
cmake_minimum_required(VERSION 3.10.0)
project(tensorrtscatter VERSION 1.0.0 LANGUAGES CXX CUDA)
set(CMAKE_CXX_STANDARD 14)
option(BUILD_PTLAUNCH "Build PyTorch launcher for c++ launcher" OFF)
find_package(CUDA REQUIRED)
set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} --expt-relaxed-constexpr")
set(CUDA_ARCHITECTURES "native")
set(CMAKE_CUDA_ARCHITECTURES ${CUDA_ARCHITECTURES})
if (NOT DEFINED TENSORRT_PREFIX_PATH)
message(FATAL_ERROR "TENSORRT_PREFIX_PATH is not defined")
endif()
set(TENSORRT_INCLUDE_DIRS "${TENSORRT_PREFIX_PATH}/include")
file(GLOB TENSORRT_LIBRARIES "${TENSORRT_PREFIX_PATH}/lib/*.so")
set(HEADER_DIRS "include")
file(GLOB SOURCES
"src/*.cpp" "src/*.cu"
"src/plugin/*.cpp" "src/plugin/*.cu")
if(BUILD_PTLAUNCH)
add_definitions(-DBUILD_PTLAUNCH)
find_package(Python3 REQUIRED COMPONENTS Development)
execute_process(
# COMMAND ${Python_EXECUTABLE} -c "import torch.utils; print(torch.utils.cmake_prefix_path)"
COMMAND python3 -c "import torch.utils; print(torch.utils.cmake_prefix_path)"
OUTPUT_STRIP_TRAILING_WHITESPACE
OUTPUT_VARIABLE LIBTORCH_PREFIX_PATH
)
find_package(Torch REQUIRED PATHS "${LIBTORCH_PREFIX_PATH}")
find_library(TORCH_PYTHON_LIBRARY torch_python PATHS "${TORCH_INSTALL_PREFIX}/lib" NO_CACHE)
endif()
add_library(${PROJECT_NAME} SHARED ${SOURCES})
target_include_directories(${PROJECT_NAME}
PUBLIC ${HEADER_DIRS}
PRIVATE ${CUDA_INCLUDE_DIRS} ${TENSORRT_INCLUDE_DIRS} ${HEADER_DIRS}/common
)
target_link_libraries(${PROJECT_NAME}
PRIVATE ${CUDA_LIBRARIES} ${TENSORRT_LIBRARIES}
)
if(BUILD_PTLAUNCH)
target_include_directories(${PROJECT_NAME}
PRIVATE ${TORCH_INCLUDE_DIRS}
)
target_link_libraries(${PROJECT_NAME}
PRIVATE ${TORCH_LIBRARIES} ${TORCH_PYTHON_LIBRARY} Python3::Python
)
endif()