diff options
author | Alyssa Ross <hi@alyssa.is> | 2019-02-10 20:13:39 +0000 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2019-02-10 20:13:39 +0000 |
commit | 393251bf8fa98292cecd05785a8c815fa762b3ea (patch) | |
tree | ab59dcf3808e5a222c2501b51b636d876844e5d0 /nixpkgs/pkgs/development/libraries/science | |
parent | 0e118743ce5edf9174a320050a7c0eea2199aaaa (diff) | |
parent | 929cc78363e6878e044556bd291382eab37bcbed (diff) | |
download | nixlib-393251bf8fa98292cecd05785a8c815fa762b3ea.tar nixlib-393251bf8fa98292cecd05785a8c815fa762b3ea.tar.gz nixlib-393251bf8fa98292cecd05785a8c815fa762b3ea.tar.bz2 nixlib-393251bf8fa98292cecd05785a8c815fa762b3ea.tar.lz nixlib-393251bf8fa98292cecd05785a8c815fa762b3ea.tar.xz nixlib-393251bf8fa98292cecd05785a8c815fa762b3ea.tar.zst nixlib-393251bf8fa98292cecd05785a8c815fa762b3ea.zip |
Merge commit '929cc78363e6878e044556bd291382eab37bcbed'
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/science')
-rw-r--r-- | nixpkgs/pkgs/development/libraries/science/math/nccl/default.nix | 54 | ||||
-rw-r--r-- | nixpkgs/pkgs/development/libraries/science/math/nccl/generic.nix | 57 |
2 files changed, 37 insertions, 74 deletions
diff --git a/nixpkgs/pkgs/development/libraries/science/math/nccl/default.nix b/nixpkgs/pkgs/development/libraries/science/math/nccl/default.nix index d3c20258425b..badd08291de4 100644 --- a/nixpkgs/pkgs/development/libraries/science/math/nccl/default.nix +++ b/nixpkgs/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/nixpkgs/pkgs/development/libraries/science/math/nccl/generic.nix b/nixpkgs/pkgs/development/libraries/science/math/nccl/generic.nix deleted file mode 100644 index 609a7df51e58..000000000000 --- a/nixpkgs/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 ]; - }; -} |