From 7bd2601c3dd4e99340d85b3e8f49de38c87fb537 Mon Sep 17 00:00:00 2001 From: Connor Baker Date: Tue, 25 Nov 2025 02:25:31 +0000 Subject: [PATCH] cudaPackages.cudnn-frontend: 1.9.0 -> 1.16.0 Signed-off-by: Connor Baker (cherry picked from commit 3803d65740c58a9211f0b536209975cac319561e) --- ...at-out-common-python-bindings-option.patch | 30 - ...-so-headers-can-be-discovered-when-i.patch | 84 --- ...install-samples-and-tests-when-built.patch | 85 --- ...fix-instances-of-maybe-uninitialized.patch | 591 ------------------ .../packages/cudnn-frontend/CMakeLists.txt | 133 ---- .../cudnn_frontend-config.cmake.in | 3 - .../packages/cudnn-frontend/package.nix | 18 +- 7 files changed, 6 insertions(+), 938 deletions(-) delete mode 100644 pkgs/development/cuda-modules/packages/cudnn-frontend/0001-cmake-float-out-common-python-bindings-option.patch delete mode 100644 pkgs/development/cuda-modules/packages/cudnn-frontend/0002-cmake-add-config-so-headers-can-be-discovered-when-i.patch delete mode 100644 pkgs/development/cuda-modules/packages/cudnn-frontend/0003-cmake-install-samples-and-tests-when-built.patch delete mode 100644 pkgs/development/cuda-modules/packages/cudnn-frontend/0004-samples-fix-instances-of-maybe-uninitialized.patch delete mode 100644 pkgs/development/cuda-modules/packages/cudnn-frontend/CMakeLists.txt delete mode 100644 pkgs/development/cuda-modules/packages/cudnn-frontend/cudnn_frontend-config.cmake.in diff --git a/pkgs/development/cuda-modules/packages/cudnn-frontend/0001-cmake-float-out-common-python-bindings-option.patch b/pkgs/development/cuda-modules/packages/cudnn-frontend/0001-cmake-float-out-common-python-bindings-option.patch deleted file mode 100644 index 76ad1d57ffcd..000000000000 --- a/pkgs/development/cuda-modules/packages/cudnn-frontend/0001-cmake-float-out-common-python-bindings-option.patch +++ /dev/null @@ -1,30 +0,0 @@ -From eeef96e91bd3453160315bf4618b7b91ae7240ba Mon Sep 17 00:00:00 2001 -From: Connor Baker -Date: Sat, 18 Jan 2025 20:48:11 +0000 -Subject: [PATCH 1/4] cmake: float out common python bindings option - ---- - CMakeLists.txt | 3 +-- - 1 file changed, 1 insertion(+), 2 deletions(-) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 9739569..8944621 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -5,12 +5,11 @@ project(cudnn_frontend VERSION 1.9.0) - option(CUDNN_FRONTEND_SKIP_JSON_LIB "Defines whether FE should not include nlohmann/json.hpp." OFF) - option(CUDNN_FRONTEND_BUILD_SAMPLES "Defines if samples are built or not." ON) - option(CUDNN_FRONTEND_BUILD_TESTS "Defines if unittests are built or not." ON) -+option(CUDNN_FRONTEND_BUILD_PYTHON_BINDINGS "Defines if python bindings are built or not." OFF) - - if(MSVC OR MSYS OR MINGW) -- option(CUDNN_FRONTEND_BUILD_PYTHON_BINDINGS "Defines if python bindings are built or not." OFF) - add_compile_options(/W4 /WX) - else() -- option(CUDNN_FRONTEND_BUILD_PYTHON_BINDINGS "Defines if python bindings are built or not." OFF) - add_compile_options(-Wall -Wextra -Wpedantic -Werror -Wno-error=attributes -Wno-attributes -Wno-error=unused-function -Wno-unused-function) - endif() - --- -2.47.0 - diff --git a/pkgs/development/cuda-modules/packages/cudnn-frontend/0002-cmake-add-config-so-headers-can-be-discovered-when-i.patch b/pkgs/development/cuda-modules/packages/cudnn-frontend/0002-cmake-add-config-so-headers-can-be-discovered-when-i.patch deleted file mode 100644 index e3edf4913daa..000000000000 --- a/pkgs/development/cuda-modules/packages/cudnn-frontend/0002-cmake-add-config-so-headers-can-be-discovered-when-i.patch +++ /dev/null @@ -1,84 +0,0 @@ -From da16ec51ea78f88f333ecf3df2a249fcc65ead24 Mon Sep 17 00:00:00 2001 -From: Connor Baker -Date: Sat, 18 Jan 2025 22:01:03 +0000 -Subject: [PATCH 2/4] cmake: add config so headers can be discovered when - installed - ---- - CMakeLists.txt | 39 +++++++++++++++++++++++++++++++--- - cudnn_frontend-config.cmake.in | 3 +++ - 2 files changed, 39 insertions(+), 3 deletions(-) - create mode 100644 cudnn_frontend-config.cmake.in - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 8944621..9b1bfba 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -1,4 +1,4 @@ --cmake_minimum_required(VERSION 3.17) -+cmake_minimum_required(VERSION 3.23) - - project(cudnn_frontend VERSION 1.9.0) - -@@ -15,6 +15,15 @@ endif() - - add_library(cudnn_frontend INTERFACE) - -+# Add header files to library -+file(GLOB_RECURSE CUDNN_FRONTEND_INCLUDE_FILES "include/*") -+target_sources( -+ cudnn_frontend PUBLIC FILE_SET HEADERS -+ BASE_DIRS "$" -+ FILES "${CUDNN_FRONTEND_INCLUDE_FILES}" -+) -+unset(CUDNN_FRONTEND_INCLUDE_FILES) -+ - target_compile_definitions( - cudnn_frontend INTERFACE - $<$:CUDNN_FRONTEND_SKIP_JSON_LIB> -@@ -58,7 +67,31 @@ endif() - # * CMAKE_INSTALL_INCLUDEDIR - include(GNUInstallDirs) - -+# See https://cmake.org/cmake/help/latest/module/CMakePackageConfigHelpers.html#example-generating-package-files -+include(CMakePackageConfigHelpers) -+ -+# Install and export the header files -+install( -+ TARGETS cudnn_frontend -+ EXPORT cudnn_frontend_targets FILE_SET HEADERS -+) -+export( -+ EXPORT cudnn_frontend_targets -+ FILE "${CMAKE_CURRENT_BINARY_DIR}/cudnn_frontend/cudnn_frontend-targets.cmake" -+) -+install( -+ EXPORT cudnn_frontend_targets -+ FILE cudnn_frontend-targets.cmake -+ DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/cudnn_frontend" -+) -+ -+# Install the CMake configuration file for header discovery -+configure_package_config_file( -+ cudnn_frontend-config.cmake.in -+ "${CMAKE_CURRENT_BINARY_DIR}/cudnn_frontend-config.cmake" -+ INSTALL_DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/cudnn_frontend" -+) - install( -- DIRECTORY ${PROJECT_SOURCE_DIR}/include/ -- DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} -+ FILES "${CMAKE_CURRENT_BINARY_DIR}/cudnn_frontend-config.cmake" -+ DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/cudnn_frontend" - ) -diff --git a/cudnn_frontend-config.cmake.in b/cudnn_frontend-config.cmake.in -new file mode 100644 -index 0000000..8b2d843 ---- /dev/null -+++ b/cudnn_frontend-config.cmake.in -@@ -0,0 +1,3 @@ -+@PACKAGE_INIT@ -+ -+include(${CMAKE_CURRENT_LIST_DIR}/cudnn_frontend-targets.cmake) --- -2.47.0 - diff --git a/pkgs/development/cuda-modules/packages/cudnn-frontend/0003-cmake-install-samples-and-tests-when-built.patch b/pkgs/development/cuda-modules/packages/cudnn-frontend/0003-cmake-install-samples-and-tests-when-built.patch deleted file mode 100644 index a37e53bab069..000000000000 --- a/pkgs/development/cuda-modules/packages/cudnn-frontend/0003-cmake-install-samples-and-tests-when-built.patch +++ /dev/null @@ -1,85 +0,0 @@ -From 53d5aaaad09b479cd8c0e148c9428baa33204024 Mon Sep 17 00:00:00 2001 -From: Connor Baker -Date: Sat, 18 Jan 2025 22:10:41 +0000 -Subject: [PATCH 3/4] cmake: install samples and tests when built - ---- - CMakeLists.txt | 12 +++++++++++- - samples/cpp/CMakeLists.txt | 2 ++ - samples/legacy_samples/CMakeLists.txt | 2 ++ - test/cpp/CMakeLists.txt | 2 ++ - 4 files changed, 17 insertions(+), 1 deletion(-) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 9b1bfba..f6af111 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -70,11 +70,21 @@ include(GNUInstallDirs) - # See https://cmake.org/cmake/help/latest/module/CMakePackageConfigHelpers.html#example-generating-package-files - include(CMakePackageConfigHelpers) - --# Install and export the header files -+# Install the components - install( - TARGETS cudnn_frontend - EXPORT cudnn_frontend_targets FILE_SET HEADERS - ) -+ -+if (CUDNN_FRONTEND_BUILD_SAMPLES) -+ install(TARGETS legacy_samples samples RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) -+endif() -+ -+if (CUDNN_FRONTEND_BUILD_TESTS) -+ install(TARGETS tests RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) -+endif() -+ -+# Export the targets - export( - EXPORT cudnn_frontend_targets - FILE "${CMAKE_CURRENT_BINARY_DIR}/cudnn_frontend/cudnn_frontend-targets.cmake" -diff --git a/samples/cpp/CMakeLists.txt b/samples/cpp/CMakeLists.txt -index 9b8a5eb..01b09bb 100644 ---- a/samples/cpp/CMakeLists.txt -+++ b/samples/cpp/CMakeLists.txt -@@ -69,8 +69,10 @@ target_link_libraries( - _cudnn_frontend_pch - CUDNN::cudnn - -+ CUDA::cublasLt - CUDA::cudart - CUDA::cuda_driver # Needed as calls all CUDA calls will eventually move to driver -+ CUDA::nvrtc - ) - - # target cmake properties -diff --git a/samples/legacy_samples/CMakeLists.txt b/samples/legacy_samples/CMakeLists.txt -index 019f17c..3b56329 100644 ---- a/samples/legacy_samples/CMakeLists.txt -+++ b/samples/legacy_samples/CMakeLists.txt -@@ -44,7 +44,9 @@ target_link_libraries( - _cudnn_frontend_pch - CUDNN::cudnn - -+ CUDA::cublasLt - CUDA::cudart -+ CUDA::nvrtc - ) - - # target cmake properties -diff --git a/test/cpp/CMakeLists.txt b/test/cpp/CMakeLists.txt -index e244cd0..2750294 100644 ---- a/test/cpp/CMakeLists.txt -+++ b/test/cpp/CMakeLists.txt -@@ -55,7 +55,9 @@ target_link_libraries( - - CUDNN::cudnn - -+ CUDA::cublasLt - CUDA::cudart -+ CUDA::nvrtc - ) - - # cuDNN dlopen's its libraries --- -2.47.0 - diff --git a/pkgs/development/cuda-modules/packages/cudnn-frontend/0004-samples-fix-instances-of-maybe-uninitialized.patch b/pkgs/development/cuda-modules/packages/cudnn-frontend/0004-samples-fix-instances-of-maybe-uninitialized.patch deleted file mode 100644 index d9119de87285..000000000000 --- a/pkgs/development/cuda-modules/packages/cudnn-frontend/0004-samples-fix-instances-of-maybe-uninitialized.patch +++ /dev/null @@ -1,591 +0,0 @@ -From 4ce40a0c3de0e8a7065caf1cf59a90493e084682 Mon Sep 17 00:00:00 2001 -From: Connor Baker -Date: Sat, 18 Jan 2025 22:22:21 +0000 -Subject: [PATCH 4/4] samples: fix instances of maybe-uninitialized - ---- - samples/cpp/convolution/dgrads.cpp | 6 +++--- - samples/cpp/convolution/fp8_fprop.cpp | 2 +- - samples/cpp/convolution/fprop.cpp | 10 +++++----- - samples/cpp/convolution/int8_fprop.cpp | 2 +- - samples/cpp/convolution/wgrads.cpp | 4 ++-- - samples/cpp/matmul/fp8_matmul.cpp | 2 +- - samples/cpp/matmul/int8_matmul.cpp | 2 +- - samples/cpp/matmul/matmuls.cpp | 8 ++++---- - samples/cpp/matmul/mixed_matmul.cpp | 2 +- - samples/cpp/misc/pointwise.cpp | 6 +++--- - samples/cpp/misc/resample.cpp | 6 +++--- - samples/cpp/misc/serialization.cpp | 4 ++-- - samples/cpp/misc/slice.cpp | 2 +- - samples/cpp/misc/sm_carveout.cpp | 2 +- - samples/cpp/norm/batchnorm.cpp | 8 ++++---- - samples/cpp/norm/layernorm.cpp | 8 ++++---- - samples/cpp/norm/rmsnorm.cpp | 6 +++--- - samples/cpp/sdpa/fp16_bwd.cpp | 2 +- - samples/cpp/sdpa/fp16_bwd_with_flexible_graphs.cpp | 2 +- - samples/cpp/sdpa/fp16_cached.cpp | 2 +- - samples/cpp/sdpa/fp16_fwd.cpp | 2 +- - samples/cpp/sdpa/fp16_fwd_with_custom_dropout.cpp | 2 +- - samples/cpp/sdpa/fp16_fwd_with_flexible_graphs.cpp | 2 +- - samples/cpp/sdpa/fp16_fwd_with_paged_caches.cpp | 2 +- - samples/cpp/sdpa/fp8_bwd.cpp | 4 ++-- - samples/cpp/sdpa/fp8_fwd.cpp | 2 +- - 26 files changed, 50 insertions(+), 50 deletions(-) - -diff --git a/samples/cpp/convolution/dgrads.cpp b/samples/cpp/convolution/dgrads.cpp -index 589cb5f..f66abf4 100644 ---- a/samples/cpp/convolution/dgrads.cpp -+++ b/samples/cpp/convolution/dgrads.cpp -@@ -65,7 +65,7 @@ TEST_CASE("Convolution Dgrad", "[dgrad][graph]") { - Surface w_tensor(64 * 32 * 3 * 3, false); - Surface dx_tensor(4 * 32 * 16 * 16, false); - -- int64_t workspace_size; -+ int64_t workspace_size = 0; - REQUIRE(graph.get_workspace_size(workspace_size).is_good()); - - Surface workspace(workspace_size, false); -@@ -122,7 +122,7 @@ TEST_CASE("Dgrad Drelu Graph", "[dgrad][graph]") { - Surface x_tensor(4 * 32 * 16 * 16, false); - Surface dx_tensor(4 * 32 * 16 * 16, false); - -- int64_t workspace_size; -+ int64_t workspace_size = 0; - REQUIRE(graph.get_workspace_size(workspace_size).is_good()); - Surface workspace(workspace_size, false); - -@@ -234,7 +234,7 @@ TEST_CASE("Dgrad Drelu DBNweight Graph", "[dgrad][graph]") { - Surface eq_scale_x_tensor(1 * 32 * 1 * 1, false); - Surface eq_bias_tensor(1 * 32 * 1 * 1, false); - -- int64_t workspace_size; -+ int64_t workspace_size = 0; - REQUIRE(graph.get_workspace_size(workspace_size).is_good()); - Surface workspace(workspace_size, false); - -diff --git a/samples/cpp/convolution/fp8_fprop.cpp b/samples/cpp/convolution/fp8_fprop.cpp -index dfcb7e2..8246ce4 100644 ---- a/samples/cpp/convolution/fp8_fprop.cpp -+++ b/samples/cpp/convolution/fp8_fprop.cpp -@@ -116,7 +116,7 @@ TEST_CASE("Convolution fp8 precision", "[conv][graph]") { - Surface Y_scale_gpu(1, false); - Surface amax_gpu(1, false); - -- int64_t workspace_size; -+ int64_t workspace_size = 0; - REQUIRE(graph->get_workspace_size(workspace_size).is_good()); - Surface workspace(workspace_size, false); - -diff --git a/samples/cpp/convolution/fprop.cpp b/samples/cpp/convolution/fprop.cpp -index bc1aaf0..d61fa4e 100644 ---- a/samples/cpp/convolution/fprop.cpp -+++ b/samples/cpp/convolution/fprop.cpp -@@ -80,7 +80,7 @@ TEST_CASE("Convolution fprop", "[conv][graph][caching]") { - std::unordered_map variant_pack = { - {X->get_uid(), x_tensor.devPtr}, {W->get_uid(), w_tensor.devPtr}, {Y->get_uid(), y_tensor.devPtr}}; - -- int64_t workspace_size; -+ int64_t workspace_size = 0; - REQUIRE(graph->get_workspace_size(workspace_size).is_good()); - Surface workspace(workspace_size, false); - -@@ -303,7 +303,7 @@ TEST_CASE("CSBR Graph", "[conv][graph][caching]") { - Surface b_tensor(k, false); - Surface y_tensor(n * k * h * w, false); // Should be p, q. - -- int64_t workspace_size; -+ int64_t workspace_size = 0; - REQUIRE(graph->get_workspace_size(workspace_size).is_good()); - Surface workspace(workspace_size, false); - -@@ -550,7 +550,7 @@ TEST_CASE("SBRCS", "[conv][genstats][graph]") { - {SUM, sum_tensor.devPtr}, - {SQ_SUM, sq_sum_tensor.devPtr}}; - -- int64_t workspace_size; -+ int64_t workspace_size = 0; - REQUIRE(graph->get_workspace_size(workspace_size).is_good()); - Surface workspace(workspace_size, false); - -@@ -651,7 +651,7 @@ TEST_CASE("CBR Graph NCHW", "[conv][graph][caching]") { - Surface y_tensor(n * k * h * w, false); // Should be p, q. - Surface z_tensor(n * k * h * w, false); // Should be p, q. - -- int64_t workspace_size; -+ int64_t workspace_size = 0; - REQUIRE(graph->get_workspace_size(workspace_size).is_good()); - Surface workspace(workspace_size, false); - -@@ -734,7 +734,7 @@ TEST_CASE("Convolution fprop large", "[conv][graph][caching]") { - std::unordered_map variant_pack = { - {X->get_uid(), x_tensor.devPtr}, {W->get_uid(), w_tensor.devPtr}, {Y->get_uid(), y_tensor.devPtr}}; - -- int64_t workspace_size; -+ int64_t workspace_size = 0; - REQUIRE(graph->get_workspace_size(workspace_size).is_good()); - Surface workspace(workspace_size, false); - -diff --git a/samples/cpp/convolution/int8_fprop.cpp b/samples/cpp/convolution/int8_fprop.cpp -index 3d5ac2f..e9248f5 100644 ---- a/samples/cpp/convolution/int8_fprop.cpp -+++ b/samples/cpp/convolution/int8_fprop.cpp -@@ -94,7 +94,7 @@ TEST_CASE("Conv with Int8 datatypes", "[conv][graph][caching]") { - std::unordered_map, void*> variant_pack = { - {X, x_tensor.devPtr}, {W, w_tensor.devPtr}, {Y, y_tensor.devPtr}}; - -- int64_t workspace_size; -+ int64_t workspace_size = 0; - REQUIRE(graph->get_workspace_size(workspace_size).is_good()); - Surface workspace(workspace_size, false); - -diff --git a/samples/cpp/convolution/wgrads.cpp b/samples/cpp/convolution/wgrads.cpp -index 2c58b26..26887dc 100644 ---- a/samples/cpp/convolution/wgrads.cpp -+++ b/samples/cpp/convolution/wgrads.cpp -@@ -64,7 +64,7 @@ TEST_CASE("Convolution Wgrad", "[wgrad][graph][wgrad][Conv_wgrad]") { - Surface dy_tensor(4 * 64 * 16 * 16, false); - Surface dw_tensor(64 * 64 * 3 * 3, false); - -- int64_t workspace_size; -+ int64_t workspace_size = 0; - REQUIRE(graph.get_workspace_size(workspace_size).is_good()); - Surface workspace(workspace_size, false); - -@@ -137,7 +137,7 @@ TEST_CASE("scale-bias-relu-wgrad Graph", "[wgrad][graph][scale-bias-relu-wgrad][ - Surface dy_tensor(4 * 64 * 16 * 16, false); - Surface dw_tensor(64 * 64 * 3 * 3, false); - -- int64_t workspace_size; -+ int64_t workspace_size = 0; - REQUIRE(graph.get_workspace_size(workspace_size).is_good()); - Surface workspace(workspace_size, false); - -diff --git a/samples/cpp/matmul/fp8_matmul.cpp b/samples/cpp/matmul/fp8_matmul.cpp -index c6470cd..f32c627 100644 ---- a/samples/cpp/matmul/fp8_matmul.cpp -+++ b/samples/cpp/matmul/fp8_matmul.cpp -@@ -115,7 +115,7 @@ TEST_CASE("Matmul fp8 precision", "[matmul][graph]") { - REQUIRE(graph.build_plans(handle, fe::BuildPlanPolicy_t::HEURISTICS_CHOICE).is_good()); - - Surface C_gpu(b * m * n, false); -- int64_t workspace_size; -+ int64_t workspace_size = 0; - REQUIRE(graph.get_workspace_size(workspace_size).is_good()); - Surface workspace(workspace_size, false); - -diff --git a/samples/cpp/matmul/int8_matmul.cpp b/samples/cpp/matmul/int8_matmul.cpp -index cf4353a..cb3ce34 100644 ---- a/samples/cpp/matmul/int8_matmul.cpp -+++ b/samples/cpp/matmul/int8_matmul.cpp -@@ -104,7 +104,7 @@ TEST_CASE("Int8 Matmul", "[matmul][graph]") { - // note this is a bf16 tensor, but half is used just for memory allocation - Surface C_gpu(b * m * n, false); - Surface Bias_gpu(b * m * n, false); -- int64_t workspace_size; -+ int64_t workspace_size = 0; - REQUIRE(graph.get_workspace_size(workspace_size).is_good()); - Surface workspace(workspace_size, false); - -diff --git a/samples/cpp/matmul/matmuls.cpp b/samples/cpp/matmul/matmuls.cpp -index ed0f10b..5c95713 100644 ---- a/samples/cpp/matmul/matmuls.cpp -+++ b/samples/cpp/matmul/matmuls.cpp -@@ -250,7 +250,7 @@ TEST_CASE("Matmul", "[matmul][graph]") { - - // Run cudnn graph - Surface C_gpu(b * m * n, false); -- int64_t workspace_size; -+ int64_t workspace_size = 0; - REQUIRE(graph.get_workspace_size(workspace_size).is_good()); - Surface workspace(workspace_size, false); - -@@ -319,7 +319,7 @@ TEST_CASE("Abs + Matmul", "[matmul][graph]") { - - // Run cudnn graph - Surface C_gpu(b * m * n, false); -- int64_t workspace_size; -+ int64_t workspace_size = 0; - REQUIRE(graph.get_workspace_size(workspace_size).is_good()); - Surface workspace(workspace_size, false); - -@@ -539,7 +539,7 @@ TEST_CASE("Matmul SBR Graph", "[matmul][graph]") { - auto [graph, A, B, bias, scale, O] = lookup_cache_or_build_graph( - handle, x_tensor.devPtr, w_tensor.devPtr, s_tensor.devPtr, b_tensor.devPtr, y_tensor.devPtr); - -- int64_t workspace_size; -+ int64_t workspace_size = 0; - REQUIRE(graph->get_workspace_size(workspace_size).is_good()); - Surface workspace(workspace_size, false); - -@@ -606,7 +606,7 @@ TEST_CASE("Matmul with restricted shared memory", "[matmul][graph]") { - - // Run cudnn graph - Surface C_gpu(b * m * n, false); -- int64_t workspace_size; -+ int64_t workspace_size = 0; - REQUIRE(graph.get_workspace_size(workspace_size).is_good()); - Surface workspace(workspace_size, false); - -diff --git a/samples/cpp/matmul/mixed_matmul.cpp b/samples/cpp/matmul/mixed_matmul.cpp -index ab3e195..a2b05bd 100644 ---- a/samples/cpp/matmul/mixed_matmul.cpp -+++ b/samples/cpp/matmul/mixed_matmul.cpp -@@ -96,7 +96,7 @@ TEST_CASE("Mixed Precision Matmul", "[matmul][graph]") { - //// Run cudnn graph - // note this is a bf16 tensor, but half is used just for memory allocation - Surface C_gpu(b * m * n, false); -- int64_t workspace_size; -+ int64_t workspace_size = 0; - REQUIRE(graph.get_workspace_size(workspace_size).is_good()); - Surface workspace(workspace_size, false); - -diff --git a/samples/cpp/misc/pointwise.cpp b/samples/cpp/misc/pointwise.cpp -index 8f8d699..e8f4cb1 100644 ---- a/samples/cpp/misc/pointwise.cpp -+++ b/samples/cpp/misc/pointwise.cpp -@@ -51,7 +51,7 @@ TEST_CASE("Reduction", "[reduction]") { - Surface C_gpu(n * n * n * n, false); - std::unordered_map, void*> variant_pack = {{A, A_gpu.devPtr}, - {C, C_gpu.devPtr}}; -- int64_t workspace_size; -+ int64_t workspace_size = 0; - REQUIRE(graph.get_workspace_size(workspace_size).is_good()); - Surface workspace(workspace_size, false); - -@@ -88,7 +88,7 @@ TEST_CASE("Fused scalar", "[scalar][graph]") { - - std::unordered_map, void*> variant_pack = {{A, A_gpu.devPtr}, - {C, C_gpu.devPtr}}; -- int64_t workspace_size; -+ int64_t workspace_size = 0; - REQUIRE(graph.get_workspace_size(workspace_size).is_good()); - Surface workspace(workspace_size, false); - -@@ -148,7 +148,7 @@ TEST_CASE("Fused Amax Reduction and type conversion", "[reduction]") { - - std::unordered_map, void*> variant_pack = { - {A, A_gpu.devPtr}, {scale, scale_gpu.devPtr}, {amax, amax_gpu.devPtr}, {C, C_gpu.devPtr}}; -- int64_t workspace_size; -+ int64_t workspace_size = 0; - REQUIRE(graph.get_workspace_size(workspace_size).is_good()); - Surface workspace(workspace_size, false); - -diff --git a/samples/cpp/misc/resample.cpp b/samples/cpp/misc/resample.cpp -index 3f782e7..21998c3 100644 ---- a/samples/cpp/misc/resample.cpp -+++ b/samples/cpp/misc/resample.cpp -@@ -69,7 +69,7 @@ TEST_CASE("Resample Max Pooling NHWC Inference", "[resample][pooling][max][graph - Surface Y_gpu(N * H * W * C, false); - std::unordered_map, void*> variant_pack = {{X, X_gpu.devPtr}, - {Y, Y_gpu.devPtr}}; -- int64_t workspace_size; -+ int64_t workspace_size = 0; - REQUIRE(graph.get_workspace_size(workspace_size).is_good()); - Surface workspace(workspace_size, false); - -@@ -132,7 +132,7 @@ TEST_CASE("Resample Max Pooling NHWC Training", "[resample][pooling][max][graph] - Surface Index_gpu(N * H * W * C / 8, false); - std::unordered_map, void*> variant_pack = { - {X, X_gpu.devPtr}, {Y, Y_gpu.devPtr}, {Index, Index_gpu.devPtr}}; -- int64_t workspace_size; -+ int64_t workspace_size = 0; - REQUIRE(graph.get_workspace_size(workspace_size).is_good()); - Surface workspace(workspace_size, false); - -@@ -186,7 +186,7 @@ TEST_CASE("Resample Avg Pooling", "[resample][pooling][average][graph]") { - Surface Y_gpu(N * H * W * C, false); - std::unordered_map, void*> variant_pack = {{X, X_gpu.devPtr}, - {Y, Y_gpu.devPtr}}; -- int64_t workspace_size; -+ int64_t workspace_size = 0; - REQUIRE(graph.get_workspace_size(workspace_size).is_good()); - Surface workspace(workspace_size, false); - -diff --git a/samples/cpp/misc/serialization.cpp b/samples/cpp/misc/serialization.cpp -index a130406..278bad8 100644 ---- a/samples/cpp/misc/serialization.cpp -+++ b/samples/cpp/misc/serialization.cpp -@@ -178,7 +178,7 @@ TEST_CASE("CSBR Graph with serialization", "[conv][graph][serialization]") { - Surface b_device_memory(k, false); - Surface y_device_memory(n * k * h * w, false); // Should be p, q. - -- int64_t workspace_size; -+ int64_t workspace_size = 0; - REQUIRE(graph->get_workspace_size(workspace_size).is_good()); - Surface workspace(workspace_size, false); - -@@ -401,7 +401,7 @@ TEST_CASE("SDPA Graph with serialization", "[sdpa][graph][serialization]") { - Surface dropoutSeed(scaleSize, false, seed_value); - Surface dropoutOffset(scaleSize, false, (int32_t)1); - -- int64_t workspace_size; -+ int64_t workspace_size = 0; - REQUIRE(graph->get_workspace_size(workspace_size).is_good()); - Surface workspace(workspace_size, false); - -diff --git a/samples/cpp/misc/slice.cpp b/samples/cpp/misc/slice.cpp -index 087ba36..78962c6 100644 ---- a/samples/cpp/misc/slice.cpp -+++ b/samples/cpp/misc/slice.cpp -@@ -80,7 +80,7 @@ TEST_CASE("Slice gemm", "[slice][gemm][graph][fusion]") { - Surface C_gpu(B * M * N, false); - std::unordered_map variant_pack = { - {a_uid, A_gpu.devPtr}, {b_uid, B_gpu.devPtr}, {c_uid, C_gpu.devPtr}}; -- int64_t workspace_size; -+ int64_t workspace_size = 0; - REQUIRE(graph.get_workspace_size(workspace_size).is_good()); - Surface workspace(workspace_size, false); - -diff --git a/samples/cpp/misc/sm_carveout.cpp b/samples/cpp/misc/sm_carveout.cpp -index d6818c0..b0e0651 100644 ---- a/samples/cpp/misc/sm_carveout.cpp -+++ b/samples/cpp/misc/sm_carveout.cpp -@@ -121,7 +121,7 @@ TEST_CASE("SGBN with SM carveout", "[batchnorm][graph][sm_carveout]") { - Surface Peer_stats_0_tensor(2 * 4 * c, false, true); - Surface Peer_stats_1_tensor(2 * 4 * c, false); - -- int64_t workspace_size; -+ int64_t workspace_size = 0; - REQUIRE(graph.get_workspace_size(workspace_size).is_good()); - Surface workspace(workspace_size, false); - -diff --git a/samples/cpp/norm/batchnorm.cpp b/samples/cpp/norm/batchnorm.cpp -index 5949365..a91a9bd 100644 ---- a/samples/cpp/norm/batchnorm.cpp -+++ b/samples/cpp/norm/batchnorm.cpp -@@ -96,7 +96,7 @@ TEST_CASE("BN Finalize Graph", "[batchnorm][graph]") { - Surface eq_scale_tensor(32, false); - Surface eq_bias_tensor(32, false); - -- int64_t workspace_size; -+ int64_t workspace_size = 0; - REQUIRE(graph.get_workspace_size(workspace_size).is_good()); - Surface workspace(workspace_size, false); - -@@ -226,7 +226,7 @@ TEST_CASE("SGBN Add Relu Graph", "[batchnorm][graph]") { - Surface Peer_stats_0_tensor(2 * 4 * 32, false, true); - Surface Peer_stats_1_tensor(2 * 4 * 32, false); - -- int64_t workspace_size; -+ int64_t workspace_size = 0; - REQUIRE(graph.get_workspace_size(workspace_size).is_good()); - Surface workspace(workspace_size, false); - -@@ -346,7 +346,7 @@ TEST_CASE("DBN Add Relu Graph", "[BN][graph][backward]") { - Surface Peer_stats_0_tensor(2 * 4 * 32, false, true); - Surface Peer_stats_1_tensor(2 * 4 * 32, false); - -- int64_t workspace_size; -+ int64_t workspace_size = 0; - REQUIRE(graph.get_workspace_size(workspace_size).is_good()); - Surface workspace(workspace_size, false); - -@@ -454,7 +454,7 @@ TEST_CASE("BN_inference DRelu DBN Graph", "[Batchnorm][graph][backward]") { - Surface Dbias_tensor(32, false); - Surface DX_tensor(4 * 32 * 16 * 16, false); - -- int64_t workspace_size; -+ int64_t workspace_size = 0; - REQUIRE(graph.get_workspace_size(workspace_size).is_good()); - Surface workspace(workspace_size, false); - -diff --git a/samples/cpp/norm/layernorm.cpp b/samples/cpp/norm/layernorm.cpp -index bac996f..7f69f34 100644 ---- a/samples/cpp/norm/layernorm.cpp -+++ b/samples/cpp/norm/layernorm.cpp -@@ -133,7 +133,7 @@ layernorm_fwd_dynamic_shapes(bool train = true) { - Surface Mean_tensor(max_stats_volume, false); - Surface Var_tensor(max_stats_volume, false); - -- int64_t workspace_size; -+ int64_t workspace_size = 0; - REQUIRE(graph.get_workspace_size(workspace_size).is_good()); - Surface workspace(workspace_size, false); - -@@ -232,7 +232,7 @@ TEST_CASE("LayerNorm Training", "[layernorm][graph]") { - Surface Bias_tensor(hidden_size, false); - Surface Y_tensor(batch_size * seq_length * hidden_size, false); - -- int64_t workspace_size; -+ int64_t workspace_size = 0; - REQUIRE(graph.get_workspace_size(workspace_size).is_good()); - Surface workspace(workspace_size, false); - -@@ -310,7 +310,7 @@ TEST_CASE("LayerNorm Inference", "[layernorm][graph]") { - Surface Bias_tensor(hidden_size, false); - Surface Y_tensor(batch_size * seq_length * hidden_size, false); - -- int64_t workspace_size; -+ int64_t workspace_size = 0; - REQUIRE(graph.get_workspace_size(workspace_size).is_good()); - Surface workspace(workspace_size, false); - -@@ -392,7 +392,7 @@ TEST_CASE("LayerNorm Backward", "[layernorm][graph]") { - Surface Dbias_tensor(hidden_size, false); - Surface DX_tensor(batch_size * seq_length * hidden_size, false); - -- int64_t workspace_size; -+ int64_t workspace_size = 0; - REQUIRE(graph.get_workspace_size(workspace_size).is_good()); - Surface workspace(workspace_size, false); - -diff --git a/samples/cpp/norm/rmsnorm.cpp b/samples/cpp/norm/rmsnorm.cpp -index 878086c..d5c919b 100644 ---- a/samples/cpp/norm/rmsnorm.cpp -+++ b/samples/cpp/norm/rmsnorm.cpp -@@ -78,7 +78,7 @@ TEST_CASE("RmsNorm Training", "[rmsnorm][graph]") { - Surface Scale_tensor(hidden_size, false); - Surface Y_tensor(batch_size * seq_length * hidden_size, false); - -- int64_t workspace_size; -+ int64_t workspace_size = 0; - REQUIRE(graph.get_workspace_size(workspace_size).is_good()); - Surface workspace(workspace_size, false); - -@@ -150,7 +150,7 @@ TEST_CASE("RmsNorm Inference", "[rmsnorm][graph]") { - Surface Bias_tensor(hidden_size, false); - Surface Y_tensor(batch_size * seq_length * hidden_size, false); - -- int64_t workspace_size; -+ int64_t workspace_size = 0; - REQUIRE(graph.get_workspace_size(workspace_size).is_good()); - Surface workspace(workspace_size, false); - -@@ -227,7 +227,7 @@ TEST_CASE("RmsNorm Backward", "[rmsnorm][graph]") { - Surface Dbias_tensor(hidden_size, false); - Surface DX_tensor(batch_size * seq_length * hidden_size, false); - -- int64_t workspace_size; -+ int64_t workspace_size = 0; - REQUIRE(graph.get_workspace_size(workspace_size).is_good()); - Surface workspace(workspace_size, false); - -diff --git a/samples/cpp/sdpa/fp16_bwd.cpp b/samples/cpp/sdpa/fp16_bwd.cpp -index 749cbed..1145008 100644 ---- a/samples/cpp/sdpa/fp16_bwd.cpp -+++ b/samples/cpp/sdpa/fp16_bwd.cpp -@@ -275,7 +275,7 @@ TEST_CASE("Toy sdpa backward", "[graph][sdpa][flash][backward]") { - } - - // Allocate workspace -- int64_t workspace_size; -+ int64_t workspace_size = 0; - REQUIRE(graph->get_workspace_size(workspace_size).is_good()); - Surface workspace(workspace_size, false); - -diff --git a/samples/cpp/sdpa/fp16_bwd_with_flexible_graphs.cpp b/samples/cpp/sdpa/fp16_bwd_with_flexible_graphs.cpp -index 62d6bb3..50205c3 100644 ---- a/samples/cpp/sdpa/fp16_bwd_with_flexible_graphs.cpp -+++ b/samples/cpp/sdpa/fp16_bwd_with_flexible_graphs.cpp -@@ -195,7 +195,7 @@ TEST_CASE("Toy sdpa backward with flexible graph", "[graph][sdpa][flash][backwar - {DV_UID, dV_tensor.devPtr}}; - - // Allocate workspace -- int64_t workspace_size; -+ int64_t workspace_size = 0; - REQUIRE(graph->get_workspace_size(workspace_size).is_good()); - Surface workspace(workspace_size, false); - -diff --git a/samples/cpp/sdpa/fp16_cached.cpp b/samples/cpp/sdpa/fp16_cached.cpp -index d046271..4f0d3f8 100644 ---- a/samples/cpp/sdpa/fp16_cached.cpp -+++ b/samples/cpp/sdpa/fp16_cached.cpp -@@ -146,7 +146,7 @@ TEST_CASE("Cached sdpa", "[graph][sdpa][flash]") { - {O_UID, o_tensor.devPtr}, - {STATS_UID, stats_tensor.devPtr}}; - -- int64_t workspace_size; -+ int64_t workspace_size = 0; - REQUIRE(fwd_graph2->get_workspace_size(workspace_size).is_good()); - Surface fwd_workspace(workspace_size, false); - -diff --git a/samples/cpp/sdpa/fp16_fwd.cpp b/samples/cpp/sdpa/fp16_fwd.cpp -index b3acf5e..63697a1 100644 ---- a/samples/cpp/sdpa/fp16_fwd.cpp -+++ b/samples/cpp/sdpa/fp16_fwd.cpp -@@ -210,7 +210,7 @@ TEST_CASE("Toy sdpa forward", "[graph][sdpa][flash][forward]") { - variant_pack[STATS_UID] = statsTensor.devPtr; - } - -- int64_t workspace_size; -+ int64_t workspace_size = 0; - REQUIRE(graph->get_workspace_size(workspace_size).is_good()); - Surface workspace(workspace_size, false); - -diff --git a/samples/cpp/sdpa/fp16_fwd_with_custom_dropout.cpp b/samples/cpp/sdpa/fp16_fwd_with_custom_dropout.cpp -index 36cfba4..0cb9d2f 100644 ---- a/samples/cpp/sdpa/fp16_fwd_with_custom_dropout.cpp -+++ b/samples/cpp/sdpa/fp16_fwd_with_custom_dropout.cpp -@@ -178,7 +178,7 @@ TEST_CASE("Toy sdpa forward with dropout", "[graph][sdpa][flash][forward]") { - variant_pack[STATS_UID] = statsTensor.devPtr; - } - -- int64_t workspace_size; -+ int64_t workspace_size = 0; - REQUIRE(graph->get_workspace_size(workspace_size).is_good()); - Surface workspace(workspace_size, false); - -diff --git a/samples/cpp/sdpa/fp16_fwd_with_flexible_graphs.cpp b/samples/cpp/sdpa/fp16_fwd_with_flexible_graphs.cpp -index 810de63..7d81afe 100644 ---- a/samples/cpp/sdpa/fp16_fwd_with_flexible_graphs.cpp -+++ b/samples/cpp/sdpa/fp16_fwd_with_flexible_graphs.cpp -@@ -186,7 +186,7 @@ TEST_CASE("Toy sdpa forward with flexible graph", "[graph][sdpa][flash][forward] - variant_pack[STATS_UID] = statsTensor.devPtr; - } - -- int64_t workspace_size; -+ int64_t workspace_size = 0; - REQUIRE(graph->get_workspace_size(workspace_size).is_good()); - Surface workspace(workspace_size, false); - -diff --git a/samples/cpp/sdpa/fp16_fwd_with_paged_caches.cpp b/samples/cpp/sdpa/fp16_fwd_with_paged_caches.cpp -index 18dd937..d195f6b 100644 ---- a/samples/cpp/sdpa/fp16_fwd_with_paged_caches.cpp -+++ b/samples/cpp/sdpa/fp16_fwd_with_paged_caches.cpp -@@ -268,7 +268,7 @@ TEST_CASE("Toy sdpa forward with paged caches", "[graph][sdpa][flash][paged][for - variant_pack[STATS_UID] = statsTensor.devPtr; - } - -- int64_t workspace_size; -+ int64_t workspace_size = 0; - REQUIRE(graph->get_workspace_size(workspace_size).is_good()); - Surface workspace(workspace_size, false); - -diff --git a/samples/cpp/sdpa/fp8_bwd.cpp b/samples/cpp/sdpa/fp8_bwd.cpp -index 82e542b..296f2f9 100644 ---- a/samples/cpp/sdpa/fp8_bwd.cpp -+++ b/samples/cpp/sdpa/fp8_bwd.cpp -@@ -214,7 +214,7 @@ TEST_CASE("sdpa_fp8_bprop", "[graph][sdpa][fp8][backward]") { - {Amax_dV, AMax_dV_Tensor.devPtr}, - {Amax_dP, AMax_dP_Tensor.devPtr}}; - -- int64_t workspace_size; -+ int64_t workspace_size = 0; - REQUIRE(mha_graph.get_workspace_size(workspace_size).is_good()); - Surface workspace(workspace_size, false); - -@@ -385,7 +385,7 @@ TEST_CASE("sdpa_fp8_gqa_bprop", "[graph][sdpa][fp8][backward]") { - {amax_dV, amax_dV_gpu.devPtr}, - {amax_dP, amax_dP_gpu.devPtr}}; - -- int64_t workspace_size; -+ int64_t workspace_size = 0; - REQUIRE(mha_graph.get_workspace_size(workspace_size).is_good()); - Surface workspace(workspace_size, false); - -diff --git a/samples/cpp/sdpa/fp8_fwd.cpp b/samples/cpp/sdpa/fp8_fwd.cpp -index 6ede98d..23abc3f 100644 ---- a/samples/cpp/sdpa/fp8_fwd.cpp -+++ b/samples/cpp/sdpa/fp8_fwd.cpp -@@ -146,7 +146,7 @@ TEST_CASE("sdpa_fp8_fprop", "[graph][sdpa][fp8][forward]") { - variant_pack[Stats] = stats_tensor.devPtr; - } - -- int64_t workspace_size; -+ int64_t workspace_size = 0; - REQUIRE(mha_graph.get_workspace_size(workspace_size).is_good()); - Surface workspace(workspace_size, false); - --- -2.47.0 - diff --git a/pkgs/development/cuda-modules/packages/cudnn-frontend/CMakeLists.txt b/pkgs/development/cuda-modules/packages/cudnn-frontend/CMakeLists.txt deleted file mode 100644 index 409d70f76d87..000000000000 --- a/pkgs/development/cuda-modules/packages/cudnn-frontend/CMakeLists.txt +++ /dev/null @@ -1,133 +0,0 @@ -cmake_minimum_required(VERSION 3.23) - -project(cudnn_frontend VERSION 1.8.0) - -option(CUDNN_FRONTEND_SKIP_JSON_LIB "Defines whether FE should not include nlohmann/json.hpp." OFF) -option(CUDNN_FRONTEND_BUILD_SAMPLES "Defines if samples are built or not." ON) -option(CUDNN_FRONTEND_BUILD_TESTS "Defines if unittests are built or not." ON) -option(CUDNN_FRONTEND_BUILD_PYTHON_BINDINGS "Defines if python bindings are built or not." OFF) - -if(MSVC OR MSYS OR MINGW) - add_compile_options(/W4 /WX) -else() - add_compile_options(-Wall -Wextra -Wpedantic -Werror -Wno-error=attributes -Wno-attributes -Wno-error=unused-function -Wno-unused-function) -endif() - -add_library(cudnn_frontend INTERFACE) - -# Add header files to library -file(GLOB_RECURSE CUDNN_FRONTEND_INCLUDE_FILES "include/*") -target_sources( - cudnn_frontend - PUBLIC - FILE_SET - HEADERS - BASE_DIRS - "$" - FILES - "${CUDNN_FRONTEND_INCLUDE_FILES}" -) -unset(CUDNN_FRONTEND_INCLUDE_FILES) - -target_compile_definitions(cudnn_frontend INTERFACE $<$:CUDNN_FRONTEND_SKIP_JSON_LIB>) - -target_include_directories( - cudnn_frontend - INTERFACE - "$" - "$" -) - -# Find the cuda compiler -find_package(CUDAToolkit REQUIRED) - -target_include_directories(cudnn_frontend INTERFACE ${CUDAToolkit_INCLUDE_DIRS}) - -target_compile_features(cudnn_frontend INTERFACE cxx_std_17) - -# Make PCH for targets to link against -add_library(_cudnn_frontend_pch INTERFACE) -target_precompile_headers(_cudnn_frontend_pch INTERFACE ${PROJECT_SOURCE_DIR}/include/cudnn_frontend.h) - -if (CUDNN_FRONTEND_BUILD_SAMPLES) - add_subdirectory(samples) - target_link_libraries( - samples - PRIVATE - CUDA::cublasLt - CUDA::nvrtc - ) - target_link_libraries( - legacy_samples - PRIVATE - CUDA::cublasLt - CUDA::nvrtc - ) -endif() - -if (CUDNN_FRONTEND_BUILD_TESTS) - add_subdirectory(test) - target_link_libraries( - tests - CUDA::cublasLt - CUDA::nvrtc - ) -endif() - -if (CUDNN_FRONTEND_BUILD_PYTHON_BINDINGS) - add_subdirectory(python) -endif() - -# Introduce variables: -# * CMAKE_INSTALL_LIBDIR -# * CMAKE_INSTALL_BINDIR -# * CMAKE_INSTALL_INCLUDEDIR -include(GNUInstallDirs) - -# Install and export the header files -install( - TARGETS - cudnn_frontend - EXPORT - cudnn_frontend_targets - FILE_SET HEADERS -) - -if (CUDNN_FRONTEND_BUILD_SAMPLES) - install(TARGETS legacy_samples samples RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) -endif() - -if (CUDNN_FRONTEND_BUILD_TESTS) - install(TARGETS tests RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) -endif() - -# See https://cmake.org/cmake/help/latest/module/CMakePackageConfigHelpers.html#example-generating-package-files -include(CMakePackageConfigHelpers) - -export( - EXPORT - cudnn_frontend_targets - FILE - "${CMAKE_CURRENT_BINARY_DIR}/cudnn_frontend/cudnn_frontend-targets.cmake" -) -install( - EXPORT - cudnn_frontend_targets - FILE - cudnn_frontend-targets.cmake - DESTINATION - "${CMAKE_INSTALL_LIBDIR}/cmake/cudnn_frontend" -) - -configure_package_config_file( - cudnn_frontend-config.cmake.in - "${CMAKE_CURRENT_BINARY_DIR}/cudnn_frontend-config.cmake" - INSTALL_DESTINATION - "${CMAKE_INSTALL_LIBDIR}/cmake/cudnn_frontend" -) -install( - FILES - "${CMAKE_CURRENT_BINARY_DIR}/cudnn_frontend-config.cmake" - DESTINATION - "${CMAKE_INSTALL_LIBDIR}/cmake/cudnn_frontend" -) diff --git a/pkgs/development/cuda-modules/packages/cudnn-frontend/cudnn_frontend-config.cmake.in b/pkgs/development/cuda-modules/packages/cudnn-frontend/cudnn_frontend-config.cmake.in deleted file mode 100644 index 8b2d843096f9..000000000000 --- a/pkgs/development/cuda-modules/packages/cudnn-frontend/cudnn_frontend-config.cmake.in +++ /dev/null @@ -1,3 +0,0 @@ -@PACKAGE_INIT@ - -include(${CMAKE_CURRENT_LIST_DIR}/cudnn_frontend-targets.cmake) diff --git a/pkgs/development/cuda-modules/packages/cudnn-frontend/package.nix b/pkgs/development/cuda-modules/packages/cudnn-frontend/package.nix index 79a19e321b39..2f29c1beab9e 100644 --- a/pkgs/development/cuda-modules/packages/cudnn-frontend/package.nix +++ b/pkgs/development/cuda-modules/packages/cudnn-frontend/package.nix @@ -34,23 +34,15 @@ backendStdenv.mkDerivation (finalAttrs: { name = "${cudaNamePrefix}-${finalAttrs.pname}-${finalAttrs.version}"; pname = "cudnn-frontend"; - version = "1.9.0"; + version = "1.16.0"; src = fetchFromGitHub { owner = "NVIDIA"; repo = "cudnn-frontend"; tag = "v${finalAttrs.version}"; - hash = "sha256-Vc5jqB1XHcJEdKG0nxbWLewW2fDezRVwjUSzPDubSGE="; + hash = "sha256-+8aBl9dKd2Uz50XoOr91NRyJ4OGJtzfDNNNYGQJ9b94="; }; - patches = [ - # https://github.com/NVIDIA/cudnn-frontend/pull/125 - ./0001-cmake-float-out-common-python-bindings-option.patch - ./0002-cmake-add-config-so-headers-can-be-discovered-when-i.patch - ./0003-cmake-install-samples-and-tests-when-built.patch - ./0004-samples-fix-instances-of-maybe-uninitialized.patch - ]; - # nlohmann_json should be the only vendored dependency. postPatch = '' nixLog "patching source to use nlohmann_json from nixpkgs" @@ -106,6 +98,8 @@ backendStdenv.mkDerivation (finalAttrs: { nlohmann_json ]; + # TODO(@connorbaker): I'm using this incorrectly to build the executables which would allow us to test functionality, + # rather than to indicate the checkPhase will actually run. doCheck = true; postInstall = optionalString finalAttrs.doCheck '' @@ -128,8 +122,8 @@ backendStdenv.mkDerivation (finalAttrs: { description = "A c++ wrapper for the cudnn backend API"; homepage = "https://github.com/NVIDIA/cudnn-frontend"; license = licenses.mit; - # TODO(@connorbaker): How tightly coupled is this library to specific cuDNN versions? - # Should it be marked as broken if it doesn't match our expected version? + # Supports cuDNN 8.5.0 and newer: + # https://github.com/NVIDIA/cudnn-frontend/blob/11b51e9c5ad6cc71cd66cb873e34bc922d97d547/README.md?plain=1#L32 platforms = [ "aarch64-linux" "x86_64-linux"