diff options
author | Orivej Desh <orivej@gmx.fr> | 2019-02-10 01:20:04 +0000 |
---|---|---|
committer | Orivej Desh (NixOS) <40807862+orivej-nixos@users.noreply.github.com> | 2019-02-10 01:20:04 +0000 |
commit | 59cd3ee8950e8589a6c46fa216578c3cfa70699a (patch) | |
tree | ab5ca6bb9997e65029c2e0de8edecd8e508d06ac /pkgs/development/libraries/science | |
parent | 2aa0ba2c9b38449b09cdb64d2e320a1dfa28b85c (diff) | |
download | nixpkgs-59cd3ee8950e8589a6c46fa216578c3cfa70699a.tar nixpkgs-59cd3ee8950e8589a6c46fa216578c3cfa70699a.tar.gz nixpkgs-59cd3ee8950e8589a6c46fa216578c3cfa70699a.tar.bz2 nixpkgs-59cd3ee8950e8589a6c46fa216578c3cfa70699a.tar.lz nixpkgs-59cd3ee8950e8589a6c46fa216578c3cfa70699a.tar.xz nixpkgs-59cd3ee8950e8589a6c46fa216578c3cfa70699a.tar.zst nixpkgs-59cd3ee8950e8589a6c46fa216578c3cfa70699a.zip |
nccl: 2.1.4 -> 2.4.2-1 (#55292)
Diffstat (limited to 'pkgs/development/libraries/science')
-rw-r--r-- | pkgs/development/libraries/science/math/nccl/default.nix | 54 | ||||
-rw-r--r-- | pkgs/development/libraries/science/math/nccl/generic.nix | 57 |
2 files changed, 37 insertions, 74 deletions
diff --git a/pkgs/development/libraries/science/math/nccl/default.nix b/pkgs/development/libraries/science/math/nccl/default.nix index d3c20258425..badd08291de 100644 --- a/pkgs/development/libraries/science/math/nccl/default.nix +++ b/pkgs/development/libraries/science/math/nccl/default.nix @@ -1,24 +1,44 @@ -{ callPackage, cudatoolkit_8, cudatoolkit_9 }: +{ stdenv, fetchFromGitHub, which, cudatoolkit }: -let - generic = args: callPackage (import ./generic.nix (removeAttrs args ["cudatoolkit"])) { - inherit (args) cudatoolkit; +stdenv.mkDerivation rec { + name = "nccl-${version}-cuda-${cudatoolkit.majorVersion}"; + version = "2.4.2-1"; + + src = fetchFromGitHub { + owner = "NVIDIA"; + repo = "nccl"; + rev = "v${version}"; + sha256 = "0aa4gv51nbmmdhx6vp40l249m4arp30sijrn6kwxdfi1k9kajiq5"; }; -in + outputs = [ "out" "dev" ]; -{ - nccl_cudatoolkit_8 = generic rec { - version = "2.1.4"; - cudatoolkit = cudatoolkit_8; - srcName = "nccl_${version}-1+cuda${cudatoolkit.majorVersion}_x86_64.txz"; - sha256 = "1lwwm8kdhna5m318yg304kl2gsz1jwhv4zv4gn8av2m57zh848zi"; - }; + nativeBuildInputs = [ which ]; + + buildInputs = [ cudatoolkit ]; + + preConfigure = '' + patchShebangs src/collectives/device/gen_rules.sh + ''; + + makeFlags = [ + "CUDA_HOME=${cudatoolkit}" + "PREFIX=$(out)" + ]; + + postFixup = '' + moveToOutput lib/libnccl_static.a $dev + ''; + + NIX_CFLAGS_COMPILE = [ "-Wno-unused-function" ]; + + enableParallelBuilding = true; - nccl_cudatoolkit_9 = generic rec { - version = "2.1.4"; - cudatoolkit = cudatoolkit_9; - srcName = "nccl_${version}-1+cuda${cudatoolkit.majorVersion}_x86_64.txz"; - sha256 = "0pajmqzkacpszs63jh2hw2qqc49kj75kcf7r0ky8hdh560q8xn0p"; + meta = with stdenv.lib; { + description = "Multi-GPU and multi-node collective communication primitives for NVIDIA GPUs"; + homepage = https://developer.nvidia.com/nccl; + license = licenses.bsd3; + platforms = [ "x86_64-linux" ]; + maintainers = with maintainers; [ mdaiter orivej ]; }; } diff --git a/pkgs/development/libraries/science/math/nccl/generic.nix b/pkgs/development/libraries/science/math/nccl/generic.nix deleted file mode 100644 index 609a7df51e5..00000000000 --- a/pkgs/development/libraries/science/math/nccl/generic.nix +++ /dev/null @@ -1,57 +0,0 @@ -{ version -, srcName -, sha256 -}: - -{ stdenv -, lib -, requireFile -, cudatoolkit -}: - -stdenv.mkDerivation rec { - name = "cudatoolkit-${cudatoolkit.majorVersion}-nccl-${version}"; - - inherit version; - - src = requireFile rec { - 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 NCCL library - at https://developer.nvidia.com/nccl, and run the following command in the download directory: - nix-prefetch-url file://\$PWD/${name} - ''; - }; - - unpackCmd = "tar xJf $src"; - - installPhase = '' - function fixRunPath { - p=$(patchelf --print-rpath $1) - patchelf --set-rpath "$p:${lib.makeLibraryPath [ stdenv.cc.cc ]}" $1 - } - fixRunPath lib/libnccl.so - - mkdir -p $out - cp -a include $out/include - cp -a lib $out/lib - ''; - - propagatedBuildInputs = [ - cudatoolkit - ]; - - passthru = { - inherit cudatoolkit; - }; - - meta = with stdenv.lib; { - description = "Multi-GPU and multi-node collective communication primitives that are performance optimized for NVIDIA GPUs"; - homepage = https://developer.nvidia.com/nccl; - license = licenses.unfree; - platforms = [ "x86_64-linux" ]; - maintainers = with maintainers; [ mdaiter ]; - }; -} |