diff options
author | Jean-Philippe Bernardy <jeanphilippe.bernardy@gmail.com> | 2017-10-03 15:50:39 +0200 |
---|---|---|
committer | Nikolay Amiantov <ab@fmap.me> | 2017-10-10 16:16:37 +0400 |
commit | 244f34785e86376f46a70937773944a57e445122 (patch) | |
tree | ff26dbe5d46c8cc6bede9c7c002eff24d4f3cdf2 | |
parent | 79ae9be2206569dd50baa400c6aba63f71651b81 (diff) | |
download | nixpkgs-244f34785e86376f46a70937773944a57e445122.tar nixpkgs-244f34785e86376f46a70937773944a57e445122.tar.gz nixpkgs-244f34785e86376f46a70937773944a57e445122.tar.bz2 nixpkgs-244f34785e86376f46a70937773944a57e445122.tar.lz nixpkgs-244f34785e86376f46a70937773944a57e445122.tar.xz nixpkgs-244f34785e86376f46a70937773944a57e445122.tar.zst nixpkgs-244f34785e86376f46a70937773944a57e445122.zip |
pythonPackages.tensorflow: repair cuda-dependent variant
merge the outputs of cudatoolkit locally in the tensorflow derivation, using symlinkJoin Fixes #29798
-rw-r--r-- | pkgs/development/python-modules/tensorflow/default.nix | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/pkgs/development/python-modules/tensorflow/default.nix b/pkgs/development/python-modules/tensorflow/default.nix index ab604c17300..00a5df843c5 100644 --- a/pkgs/development/python-modules/tensorflow/default.nix +++ b/pkgs/development/python-modules/tensorflow/default.nix @@ -1,4 +1,5 @@ { stdenv +, symlinkJoin , lib , fetchurl , buildPythonPackage @@ -35,6 +36,13 @@ buildPythonPackage rec { format = "wheel"; disabled = ! (isPy35 || isPy36 || isPy27); + # cudatoolkit is split (see https://github.com/NixOS/nixpkgs/commit/bb1c9b027d343f2ce263496582d6b56af8af92e6) + # However this means that libcusolver is not loadable by tensor flow. So we undo the split here. + cudatoolkit_joined = symlinkJoin { + name = "unsplit_cudatoolkit"; + paths = [ cudatoolkit.out + cudatoolkit.lib ];}; + src = let tfurl = sys: proc: pykind: let @@ -112,7 +120,7 @@ buildPythonPackage rec { propagatedBuildInputs = [ numpy six protobuf mock backports_weakref ] ++ lib.optional (!isPy36) tensorflow-tensorboard - ++ lib.optionals cudaSupport [ cudatoolkit cudnn stdenv.cc ]; + ++ lib.optionals cudaSupport [ cudatoolkit_joined cudnn stdenv.cc ]; # tensorflow-gpu depends on tensorflow_tensorboard, which cannot be # built at the moment (some of its dependencies do not build @@ -126,7 +134,7 @@ buildPythonPackage rec { postFixup = let rpath = stdenv.lib.makeLibraryPath (if cudaSupport then - [ stdenv.cc.cc.lib zlib cudatoolkit cudnn + [ stdenv.cc.cc.lib zlib cudatoolkit_joined cudnn linuxPackages.nvidia_x11 ] else [ stdenv.cc.cc.lib zlib ] |