-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
89 lines (73 loc) · 3.42 KB
/
Copy pathCMakeLists.txt
File metadata and controls
89 lines (73 loc) · 3.42 KB
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
85
86
87
88
89
cmake_minimum_required(VERSION 3.18 FATAL_ERROR)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
project(trtllm-multinodes-instance LANGUAGES CXX CUDA)
set(CMAKE_CXX_STANDARD 17)
find_package(CUDAToolkit REQUIRED)
find_package(MPI REQUIRED)
message(STATUS "Using MPI_CXX_INCLUDE_DIRS: ${MPI_CXX_INCLUDE_DIRS}")
message(STATUS "Using MPI_CXX_LIBRARIES: ${MPI_CXX_LIBRARIES}")
set(3RDPARTY_DIR "${PROJECT_SOURCE_DIR}/3rdparty")
add_subdirectory(
"${3RDPARTY_DIR}/cxxopts/"
"${3RDPARTY_DIR}/json/"
)
include_directories(
${CUDAToolkit_INCLUDE_DIRS}
${MPI_CXX_INCLUDE_DIRS}
${3RDPARTY_DIR}/json/include
)
set(TRT_INCLUDE_DIR "/usr/local/tensorrt/include")
set(TRT_LIB_DIR "/usr/local/tensorrt/lib")
include_directories(${PROJECT_SOURCE_DIR}/include ${TRT_INCLUDE_DIR})
add_library(tensorrt_llm SHARED IMPORTED)
set(TRTLLM_LIB_LOCATION "${PROJECT_SOURCE_DIR}/libs/libtensorrt_llm.so")
set_property(TARGET tensorrt_llm PROPERTY IMPORTED_LOCATION ${TRTLLM_LIB_LOCATION})
add_library(libnvinfer_plugin_tensorrt_llm SHARED IMPORTED)
set(TRTLLM_PLUGIN_LIB_LOCATION "${PROJECT_SOURCE_DIR}/libs/libnvinfer_plugin_tensorrt_llm.so")
set_property(TARGET libnvinfer_plugin_tensorrt_llm PROPERTY IMPORTED_LOCATION
${TRTLLM_PLUGIN_LIB_LOCATION})
add_library(nvinfer SHARED IMPORTED)
set(NVINFER_LOCATION "${TRT_LIB_DIR}/libnvinfer.so")
set_property(TARGET nvinfer PROPERTY IMPORTED_LOCATION ${NVINFER_LOCATION})
add_library(libtokenizers_cpp SHARED IMPORTED)
set(LIBTOKENIZERS_CPP_LOCATION "${PROJECT_SOURCE_DIR}/libs/libtokenizers_cpp.a")
set_property(TARGET libtokenizers_cpp PROPERTY IMPORTED_LOCATION ${LIBTOKENIZERS_CPP_LOCATION})
add_library(libtokenizers_c SHARED IMPORTED)
set(LIBTOKENIZERS_C_LOCATION "${PROJECT_SOURCE_DIR}/libs/libtokenizers_c.a")
set_property(TARGET libtokenizers_c PROPERTY IMPORTED_LOCATION ${LIBTOKENIZERS_C_LOCATION})
add_library(librpc SHARED IMPORTED)
set(LIBRPC_LOCATION "${PROJECT_SOURCE_DIR}/libs/librpc.a")
set_property(TARGET librpc PROPERTY IMPORTED_LOCATION ${LIBRPC_LOCATION})
set(CLIENT_SHARED_TARGETS
tensorrt_llm
libnvinfer_plugin_tensorrt_llm
nvinfer
libtokenizers_cpp
libtokenizers_c
librpc)
set(SERVER_SHARED_TARGETS
libtokenizers_cpp
libtokenizers_c
librpc)
set(SERVER_INSTANCE_NAME server)
add_executable(${SERVER_INSTANCE_NAME} "${PROJECT_SOURCE_DIR}/src/server/server.cpp")
add_definitions(-DENABLE_BF16)
add_definitions(-DENABLE_FP8)
target_compile_options(${SERVER_INSTANCE_NAME} PRIVATE -Wno-deprecated-declarations)
target_link_libraries(${SERVER_INSTANCE_NAME} PUBLIC
${SERVER_SHARED_TARGETS}
cxxopts::cxxopts
)
set(CLIENT_INSTANCE_NAME client)
FILE(GLOB_RECURSE SOURCE CONFIGURE_DEPENDS
"${PROJECT_SOURCE_DIR}/src/model_instance/*.cpp")
add_executable(${CLIENT_INSTANCE_NAME} ${SOURCE} "${PROJECT_SOURCE_DIR}/src/client/client.cpp")
add_definitions(-DENABLE_BF16)
add_definitions(-DENABLE_FP8)
target_compile_options(${CLIENT_INSTANCE_NAME} PRIVATE -Wno-deprecated-declarations)
target_link_libraries(${CLIENT_INSTANCE_NAME} PUBLIC
${CLIENT_SHARED_TARGETS}
${MPI_CXX_LIBRARIES}
CUDA::cudart
cxxopts::cxxopts
)