From 2722fbabc1791f291c971318022da525c4840510 Mon Sep 17 00:00:00 2001 From: Kyle Edwards Date: Wed, 4 Mar 2026 06:06:29 +0000 Subject: [PATCH 1/2] Don't build fatbins with debug symbols --- cpp/CMakeLists.txt | 13 +++++++++---- cpp/bench/ann/CMakeLists.txt | 8 +++++--- cpp/cmake/modules/ConfigureCUDA.cmake | 9 +++------ cpp/tests/CMakeLists.txt | 6 ++++-- 4 files changed, 21 insertions(+), 15 deletions(-) diff --git a/cpp/CMakeLists.txt b/cpp/CMakeLists.txt index 6834d293bd..d4e9f2c6b4 100644 --- a/cpp/CMakeLists.txt +++ b/cpp/CMakeLists.txt @@ -334,8 +334,10 @@ if(NOT BUILD_CPU_ONLY) $ ) target_compile_options( - cuvs-cagra-search PRIVATE "$<$:${CUVS_CXX_FLAGS}>" - "$<$:${CUVS_CUDA_FLAGS}>" + cuvs-cagra-search + PRIVATE "$<$:${CUVS_CXX_FLAGS}>" + "$<$:${CUVS_CUDA_FLAGS}>" + "$<$,$>:${CUVS_DEBUG_CUDA_FLAGS}>" ) if(BUILD_MG_ALGOS) @@ -680,8 +682,10 @@ if(NOT BUILD_CPU_ONLY) POSITION_INDEPENDENT_CODE ON ) target_compile_options( - cuvs_objs PRIVATE "$<$:${CUVS_CXX_FLAGS}>" - "$<$:${CUVS_CUDA_FLAGS}>" + cuvs_objs + PRIVATE "$<$:${CUVS_CXX_FLAGS}>" + "$<$:${CUVS_CUDA_FLAGS}>" + "$<$,$>:${CUVS_DEBUG_CUDA_FLAGS}>" ) target_compile_definitions( @@ -760,6 +764,7 @@ if(NOT BUILD_CPU_ONLY) --expt-relaxed-constexpr> PRIVATE "$<$:${CUVS_CXX_FLAGS}>" "$<$:${CUVS_CUDA_FLAGS}>" + "$<$,$>:${CUVS_DEBUG_CUDA_FLAGS}>" ) target_compile_definitions( cuvs diff --git a/cpp/bench/ann/CMakeLists.txt b/cpp/bench/ann/CMakeLists.txt index 8d254c0933..4e4527267c 100644 --- a/cpp/bench/ann/CMakeLists.txt +++ b/cpp/bench/ann/CMakeLists.txt @@ -1,6 +1,6 @@ # ============================================================================= # cmake-format: off -# SPDX-FileCopyrightText: Copyright (c) 2024-2025, NVIDIA CORPORATION. +# SPDX-FileCopyrightText: Copyright (c) 2024-2026, NVIDIA CORPORATION. # SPDX-License-Identifier: Apache-2.0 # cmake-format: on # ============================================================================= @@ -190,8 +190,10 @@ function(ConfigureAnnBench) set(${ConfigureAnnBench_CXXFLAGS} ${CUVS_CXX_FLAGS} ${ConfigureAnnBench_CXXFLAGS}) target_compile_options( - ${BENCH_NAME} PRIVATE "$<$:${ConfigureAnnBench_CXXFLAGS}>" - "$<$:${CUVS_CUDA_FLAGS}>" + ${BENCH_NAME} + PRIVATE "$<$:${ConfigureAnnBench_CXXFLAGS}>" + "$<$:${CUVS_CUDA_FLAGS}>" + "$<$,$>:${CUVS_DEBUG_CUDA_FLAGS}>" ) if(CUVS_ANN_BENCH_USE_${ConfigureAnnBench_NAME}) diff --git a/cpp/cmake/modules/ConfigureCUDA.cmake b/cpp/cmake/modules/ConfigureCUDA.cmake index c6d51b1db0..0b50d78707 100644 --- a/cpp/cmake/modules/ConfigureCUDA.cmake +++ b/cpp/cmake/modules/ConfigureCUDA.cmake @@ -1,6 +1,6 @@ # ============================================================================= # cmake-format: off -# SPDX-FileCopyrightText: Copyright (c) 2018-2025, NVIDIA CORPORATION. +# SPDX-FileCopyrightText: Copyright (c) 2018-2026, NVIDIA CORPORATION. # SPDX-License-Identifier: Apache-2.0 # cmake-format: on # ============================================================================= @@ -55,8 +55,5 @@ if(OpenMP_FOUND) endif() # Debug options -if(CMAKE_BUILD_TYPE MATCHES Debug) - message(VERBOSE "cuVS: Building with debugging flags") - list(APPEND CUVS_CUDA_FLAGS -G -Xcompiler=-rdynamic --maxrregcount=64) - list(APPEND CUVS_CUDA_FLAGS -Xptxas --suppress-stack-size-warning) -endif() +list(APPEND CUVS_DEBUG_CUDA_FLAGS -G -Xcompiler=-rdynamic --maxrregcount=64) +list(APPEND CUVS_DEBUG_CUDA_FLAGS -Xptxas --suppress-stack-size-warning) diff --git a/cpp/tests/CMakeLists.txt b/cpp/tests/CMakeLists.txt index 35794adf9b..bbddef87e5 100644 --- a/cpp/tests/CMakeLists.txt +++ b/cpp/tests/CMakeLists.txt @@ -61,8 +61,10 @@ function(ConfigureTest) CUDA_STANDARD_REQUIRED ON ) target_compile_options( - ${TEST_NAME} PRIVATE "$<$:${CUVS_CXX_FLAGS}>" - "$<$:${CUVS_CUDA_FLAGS}>" + ${TEST_NAME} + PRIVATE "$<$:${CUVS_CXX_FLAGS}>" + "$<$:${CUVS_CUDA_FLAGS}>" + "$<$,$>:${CUVS_DEBUG_CUDA_FLAGS}>" ) if(_CUVS_TEST_NOCUDA) From a38e0f1c36589308b338a74846b05977a2b04617 Mon Sep 17 00:00:00 2001 From: Kyle Edwards Date: Mon, 9 Mar 2026 16:23:32 +0000 Subject: [PATCH 2/2] Make configure dependent on matrix file --- cpp/cmake/modules/generate_jit_lto_kernels.cmake | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/cpp/cmake/modules/generate_jit_lto_kernels.cmake b/cpp/cmake/modules/generate_jit_lto_kernels.cmake index 1454bac97e..e27f432b76 100644 --- a/cpp/cmake/modules/generate_jit_lto_kernels.cmake +++ b/cpp/cmake/modules/generate_jit_lto_kernels.cmake @@ -129,6 +129,11 @@ function(generate_jit_lto_kernels source_list_var) find_package(Python3 REQUIRED COMPONENTS Interpreter) if(_JIT_LTO_MATRIX_JSON_FILE) + set_property( + DIRECTORY + PROPERTY CMAKE_CONFIGURE_DEPENDS "${_JIT_LTO_MATRIX_JSON_FILE}" + APPEND + ) compute_matrix_product(matrix_product MATRIX_JSON_FILE "${_JIT_LTO_MATRIX_JSON_FILE}") else() compute_matrix_product(matrix_product MATRIX_JSON_STRING "${_JIT_LTO_MATRIX_JSON_STRING}")