From 6d8bf113bd9630c7671065871b5b60a4127ec985 Mon Sep 17 00:00:00 2001 From: Stefan Matting Date: Sun, 13 May 2018 14:17:32 +0200 Subject: [PATCH 1/2] libgpuarray: add nvidia_x11 as dependency when cudaSupport --- pkgs/development/python-modules/libgpuarray/default.nix | 7 +++++-- pkgs/top-level/python-packages.nix | 1 + 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/libgpuarray/default.nix b/pkgs/development/python-modules/libgpuarray/default.nix index 26fe33995ed..14e83584678 100644 --- a/pkgs/development/python-modules/libgpuarray/default.nix +++ b/pkgs/development/python-modules/libgpuarray/default.nix @@ -9,10 +9,13 @@ , nose , Mako , python -, cudaSupport ? false, cudatoolkit +, cudaSupport ? false, cudatoolkit , nvidia_x11 , openclSupport ? true, ocl-icd, clblas }: +assert cudaSupport -> nvidia_x11 != null + && cudatoolkit != null; + buildPythonPackage rec { pname = "libgpuarray"; version = "0.7.5"; @@ -32,7 +35,7 @@ buildPythonPackage rec { libraryPath = lib.makeLibraryPath ( [] - ++ lib.optionals cudaSupport [ cudatoolkit.lib cudatoolkit.out ] + ++ lib.optionals cudaSupport [ cudatoolkit.lib cudatoolkit.out nvidia_x11 ] ++ lib.optionals openclSupport ([ clblas ] ++ lib.optional (!stdenv.isDarwin) ocl-icd) ); diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index c9033c3d825..ce520ca7119 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -7114,6 +7114,7 @@ in { libgpuarray = callPackage ../development/python-modules/libgpuarray { clblas = pkgs.clblas.override { boost = self.boost; }; cudaSupport = pkgs.config.cudaSupport or false; + inherit (pkgs.linuxPackages) nvidia_x11; }; librepo = toPythonModule (pkgs.librepo.override { From e0cf582493ad249acbf69267e1a2e35f08e37f47 Mon Sep 17 00:00:00 2001 From: Stefan Matting Date: Sun, 13 May 2018 14:23:12 +0200 Subject: [PATCH 2/2] Theano: fix broken compiler; Add nvidia_x11 as dependency when cudaSupport --- pkgs/development/python-modules/Theano/default.nix | 9 ++++++++- pkgs/top-level/python-packages.nix | 1 + 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/pkgs/development/python-modules/Theano/default.nix b/pkgs/development/python-modules/Theano/default.nix index 03dc825218e..9eb04782d6f 100644 --- a/pkgs/development/python-modules/Theano/default.nix +++ b/pkgs/development/python-modules/Theano/default.nix @@ -15,17 +15,24 @@ , libgpuarray , cudaSupport ? false, cudatoolkit , cudnnSupport ? false, cudnn +, nvidia_x11 }: assert cudnnSupport -> cudaSupport; +assert cudaSupport -> nvidia_x11 != null + && cudatoolkit != null + && cudnn != null; + let extraFlags = lib.optionals cudaSupport [ "-I ${cudatoolkit}/include" "-L ${cudatoolkit}/lib" ] - ++ lib.optionals cudnnSupport [ "-I ${cudnn}/include" "-L ${cudnn}/lib" ]; + ++ lib.optionals cudnnSupport [ "-I ${cudnn}/include" "-L ${cudnn}/lib" ] + ++ lib.optionals cudaSupport [ "-I ${libgpuarray}/include" "-L ${libgpuarray}/lib" ]; gcc_ = writeScriptBin "g++" '' #!${stdenv.shell} + export NIX_CC_WRAPPER_${stdenv.cc.infixSalt}_TARGET_HOST=1 export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE ${toString extraFlags}" exec ${gcc}/bin/g++ "$@" ''; diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index ce520ca7119..a5a24e42865 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -12986,6 +12986,7 @@ in { Theano = callPackage ../development/python-modules/Theano rec { cudaSupport = pkgs.config.cudaSupport or false; cudnnSupport = cudaSupport; + inherit (pkgs.linuxPackages) nvidia_x11; }; TheanoWithoutCuda = self.Theano.override {