Skip to content

Commit 371d678

Browse files
committed
Fix CUDA minimal build requiring CUDNN_HOME
When building with onnxruntime_CUDA_MINIMAL=ON, cuDNN is not needed since minimal CUDA builds only use basic CUDA runtime (e.g., for TensorRT-only builds). Skip cuDNN.cmake inclusion and CUDNN_INCLUDE_DIR references when CUDA_MINIMAL is enabled. Fixes #24361
1 parent 1ed8fd9 commit 371d678

File tree

3 files changed

+20
-8
lines changed

3 files changed

+20
-8
lines changed

cmake/external/onnxruntime_external_deps.cmake

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -851,12 +851,15 @@ set(onnxruntime_LINK_DIRS)
851851
if (onnxruntime_USE_CUDA)
852852
find_package(CUDAToolkit REQUIRED)
853853

854-
if(onnxruntime_CUDNN_HOME)
855-
file(TO_CMAKE_PATH ${onnxruntime_CUDNN_HOME} onnxruntime_CUDNN_HOME)
856-
set(CUDNN_PATH ${onnxruntime_CUDNN_HOME})
857-
endif()
854+
# cuDNN is not needed for minimal CUDA builds (e.g., TensorRT-only builds)
855+
if(NOT onnxruntime_CUDA_MINIMAL)
856+
if(onnxruntime_CUDNN_HOME)
857+
file(TO_CMAKE_PATH ${onnxruntime_CUDNN_HOME} onnxruntime_CUDNN_HOME)
858+
set(CUDNN_PATH ${onnxruntime_CUDNN_HOME})
859+
endif()
858860

859-
include(cuDNN)
861+
include(cuDNN)
862+
endif()
860863
endif()
861864

862865
if(onnxruntime_USE_SNPE)

cmake/onnxruntime_python.cmake

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,10 @@ endif()
113113
onnxruntime_add_include_to_target(onnxruntime_pybind11_state Python::Module)
114114
target_include_directories(onnxruntime_pybind11_state PRIVATE ${ONNXRUNTIME_ROOT} ${pybind11_INCLUDE_DIRS})
115115
if(onnxruntime_USE_CUDA)
116-
target_include_directories(onnxruntime_pybind11_state PRIVATE ${CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES} ${CUDNN_INCLUDE_DIR})
116+
target_include_directories(onnxruntime_pybind11_state PRIVATE ${CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES})
117+
if(NOT onnxruntime_CUDA_MINIMAL)
118+
target_include_directories(onnxruntime_pybind11_state PRIVATE ${CUDNN_INCLUDE_DIR})
119+
endif()
117120
endif()
118121
if(onnxruntime_USE_CANN)
119122
target_include_directories(onnxruntime_pybind11_state PRIVATE ${onnxruntime_CANN_HOME}/include)

cmake/onnxruntime_unittests.cmake

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,10 @@ function(AddTest)
122122
onnxruntime_add_include_to_target(${_UT_TARGET} date::date flatbuffers::flatbuffers)
123123
target_include_directories(${_UT_TARGET} PRIVATE ${TEST_INC_DIR})
124124
if (onnxruntime_USE_CUDA)
125-
target_include_directories(${_UT_TARGET} PRIVATE ${CUDAToolkit_INCLUDE_DIRS} ${CUDNN_INCLUDE_DIR})
125+
target_include_directories(${_UT_TARGET} PRIVATE ${CUDAToolkit_INCLUDE_DIRS})
126+
if(NOT onnxruntime_CUDA_MINIMAL)
127+
target_include_directories(${_UT_TARGET} PRIVATE ${CUDNN_INCLUDE_DIR})
128+
endif()
126129
if (onnxruntime_USE_NCCL)
127130
target_include_directories(${_UT_TARGET} PRIVATE ${NCCL_INCLUDE_DIRS})
128131
endif()
@@ -1824,7 +1827,10 @@ if (NOT CMAKE_SYSTEM_NAME STREQUAL "Emscripten")
18241827
list(APPEND custom_op_src_patterns
18251828
"${ONNXRUNTIME_SHARED_LIB_TEST_SRC_DIR}/cuda_ops.cu"
18261829
"${TEST_SRC_DIR}/testdata/custom_op_library/cuda/cuda_ops.*")
1827-
list(APPEND custom_op_lib_include ${CUDAToolkit_INCLUDE_DIRS} ${CUDNN_INCLUDE_DIR})
1830+
list(APPEND custom_op_lib_include ${CUDAToolkit_INCLUDE_DIRS})
1831+
if(NOT onnxruntime_CUDA_MINIMAL)
1832+
list(APPEND custom_op_lib_include ${CUDNN_INCLUDE_DIR})
1833+
endif()
18281834
if (HAS_QSPECTRE)
18291835
list(APPEND custom_op_lib_option "$<$<COMPILE_LANGUAGE:CUDA>:SHELL:--compiler-options /Qspectre>")
18301836
endif()

0 commit comments

Comments
 (0)