about summary refs log tree commit diff
diff options
context:
space:
mode:
authorConnor Baker <connor.baker@tweag.io>2023-12-04 14:28:00 -0500
committerGitHub <noreply@github.com>2023-12-04 14:28:00 -0500
commit2c7f3c0fb7c08a0814627611d9d7d45ab6d75335 (patch)
tree68d9918a9beef774661bf0c06dd2563c8da5a127
parent5f5e76c08153f251bd7cd5dba20fe8254925597d (diff)
parentd23df73a07a8cb8a3b8fb0630a8a861a2afc74b6 (diff)
Merge pull request #272084 from ConnorBaker/fix/ctranslate2-optional-cudnn-dep
ctranslate2: enable cuDNN only if it is available
-rw-r--r--pkgs/development/libraries/ctranslate2/default.nix5
-rw-r--r--pkgs/top-level/all-packages.nix3
2 files changed, 6 insertions, 2 deletions
diff --git a/pkgs/development/libraries/ctranslate2/default.nix b/pkgs/development/libraries/ctranslate2/default.nix
index 83eb9bf3a8953..58906b608231d 100644
--- a/pkgs/development/libraries/ctranslate2/default.nix
+++ b/pkgs/development/libraries/ctranslate2/default.nix
@@ -60,7 +60,7 @@ stdenv.mkDerivation rec {
     cudaPackages.cuda_cudart
     cudaPackages.libcublas
     cudaPackages.libcurand
-  ] ++ lib.optionals withCuDNN [
+  ] ++ lib.optionals (withCUDA && withCuDNN) [
     cudaPackages.cudnn
   ] ++ lib.optionals withOneDNN [
     oneDNN
@@ -87,5 +87,8 @@ stdenv.mkDerivation rec {
     changelog = "https://github.com/OpenNMT/CTranslate2/blob/${src.rev}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ hexa misuzu ];
+    broken =
+      (lib.versionOlder cudaPackages.cudaVersion "11.4")
+      || !(withCuDNN -> withCUDA);
   };
 }
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 8075dae6f091c..6679e1dee8e4c 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -20935,7 +20935,8 @@ with pkgs;
   ctranslate2 = callPackage ../development/libraries/ctranslate2 rec {
     stdenv = if withCUDA then gcc11Stdenv else pkgs.stdenv;
     withCUDA = pkgs.config.cudaSupport;
-    withCuDNN = pkgs.config.cudaSupport;
+    withCuDNN = withCUDA && (cudaPackages ? cudnn);
+    cudaPackages = pkgs.cudaPackages;
   };
 
   ubus = callPackage ../development/libraries/ubus { };