diff --git a/backends/trtllm/CMakeLists.txt b/backends/trtllm/CMakeLists.txt index 65e6b11e..27d3d87f 100644 --- a/backends/trtllm/CMakeLists.txt +++ b/backends/trtllm/CMakeLists.txt @@ -46,7 +46,10 @@ if (${TGI_TRTLLM_BACKEND_BUILD_EXAMPLES}) endif () # This install all the artifacts in CMAKE_INSTALL_PREFIX under include/ lib/ bin/ to make easy to link / find it back +message(STATUS "nvrtc ${TRTLLM_NVRTC_LIBRARY_NAME}") +message(STATUS "Installation nvrtc ${TRTLLM_NVRTC_WRAPPER_PATH}") install(TARGETS tgi_trtllm_backend_impl tensorrt_llm nvinfer_plugin_tensorrt_llm executorWorker) +install(FILES ${TRTLLM_NVRTC_WRAPPER_PATH} TYPE LIB) #### Unit Tests #### if (${TGI_TRTLLM_BACKEND_BUILD_TESTS}) diff --git a/backends/trtllm/cmake/trtllm.cmake b/backends/trtllm/cmake/trtllm.cmake index 5763818d..0540bbd9 100644 --- a/backends/trtllm/cmake/trtllm.cmake +++ b/backends/trtllm/cmake/trtllm.cmake @@ -30,3 +30,16 @@ fetchcontent_makeavailable(trtllm) message(STATUS "Found TensorRT-LLM: ${trtllm_SOURCE_DIR}") execute_process(COMMAND git lfs install WORKING_DIRECTORY "${trtllm_SOURCE_DIR}/") execute_process(COMMAND git lfs pull WORKING_DIRECTORY "${trtllm_SOURCE_DIR}/") + +# TRTLLM use a JIT based *precompiled* library to generate some specific kernels, we are generating the path to this one here +if (WIN32) + set(TRTLLM_NVRTC_LIBRARY_NAME "tensorrt_llm_nvrtc_wrapper${CMAKE_SHARED_LIBRARY_SUFFIX}" CACHE INTERNAL "nvrtc wrapper library name") +else () + set(TRTLLM_NVRTC_LIBRARY_NAME "libtensorrt_llm_nvrtc_wrapper${CMAKE_SHARED_LIBRARY_SUFFIX}" CACHE INTERNAL "nvrtc wrapper library name") +endif () +set( + TRTLLM_NVRTC_WRAPPER_PATH + "${trtllm_SOURCE_DIR}/cpp/tensorrt_llm/kernels/decoderMaskedMultiheadAttention/decoderXQAImplJIT/nvrtcWrapper/${CMAKE_LIBRARY_ARCHITECTURE}/${TRTLLM_NVRTC_LIBRARY_NAME}" + CACHE INTERNAL "nvrtc wrapper library path" +) +