@@ -28,20 +28,7 @@ set(TRITON_BUILD
28
28
OFF
29
29
CACHE STRING "Using Triton build process" )
30
30
31
- if (TRITON_BUILD)
32
- set_ifndef(TRTLLM_DIR ${CMAKE_CURRENT_SOURCE_DIR} /tensorrt_llm)
33
- # Install build time dependencies. This section is executed during cmake
34
- # configure time.
35
- execute_process (
36
- COMMAND bash -x ./tools/environment_setup.sh
37
- WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
38
- RESULT_VARIABLE CMD_RESULT)
39
- if (NOT CMD_RESULT EQUAL "0" )
40
- message (FATAL_ERROR "Failed to install build time dependencies" )
41
- endif ()
42
- else ()
43
- set_ifndef(TRTLLM_DIR ${CMAKE_CURRENT_SOURCE_DIR} /../tensorrt_llm)
44
- endif ()
31
+ set_ifndef(TRTLLM_DIR ${CMAKE_CURRENT_SOURCE_DIR} /../tensorrt_llm)
45
32
46
33
include (${TRTLLM_DIR} /cpp/cmake/modules/find_library_create_target.cmake)
47
34
@@ -64,16 +51,6 @@ if(TRITON_ENABLE_METRICS AND NOT TRITON_ENABLE_STATS)
64
51
FATAL_ERROR "TRITON_ENABLE_METRICS=ON requires TRITON_ENABLE_STATS=ON" )
65
52
endif ()
66
53
67
- # The TRTLLM_BUILD_CONTAINER is used to compile the TRT-LLM libraries that are
68
- # needed for the TRT-LLM backend. The TRTLLM_BUILD_CONTAINER is launched
69
- # separately, and the artifacts will be copied back to the backend installation
70
- # directory.
71
- if (TRITON_BUILD)
72
- set (TRTLLM_BUILD_CONTAINER
73
- ""
74
- CACHE STRING "Base image for building TRT-LLM" )
75
- endif ()
76
-
77
54
set (TRITON_COMMON_REPO_TAG
78
55
"main"
79
56
CACHE STRING "Tag for triton-inference-server/common repo" )
@@ -116,31 +93,6 @@ FetchContent_Declare(
116
93
GIT_SHALLOW ON )
117
94
FetchContent_MakeAvailable(repo-common repo-core repo-backend)
118
95
119
- # Compile TRT-LLM
120
- if (TRITON_BUILD)
121
- set (TRITON_TRTLLM_DOCKER_NAME "tritonserver-trtllm" )
122
- add_custom_command (
123
- OUTPUT tensorrt_llm_build
124
- COMMENT "Building TensorRT-LLM"
125
- COMMAND
126
- cd ${CMAKE_CURRENT_SOURCE_DIR} && python3 tools/gen_trtllm_dockerfile.py
127
- --trtllm-build -config="${CMAKE_BUILD_TYPE} "
128
- --trtllm-base-image="${TRTLLM_BUILD_CONTAINER} " --output =Dockerfile.trtllm
129
- COMMAND
130
- cd ${CMAKE_CURRENT_SOURCE_DIR} && docker build
131
- --cache -from=${TRITON_TRTLLM_DOCKER_NAME}
132
- --cache -from=${TRITON_TRTLLM_DOCKER_NAME} _cache0
133
- --cache -from=${TRITON_TRTLLM_DOCKER_NAME} _cache1 -t
134
- ${TRITON_TRTLLM_DOCKER_NAME} -f ./Dockerfile.trtllm .
135
- COMMAND docker rm trtllm_build || echo 'error ignored...' || true
136
- COMMAND docker create --name trtllm_build ${TRITON_TRTLLM_DOCKER_NAME}
137
- COMMAND cd ${CMAKE_CURRENT_SOURCE_DIR} && rm -fr tensorrt_llm
138
- COMMAND cd ${CMAKE_CURRENT_SOURCE_DIR} && docker cp
139
- trtllm_build:/app/tensorrt_llm tensorrt_llm
140
- COMMAND docker cp trtllm_build:/opt/trtllm_lib trtllm_build
141
- COMMAND docker rm trtllm_build)
142
- endif ()
143
-
144
96
#
145
97
# The backend must be built into a shared library. Use an ldscript to hide all
146
98
# symbols except for the TRITONBACKEND API.
@@ -153,11 +105,6 @@ set(SRCS src/libtensorrtllm.cc src/work_item.cc src/work_items_queue.cc
153
105
154
106
add_library (triton-tensorrt-llm-backend SHARED ${SRCS} )
155
107
156
- if (TRITON_BUILD)
157
- add_custom_target (trtllm_target DEPENDS tensorrt_llm_build)
158
- add_dependencies (triton-tensorrt-llm-backend trtllm_target)
159
- endif ()
160
-
161
108
add_library (TritonTensorRTLLMBackend::triton-tensorrt-llm-backend ALIAS
162
109
triton-tensorrt-llm-backend)
163
110
@@ -352,10 +299,25 @@ if(TRITON_ENABLE_METRICS)
352
299
endif ()
353
300
354
301
if (TRITON_BUILD)
355
- add_dependencies (tensorrt_llm trtllm_target)
356
- add_dependencies (tensorrt_llm_batch_manager trtllm_target)
357
- add_dependencies (nvinfer_plugin_tensorrt_llm trtllm_target)
358
- endif ()
302
+
303
+ if (CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL "x86_64" )
304
+ execute_process (
305
+ WORKING_DIRECTORY ${TRTLLM_DIR}
306
+ COMMAND bash -x docker/common/install_pytorch.sh pypi COMMAND_ECHO STDOUT
307
+ COMMAND_ERROR_IS_FATAL ANY)
308
+ else ()
309
+ execute_process (
310
+ WORKING_DIRECTORY ${TRTLLM_DIR}
311
+ COMMAND bash -x docker/common/install_pytorch.sh src_non_cxx11_abi
312
+ COMMAND_ECHO STDOUT COMMAND_ERROR_IS_FATAL ANY)
313
+ endif () # CMAKE_HOST_SYSTEM_PROCESSOR
314
+
315
+ execute_process (
316
+ WORKING_DIRECTORY ${TRTLLM_DIR}
317
+ COMMAND python3 scripts/build_wheel.py --trt_root /usr/local/tensorrt
318
+ COMMAND_ECHO STDOUT COMMAND_ERROR_IS_FATAL ANY)
319
+
320
+ endif () # TRITON_BUILD
359
321
360
322
target_link_libraries (
361
323
triton-tensorrt-llm-backend
@@ -407,9 +369,14 @@ install(
407
369
RUNTIME DESTINATION ${CMAKE_INSTALL_PREFIX} /backends/tensorrtllm)
408
370
409
371
if (TRITON_BUILD)
410
- install (DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} /trtllm_build/
372
+ file (
373
+ GLOB
374
+ LIBINFER_PLUGIN_TENSORRT_LLM
375
+ "${TRTLLM_DIR} /cpp/build/tensorrt_llm/plugins/libnvinfer_plugin_tensorrt_llm.so*"
376
+ FOLLOW_SYMLINKS)
377
+ install (FILES ${LIBINFER_PLUGIN_TENSORRT_LLM}
411
378
DESTINATION ${CMAKE_INSTALL_PREFIX} /backends/tensorrtllm)
412
- endif ()
379
+ endif () # TRITON_BUILD
413
380
414
381
install (
415
382
EXPORT triton-tensorrt-llm-backend-targets
0 commit comments