From 4a2b827c716ffcd67f6c12d14024ae63a5311c34 Mon Sep 17 00:00:00 2001 From: Jeremy Schlatter Date: Sun, 23 Jun 2024 15:39:58 -0700 Subject: treewide: use cmakeCudaArchitecturesString --- .../science/molecular-dynamics/gromacs/default.nix | 6 +++--- pkgs/by-name/ll/llama-cpp/package.nix | 7 +------ pkgs/by-name/ma/maa-assistant-arknights/fastdeploy-ppocr.nix | 6 +----- pkgs/development/libraries/onnxruntime/default.nix | 5 +---- pkgs/development/libraries/science/math/faiss/default.nix | 5 ++--- pkgs/development/libraries/science/math/magma/generic.nix | 12 +++++------- .../libraries/science/math/tiny-cuda-nn/default.nix | 6 ++---- 7 files changed, 15 insertions(+), 32 deletions(-) (limited to 'pkgs') diff --git a/pkgs/applications/science/molecular-dynamics/gromacs/default.nix b/pkgs/applications/science/molecular-dynamics/gromacs/default.nix index bf2fd1dbf3504..6531002ceb31b 100644 --- a/pkgs/applications/science/molecular-dynamics/gromacs/default.nix +++ b/pkgs/applications/science/molecular-dynamics/gromacs/default.nix @@ -24,7 +24,7 @@ assert enableCuda -> singlePrec; let - inherit (cudaPackages.cudaFlags) cudaCapabilities dropDot; + inherit (cudaPackages.flags) cmakeCudaArchitecturesString; # Select reasonable defaults for all major platforms # The possible values are defined in CMakeLists.txt: @@ -111,10 +111,10 @@ in stdenv.mkDerivation rec { ] ) ++ lib.optionals enableCuda [ "-DGMX_GPU=CUDA" - (lib.cmakeFeature "CMAKE_CUDA_ARCHITECTURES" (builtins.concatStringsSep ";" (map dropDot cudaCapabilities))) + (lib.cmakeFeature "CMAKE_CUDA_ARCHITECTURES" cmakeCudaArchitecturesString) # Gromacs seems to ignore and override the normal variables, so we add this ad hoc: - (lib.cmakeFeature "GMX_CUDA_TARGET_COMPUTE" (builtins.concatStringsSep ";" (map dropDot cudaCapabilities))) + (lib.cmakeFeature "GMX_CUDA_TARGET_COMPUTE" cmakeCudaArchitecturesString) ]; postInstall = '' diff --git a/pkgs/by-name/ll/llama-cpp/package.nix b/pkgs/by-name/ll/llama-cpp/package.nix index 2e5514dd15f29..254f8c2a51f6f 100644 --- a/pkgs/by-name/ll/llama-cpp/package.nix +++ b/pkgs/by-name/ll/llama-cpp/package.nix @@ -122,12 +122,7 @@ effectiveStdenv.mkDerivation (finalAttrs: { (cmakeBool "LLAMA_VULKAN" vulkanSupport) ] ++ optionals cudaSupport [ - ( - with cudaPackages.flags; - cmakeFeature "CMAKE_CUDA_ARCHITECTURES" ( - builtins.concatStringsSep ";" (map dropDot cudaCapabilities) - ) - ) + (cmakeFeature "CMAKE_CUDA_ARCHITECTURES" cudaPackages.flags.cmakeCudaArchitecturesString) ] ++ optionals rocmSupport [ (cmakeFeature "CMAKE_C_COMPILER" "hipcc") diff --git a/pkgs/by-name/ma/maa-assistant-arknights/fastdeploy-ppocr.nix b/pkgs/by-name/ma/maa-assistant-arknights/fastdeploy-ppocr.nix index 53ac9fa3bfc11..77b7e00b06186 100644 --- a/pkgs/by-name/ma/maa-assistant-arknights/fastdeploy-ppocr.nix +++ b/pkgs/by-name/ma/maa-assistant-arknights/fastdeploy-ppocr.nix @@ -14,10 +14,6 @@ let effectiveStdenv = if cudaSupport then cudaPackages.backendStdenv else inputs.stdenv; - cudaCapabilities = cudaPackages.cudaFlags.cudaCapabilities; - # E.g. [ "80" "86" "90" ] - cudaArchitectures = (builtins.map cudaPackages.cudaFlags.dropDot cudaCapabilities); - cudaArchitecturesString = lib.strings.concatStringsSep ";" cudaArchitectures; in effectiveStdenv.mkDerivation (finalAttrs: { pname = "fastdeploy-ppocr"; @@ -65,7 +61,7 @@ effectiveStdenv.mkDerivation (finalAttrs: { (lib.cmakeBool "BUILD_SHARED_LIBS" true) ] ++ lib.optionals cudaSupport [ - (lib.cmakeFeature "CMAKE_CUDA_ARCHITECTURES" cudaArchitecturesString) + (lib.cmakeFeature "CMAKE_CUDA_ARCHITECTURES" cudaPackages.flags.cmakeCudaArchitecturesString) ]; postInstall = '' diff --git a/pkgs/development/libraries/onnxruntime/default.nix b/pkgs/development/libraries/onnxruntime/default.nix index b3117364984e9..169376b2d2924 100644 --- a/pkgs/development/libraries/onnxruntime/default.nix +++ b/pkgs/development/libraries/onnxruntime/default.nix @@ -29,10 +29,7 @@ let stdenv = throw "Use effectiveStdenv instead"; effectiveStdenv = if cudaSupport then cudaPackages.backendStdenv else inputs.stdenv; - cudaCapabilities = cudaPackages.cudaFlags.cudaCapabilities; - # E.g. [ "80" "86" "90" ] - cudaArchitectures = (builtins.map cudaPackages.cudaFlags.dropDot cudaCapabilities); - cudaArchitecturesString = lib.strings.concatStringsSep ";" cudaArchitectures; + cudaArchitecturesString = cudaPackages.flags.cmakeCudaArchitecturesString; howard-hinnant-date = fetchFromGitHub { owner = "HowardHinnant"; diff --git a/pkgs/development/libraries/science/math/faiss/default.nix b/pkgs/development/libraries/science/math/faiss/default.nix index 59494fadfd900..5af73735fdf60 100644 --- a/pkgs/development/libraries/science/math/faiss/default.nix +++ b/pkgs/development/libraries/science/math/faiss/default.nix @@ -29,8 +29,7 @@ let pname = "faiss"; version = "1.7.4"; - inherit (cudaPackages) cudaFlags backendStdenv; - inherit (cudaFlags) cudaCapabilities dropDot; + inherit (cudaPackages) flags backendStdenv; stdenv = if cudaSupport then backendStdenv else inputs.stdenv; @@ -93,7 +92,7 @@ stdenv.mkDerivation { "-DFAISS_ENABLE_PYTHON=${if pythonSupport then "ON" else "OFF"}" "-DFAISS_OPT_LEVEL=${optLevel}" ] ++ lib.optionals cudaSupport [ - "-DCMAKE_CUDA_ARCHITECTURES=${builtins.concatStringsSep ";" (map dropDot cudaCapabilities)}" + "-DCMAKE_CUDA_ARCHITECTURES=${flags.cmakeCudaArchitecturesString}" "-DCUDAToolkit_INCLUDE_DIR=${cudaJoined}/include" ]; diff --git a/pkgs/development/libraries/science/math/magma/generic.nix b/pkgs/development/libraries/science/math/magma/generic.nix index 757a1b77dafc5..a675142f361d4 100644 --- a/pkgs/development/libraries/science/math/magma/generic.nix +++ b/pkgs/development/libraries/science/math/magma/generic.nix @@ -41,8 +41,7 @@ let then cudaPackages_11 else cudaPackages; - inherit (effectiveCudaPackages) cudaAtLeast cudaFlags cudaOlder; - inherit (cudaFlags) cudaCapabilities; + inherit (effectiveCudaPackages) cudaAtLeast flags cudaOlder; # move to newer ROCm version once supported rocmPackages = rocmPackages_5; @@ -52,7 +51,7 @@ let # lists.subtractLists a b = b - a # For ROCm - # NOTE: The hip.gpuTargets are prefixed with "gfx" instead of "sm" like cudaFlags.realArches. + # NOTE: The hip.gpuTargets are prefixed with "gfx" instead of "sm" like flags.realArches. # For some reason, Magma's CMakeLists.txt file does not handle the "gfx" prefix, so we must # remove it. rocmArches = lists.map (x: strings.removePrefix "gfx" x) rocmPackages.clr.gpuTargets; @@ -83,12 +82,11 @@ let throw "No GPU targets specified" ); - # E.g. [ "80" "86" "90" ] - cudaArchitectures = (builtins.map cudaFlags.dropDot cudaCapabilities); - - cudaArchitecturesString = strings.concatStringsSep ";" cudaArchitectures; + cudaArchitecturesString = flags.cmakeCudaArchitecturesString; minArch = let + # E.g. [ "80" "86" "90" ] + cudaArchitectures = (builtins.map flags.dropDot flags.cudaCapabilities); minArch' = builtins.head (builtins.sort strings.versionOlder cudaArchitectures); in # "75" -> "750" Cf. https://bitbucket.org/icl/magma/src/f4ec79e2c13a2347eff8a77a3be6f83bc2daec20/CMakeLists.txt#lines-273 diff --git a/pkgs/development/libraries/science/math/tiny-cuda-nn/default.nix b/pkgs/development/libraries/science/math/tiny-cuda-nn/default.nix index 2036c4c86253b..e9367d416e325 100644 --- a/pkgs/development/libraries/science/math/tiny-cuda-nn/default.nix +++ b/pkgs/development/libraries/science/math/tiny-cuda-nn/default.nix @@ -11,7 +11,7 @@ which, }: let inherit (lib) lists strings; - inherit (cudaPackages) backendStdenv cudaFlags; + inherit (cudaPackages) backendStdenv flags; cuda-common-redist = with cudaPackages; [ cuda_cudart.dev # cuda_runtime.h @@ -89,9 +89,7 @@ in doCheck = false; preConfigure = '' - export TCNN_CUDA_ARCHITECTURES="${ - strings.concatStringsSep ";" (lists.map cudaFlags.dropDot cudaFlags.cudaCapabilities) - }" + export TCNN_CUDA_ARCHITECTURES="${flags.cmakeCudaArchitecturesString}" export CUDA_HOME="${cuda-native-redist}" export LIBRARY_PATH="${cuda-native-redist}/lib/stubs:$LIBRARY_PATH" export CC="${backendStdenv.cc}/bin/cc" -- cgit 1.4.1