cudnn: refactor to use shared derivation
Also return 8.0-6.0 version for TensorFlow.
This commit is contained in:
parent
ce9059a120
commit
6309e5fa01
@ -1,34 +0,0 @@
|
||||
{ stdenv, requireFile, cudatoolkit }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "4.0";
|
||||
|
||||
name = "cudnn-${version}";
|
||||
|
||||
src = requireFile rec {
|
||||
name = "cudnn-7.0-linux-x64-v${version}-prod.tgz";
|
||||
message = ''
|
||||
This nix expression requires that ${name} is
|
||||
already part of the store. Register yourself to NVIDIA Accelerated Computing Developer Program
|
||||
and download cuDNN library at https://developer.nvidia.com/cudnn, and store it to the nix store with nix-store --add-fixed sha256 <FILE>.
|
||||
'';
|
||||
sha256 = "0zgr6qdbc29qw6sikhrh6diwwz7150rqc8a49f2qf37j2rvyyr2f";
|
||||
|
||||
};
|
||||
|
||||
phases = "unpackPhase installPhase fixupPhase";
|
||||
|
||||
propagatedBuildInputs = [ cudatoolkit ];
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out
|
||||
cp -a include $out/include
|
||||
cp -a lib64 $out/lib64
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "NVIDIA CUDA Deep Neural Network library (cuDNN)";
|
||||
homepage = https://developer.nvidia.com/cudnn;
|
||||
license = stdenv.lib.licenses.unfree;
|
||||
};
|
||||
}
|
@ -1,47 +0,0 @@
|
||||
{ stdenv
|
||||
, requireFile
|
||||
, cudatoolkit
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "6.0";
|
||||
cudatoolkit_version = "7.5";
|
||||
|
||||
name = "cudatoolkit-${cudatoolkit_version}-cudnn-${version}";
|
||||
|
||||
src = requireFile rec {
|
||||
name = "cudnn-${cudatoolkit_version}-linux-x64-v${version}.tgz";
|
||||
message = ''
|
||||
This nix expression requires that ${name} is already part of the store.
|
||||
Register yourself to NVIDIA Accelerated Computing Developer Program, retrieve the cuDNN library
|
||||
at https://developer.nvidia.com/cudnn, and run the following command in the download directory:
|
||||
nix-prefetch-url file://${name}
|
||||
'';
|
||||
sha256 = "0b68hv8pqcvh7z8xlgm4cxr9rfbjs0yvg1xj2n5ap4az1h3lp3an";
|
||||
};
|
||||
|
||||
phases = "unpackPhase installPhase fixupPhase";
|
||||
|
||||
installPhase = ''
|
||||
function fixRunPath {
|
||||
p=$(patchelf --print-rpath $1)
|
||||
patchelf --set-rpath "$p:${stdenv.lib.makeLibraryPath [ stdenv.cc.cc ]}" $1
|
||||
}
|
||||
fixRunPath lib64/libcudnn.so
|
||||
|
||||
mkdir -p $out
|
||||
cp -a include $out/include
|
||||
cp -a lib64 $out/lib
|
||||
'';
|
||||
|
||||
propagatedBuildInputs = [
|
||||
cudatoolkit
|
||||
];
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "NVIDIA CUDA Deep Neural Network library (cuDNN)";
|
||||
homepage = "https://developer.nvidia.com/cudnn";
|
||||
license = licenses.unfree;
|
||||
platforms = [ "x86_64-linux" ];
|
||||
};
|
||||
}
|
@ -1,48 +0,0 @@
|
||||
{ stdenv
|
||||
, lib
|
||||
, requireFile
|
||||
, cudatoolkit
|
||||
, fetchurl
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "7.0";
|
||||
cudatoolkit_version = "9.0";
|
||||
|
||||
name = "cudatoolkit-${cudatoolkit_version}-cudnn-${version}";
|
||||
|
||||
src = requireFile rec {
|
||||
name = "cudnn-${cudatoolkit_version}-linux-x64-v7.tgz";
|
||||
message = ''
|
||||
This nix expression requires that ${name} is already part of the store.
|
||||
Register yourself to NVIDIA Accelerated Computing Developer Program, retrieve the cuDNN library
|
||||
at https://developer.nvidia.com/cudnn, and run the following command in the download directory:
|
||||
nix-prefetch-url file://${name}
|
||||
'';
|
||||
sha256 = "1ld5x819vya6p2ppmr7i3lz9ac2y81kssgbzgd0lsign7r2qjapc";
|
||||
};
|
||||
|
||||
installPhase = ''
|
||||
function fixRunPath {
|
||||
p=$(patchelf --print-rpath $1)
|
||||
patchelf --set-rpath "$p:${lib.makeLibraryPath [ stdenv.cc.cc ]}" $1
|
||||
}
|
||||
fixRunPath lib64/libcudnn.so
|
||||
|
||||
mkdir -p $out
|
||||
cp -a include $out/include
|
||||
cp -a lib64 $out/lib64
|
||||
'';
|
||||
|
||||
propagatedBuildInputs = [
|
||||
cudatoolkit
|
||||
];
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "NVIDIA CUDA Deep Neural Network library (cuDNN)";
|
||||
homepage = "https://developer.nvidia.com/cudnn";
|
||||
license = licenses.unfree;
|
||||
platforms = [ "x86_64-linux" ];
|
||||
maintainers = with maintainers; [ mdaiter ];
|
||||
};
|
||||
}
|
45
pkgs/development/libraries/science/math/cudnn/default.nix
Normal file
45
pkgs/development/libraries/science/math/cudnn/default.nix
Normal file
@ -0,0 +1,45 @@
|
||||
{ callPackage, cudatoolkit7, cudatoolkit75, cudatoolkit8, cudatoolkit9 }:
|
||||
|
||||
let
|
||||
generic = args: callPackage (import ./generic.nix (removeAttrs args ["cudatoolkit"])) {
|
||||
inherit (args) cudatoolkit;
|
||||
};
|
||||
|
||||
in
|
||||
|
||||
{
|
||||
cudnn_cudatoolkit7 = generic rec {
|
||||
version = "4.0";
|
||||
cudatoolkit = cudatoolkit7;
|
||||
srcName = "cudnn-${cudatoolkit.majorVersion}-linux-x64-v${version}-prod.tgz";
|
||||
sha256 = "0zgr6qdbc29qw6sikhrh6diwwz7150rqc8a49f2qf37j2rvyyr2f";
|
||||
};
|
||||
|
||||
cudnn_cudatoolkit75 = generic rec {
|
||||
version = "6.0";
|
||||
cudatoolkit = cudatoolkit75;
|
||||
srcName = "cudnn-${cudatoolkit.majorVersion}-linux-x64-v${version}.tgz";
|
||||
sha256 = "0b68hv8pqcvh7z8xlgm4cxr9rfbjs0yvg1xj2n5ap4az1h3lp3an";
|
||||
};
|
||||
|
||||
cudnn6_cudatoolkit8 = generic rec {
|
||||
version = "6.0";
|
||||
cudatoolkit = cudatoolkit8;
|
||||
srcName = "cudnn-${cudatoolkit.majorVersion}-linux-x64-v${version}.tgz";
|
||||
sha256 = "173zpgrk55ri8if7s5yngsc89ajd6hz4pss4cdxlv6lcyh5122cv";
|
||||
};
|
||||
|
||||
cudnn_cudatoolkit8 = generic rec {
|
||||
version = "7.0";
|
||||
cudatoolkit = cudatoolkit8;
|
||||
srcName = "cudnn-${cudatoolkit.majorVersion}-linux-x64-v7.tgz";
|
||||
sha256 = "19yjdslrslwv5ic4vgpzb0fa0mqbgi6a66b7gc66vdc9n9589398";
|
||||
};
|
||||
|
||||
cudnn_cudatoolkit9 = generic rec {
|
||||
version = "7.0";
|
||||
cudatoolkit = cudatoolkit9;
|
||||
srcName = "cudnn-${cudatoolkit.majorVersion}-linux-x64-v7.tgz";
|
||||
sha256 = "1ld5x819vya6p2ppmr7i3lz9ac2y81kssgbzgd0lsign7r2qjapc";
|
||||
};
|
||||
}
|
@ -1,25 +1,28 @@
|
||||
{ version
|
||||
, srcName
|
||||
, sha256
|
||||
}:
|
||||
|
||||
{ stdenv
|
||||
, lib
|
||||
, requireFile
|
||||
, cudatoolkit
|
||||
, fetchurl
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "7.0";
|
||||
cudatoolkit_version = "8.0";
|
||||
name = "cudatoolkit-${cudatoolkit.majorVersion}-cudnn-${version}";
|
||||
|
||||
name = "cudatoolkit-${cudatoolkit_version}-cudnn-${version}";
|
||||
inherit version;
|
||||
|
||||
src = requireFile rec {
|
||||
name = "cudnn-${cudatoolkit_version}-linux-x64-v7.tgz";
|
||||
name = srcName;
|
||||
inherit sha256;
|
||||
message = ''
|
||||
This nix expression requires that ${name} is already part of the store.
|
||||
Register yourself to NVIDIA Accelerated Computing Developer Program, retrieve the cuDNN library
|
||||
at https://developer.nvidia.com/cudnn, and run the following command in the download directory:
|
||||
nix-prefetch-url file://${name}
|
||||
'';
|
||||
sha256 = "19yjdslrslwv5ic4vgpzb0fa0mqbgi6a66b7gc66vdc9n9589398";
|
||||
};
|
||||
|
||||
installPhase = ''
|
||||
@ -38,6 +41,11 @@ stdenv.mkDerivation rec {
|
||||
cudatoolkit
|
||||
];
|
||||
|
||||
passthru = {
|
||||
inherit cudatoolkit;
|
||||
majorVersion = lib.head (lib.splitString "." version);
|
||||
};
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "NVIDIA CUDA Deep Neural Network library (cuDNN)";
|
||||
homepage = "https://developer.nvidia.com/cudnn";
|
@ -1582,21 +1582,12 @@ with pkgs;
|
||||
|
||||
cudatoolkit = cudatoolkit9;
|
||||
|
||||
cudnn_cudatoolkit7 = callPackage ../development/libraries/science/math/cudnn/7.0-4.0 {
|
||||
cudatoolkit = cudatoolkit7;
|
||||
};
|
||||
|
||||
cudnn_cudatoolkit75 = callPackage ../development/libraries/science/math/cudnn/7.5-6.0 {
|
||||
cudatoolkit = cudatoolkit75;
|
||||
};
|
||||
|
||||
cudnn_cudatoolkit8 = callPackage ../development/libraries/science/math/cudnn/8.0-7.0 {
|
||||
cudatoolkit = cudatoolkit8;
|
||||
};
|
||||
|
||||
cudnn_cudatoolkit9 = callPackage ../development/libraries/science/math/cudnn/9.0-7.0 {
|
||||
cudatoolkit = cudatoolkit9;
|
||||
};
|
||||
inherit (callPackages ../development/libraries/science/math/cudnn { })
|
||||
cudnn_cudatoolkit7
|
||||
cudnn_cudatoolkit75
|
||||
cudnn6_cudatoolkit8
|
||||
cudnn_cudatoolkit8
|
||||
cudnn_cudatoolkit9;
|
||||
|
||||
cudnn = cudnn_cudatoolkit9;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user