From dfb7edebf24be5dddd470cf89f3f6e72c5f23611 Mon Sep 17 00:00:00 2001 From: Dick Carter Date: Fri, 11 Sep 2020 23:37:31 -0700 Subject: [PATCH] Add cmake flag USE_FATBIN_COMPRESSION, ON by default for CUDA >= 11 (#19123) * Add cmake flag USE_FATBIN_COMPRESSION, ON by default for CUDA >= 11 * cmake flag USE_FATBIN_COMPRESSION default is ON for all builds --- CMakeLists.txt | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 86f90a1a95f9..c2b7bff9f61c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -51,6 +51,7 @@ Format: Auto | Common | All | LIST(ARCH_AND_PTX ...) option(USE_NCCL "Use NVidia NCCL with CUDA" OFF) option(USE_OPENCV "Build with OpenCV support" ON) option(USE_OPENMP "Build with Openmp support" ON) +option(USE_FATBIN_COMPRESSION "Compress nvcc fatbin output" ON) cmake_dependent_option(USE_NVML "Build with nvml support if found" ON "USE_CUDA" OFF) cmake_dependent_option(USE_CUDNN "Build with cudnn support" ON "USE_CUDA" OFF) # one could set CUDNN_ROOT for search path cmake_dependent_option(USE_NVTX "Build with nvtx support if found" ON "USE_CUDA" OFF) @@ -657,6 +658,10 @@ endif() # Add cmake targets add_subdirectory("3rdparty/mshadow") +if(USE_CUDA AND USE_FATBIN_COMPRESSION) + string(APPEND CMAKE_CUDA_FLAGS "--fatbin-options -compress-all ") + message("-- CUDA: Adding NVCC options: --fatbin-options -compress-all ") +endif() if(UNIX) string(APPEND CMAKE_CUDA_FLAGS " ${CUDA_ARCH_FLAGS_SPACES}") # Create dummy file since we want an empty shared library before linking