From b1d74f11783a98f64f87a89b6beb84b82aae1990 Mon Sep 17 00:00:00 2001 From: Zhou Wei <1183042833@qq.com> Date: Sun, 5 Feb 2023 19:22:55 +0800 Subject: [PATCH] fix compil error on windows for cuda11.6/7/8 (#50199) --- CMakeLists.txt | 8 +++++++- cmake/external/cub.cmake | 4 ++-- cmake/third_party.cmake | 3 +-- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index f89b571c640..6722ae8e25b 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -157,8 +157,14 @@ if(WIN32) endforeach() endif() - # NOTE(zhouwei): msvc max/min macro conflict with std::min/max, define NOMINMAX globally + # msvc max/min macro conflict with std::min/max, define NOMINMAX globally add_definitions("-DNOMINMAX") + + # 1. windows.h define 'small' cause CUDA11.6/11.7/11.8 's cub compile error, + # see https://github.com/microsoft/onnxruntime/issues/11227 + # 2. WIN32_LEAN_AND_MEAN minimize the windows include files, avoid define 'small' + add_definitions(-DWIN32_LEAN_AND_MEAN) + # windows build turn off warnings, use parallel compiling. foreach( flag_var diff --git a/cmake/external/cub.cmake b/cmake/external/cub.cmake index de66e8d63d0..de4e04e6202 100644 --- a/cmake/external/cub.cmake +++ b/cmake/external/cub.cmake @@ -14,7 +14,7 @@ include(ExternalProject) -# Note(zhouwei): extern_cub has code __FILE_, If the path of extern_cub is changed, +# extern_cub has code __FILE_, If the path of extern_cub is changed, # it will effect about 30+ cu files sccache hit and slow compile speed on windows. # Therefore, a fixed CUB_PATH will be input to increase the sccache hit rate. set(CUB_PATH @@ -25,7 +25,7 @@ set(CUB_PREFIX_DIR ${CUB_PATH}) set(CUB_REPOSITORY ${GIT_URL}/NVlabs/cub.git) if(${CMAKE_CUDA_COMPILER_VERSION} GREATER_EQUAL 11.6) - # cuda_11.6.2_511.65‘s own cub is 1.15.0, which will cause compiling error in windows. + # cuda_11.6/11.7/11.8‘s own cub is 1.15.0, which will cause compiling error in windows. set(CUB_TAG 1.16.0) # cub 1.16.0 is not compitable with current thrust version add_definitions(-DTHRUST_IGNORE_CUB_VERSION_CHECK) diff --git a/cmake/third_party.cmake b/cmake/third_party.cmake index f181c60e6e9..6440487c139 100755 --- a/cmake/third_party.cmake +++ b/cmake/third_party.cmake @@ -320,8 +320,7 @@ if(WITH_ONNXRUNTIME) endif() if(WITH_GPU) - if(${CMAKE_CUDA_COMPILER_VERSION} LESS 11.0 - OR (WIN32 AND ${CMAKE_CUDA_COMPILER_VERSION} GREATER_EQUAL 11.6)) + if(${CMAKE_CUDA_COMPILER_VERSION} LESS 11.0) include(external/cub) # download cub list(APPEND third_party_deps extern_cub) endif() -- GitLab