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
|
{ stdenv
|
||||||
, lib
|
, lib
|
||||||
, requireFile
|
, requireFile
|
||||||
, cudatoolkit
|
, cudatoolkit
|
||||||
, fetchurl
|
|
||||||
}:
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
version = "7.0";
|
name = "cudatoolkit-${cudatoolkit.majorVersion}-cudnn-${version}";
|
||||||
cudatoolkit_version = "8.0";
|
|
||||||
|
|
||||||
name = "cudatoolkit-${cudatoolkit_version}-cudnn-${version}";
|
inherit version;
|
||||||
|
|
||||||
src = requireFile rec {
|
src = requireFile rec {
|
||||||
name = "cudnn-${cudatoolkit_version}-linux-x64-v7.tgz";
|
name = srcName;
|
||||||
|
inherit sha256;
|
||||||
message = ''
|
message = ''
|
||||||
This nix expression requires that ${name} is already part of the store.
|
This nix expression requires that ${name} is already part of the store.
|
||||||
Register yourself to NVIDIA Accelerated Computing Developer Program, retrieve the cuDNN library
|
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:
|
at https://developer.nvidia.com/cudnn, and run the following command in the download directory:
|
||||||
nix-prefetch-url file://${name}
|
nix-prefetch-url file://${name}
|
||||||
'';
|
'';
|
||||||
sha256 = "19yjdslrslwv5ic4vgpzb0fa0mqbgi6a66b7gc66vdc9n9589398";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
@ -38,6 +41,11 @@ stdenv.mkDerivation rec {
|
|||||||
cudatoolkit
|
cudatoolkit
|
||||||
];
|
];
|
||||||
|
|
||||||
|
passthru = {
|
||||||
|
inherit cudatoolkit;
|
||||||
|
majorVersion = lib.head (lib.splitString "." version);
|
||||||
|
};
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
description = "NVIDIA CUDA Deep Neural Network library (cuDNN)";
|
description = "NVIDIA CUDA Deep Neural Network library (cuDNN)";
|
||||||
homepage = "https://developer.nvidia.com/cudnn";
|
homepage = "https://developer.nvidia.com/cudnn";
|
@ -1582,21 +1582,12 @@ with pkgs;
|
|||||||
|
|
||||||
cudatoolkit = cudatoolkit9;
|
cudatoolkit = cudatoolkit9;
|
||||||
|
|
||||||
cudnn_cudatoolkit7 = callPackage ../development/libraries/science/math/cudnn/7.0-4.0 {
|
inherit (callPackages ../development/libraries/science/math/cudnn { })
|
||||||
cudatoolkit = cudatoolkit7;
|
cudnn_cudatoolkit7
|
||||||
};
|
cudnn_cudatoolkit75
|
||||||
|
cudnn6_cudatoolkit8
|
||||||
cudnn_cudatoolkit75 = callPackage ../development/libraries/science/math/cudnn/7.5-6.0 {
|
cudnn_cudatoolkit8
|
||||||
cudatoolkit = cudatoolkit75;
|
cudnn_cudatoolkit9;
|
||||||
};
|
|
||||||
|
|
||||||
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;
|
|
||||||
};
|
|
||||||
|
|
||||||
cudnn = cudnn_cudatoolkit9;
|
cudnn = cudnn_cudatoolkit9;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user