diff options
Diffstat (limited to 'pkgs/development/libraries/science/math')
4 files changed, 77 insertions, 37 deletions
diff --git a/pkgs/development/libraries/science/math/cudnn/default.nix b/pkgs/development/libraries/science/math/cudnn/default.nix index d6e55e7bf73c..f5715157531e 100644 --- a/pkgs/development/libraries/science/math/cudnn/default.nix +++ b/pkgs/development/libraries/science/math/cudnn/default.nix @@ -40,6 +40,6 @@ in version = "7.0.5"; cudatoolkit = cudatoolkit9; srcName = "cudnn-${cudatoolkit.majorVersion}-linux-x64-v7.tgz"; - sha256 = "1a3e076447d5b9860c73d9bebe7087ffcb7b0c8814fd1e506096435a2ad9ab0e"; + sha256 = "1rfmdd2v47p83fm3sfyvik31gci0q17qs6kjng6mvcsd6akmvb8y"; }; } diff --git a/pkgs/development/libraries/science/math/ipopt/default.nix b/pkgs/development/libraries/science/math/ipopt/default.nix index 567ee7853f88..f694f72f22b6 100644 --- a/pkgs/development/libraries/science/math/ipopt/default.nix +++ b/pkgs/development/libraries/science/math/ipopt/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { name = "ipopt-${version}"; - version = "3.12.8"; + version = "3.12.9"; src = fetchurl { url = "http://www.coin-or.org/download/source/Ipopt/Ipopt-${version}.zip"; - sha256 = "1lyhgashyk2wswv0z2qnkxng32pim80kzf9jfgxi07wl09x753w1"; + sha256 = "1fqdjgxh6l1xjvw1ffma7lg92xqg0l8sj02y0zqvbfnx8i47qs9a"; }; CXXDEFS = [ "-DHAVE_RAND" "-DHAVE_CSTRING" "-DHAVE_CSTDIO" ]; diff --git a/pkgs/development/libraries/science/math/nccl/default.nix b/pkgs/development/libraries/science/math/nccl/default.nix index c4deccff5b7e..1d692f6316ff 100644 --- a/pkgs/development/libraries/science/math/nccl/default.nix +++ b/pkgs/development/libraries/science/math/nccl/default.nix @@ -1,41 +1,24 @@ -{ stdenv, fetchFromGitHub -, gcc5, eject, cudatoolkit -}: +{ callPackage, cudatoolkit8, cudatoolkit9 }: -stdenv.mkDerivation rec { - name = "cudatoolkit-${cudatoolkit.majorVersion}-nccl-${version}"; - version = "1.3.4-1"; - - src = fetchFromGitHub { - owner = "NVIDIA"; - repo = "nccl"; - rev = "v${version}"; - sha256 = "0fvnrfn572lc6i2a3xyhbifm53ivcrr46z6cqr3b0bwb1iq79m7q"; +let + generic = args: callPackage (import ./generic.nix (removeAttrs args ["cudatoolkit"])) { + inherit (args) cudatoolkit; }; - nativeBuildInputs = [ - gcc5 - eject - ]; - - propagatedBuildInputs = [ - cudatoolkit - ]; +in - makeFlags = [ - "PREFIX=$(out)" - "CUDA_HOME=${cudatoolkit}" - "CUDA_LIB=${cudatoolkit.lib}/lib" - ]; +{ + nccl_cudatoolkit8 = generic rec { + version = "2.1.4"; + cudatoolkit = cudatoolkit8; + srcName = "nccl_${version}-1+cuda${cudatoolkit.majorVersion}_x86_64.txz"; + sha256 = "1lwwm8kdhna5m318yg304kl2gsz1jwhv4zv4gn8av2m57zh848zi"; + }; - meta = with stdenv.lib; { - description = '' - NVIDIA Collective Communications Library. - Multi-GPU and multi-node collective communication primitives. - ''; - homepage = https://developer.nvidia.com/nccl; - license = licenses.bsd3; - platforms = [ "x86_64-linux" ]; - maintainers = with maintainers; [ hyphon81 ]; + nccl_cudatoolkit9 = generic rec { + version = "2.1.4"; + cudatoolkit = cudatoolkit9; + srcName = "nccl_${version}-1+cuda${cudatoolkit.majorVersion}_x86_64.txz"; + sha256 = "0pajmqzkacpszs63jh2hw2qqc49kj75kcf7r0ky8hdh560q8xn0p"; }; } diff --git a/pkgs/development/libraries/science/math/nccl/generic.nix b/pkgs/development/libraries/science/math/nccl/generic.nix new file mode 100644 index 000000000000..aa04d75b078b --- /dev/null +++ b/pkgs/development/libraries/science/math/nccl/generic.nix @@ -0,0 +1,57 @@ +{ 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://${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 ]; + }; +} |