pythonPackages.Theano: move and rename variants
We have two derivations, one that supports Cuda, and one that does not. The names, TheanoWithCuda and TheanoWithoutCuda, now reflect that. Furthermore, a boolean passthru.cudaSupport was added. In the future the two derivations should be merged in one, with a parameter `cudaSupport`.
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
{ buildPythonPackage
|
||||
, fetchFromGitHub
|
||||
, numpy
|
||||
, six
|
||||
, scipy
|
||||
, nose
|
||||
, nose-parameterized
|
||||
, pydot_ng
|
||||
, sphinx
|
||||
, pygments
|
||||
, libgpuarray
|
||||
, python
|
||||
, pycuda
|
||||
, cudatoolkit
|
||||
, cudnn
|
||||
, stdenv
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
name = "Theano-cuda-${version}";
|
||||
version = "0.8.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Theano";
|
||||
repo = "Theano";
|
||||
rev = "46fbfeb628220b5e42bf8277a5955c52d153e874";
|
||||
sha256 = "1sl91gli3jaw5gpjqqab4fiq4x6282spqciaid1s65pjsf3k55sc";
|
||||
};
|
||||
|
||||
doCheck = false;
|
||||
|
||||
patchPhase = ''
|
||||
pushd theano/sandbox/gpuarray
|
||||
sed -i -re '2s/^/from builtins import bytes\n/g' subtensor.py
|
||||
sed -i -re "s/(b'2')/int(bytes(\1))/g" subtensor.py
|
||||
sed -i -re "s/(ctx.bin_id\[\-2\])/int(\1)/g" subtensor.py
|
||||
|
||||
sed -i -re '2s/^/from builtins import bytes\n/g' dnn.py
|
||||
sed -i -re "s/(b'30')/int(bytes(\1))/g" dnn.py
|
||||
sed -i -re "s/(ctx.bin_id\[\-2:\])/int(\1)/g" dnn.py
|
||||
popd
|
||||
'';
|
||||
|
||||
dontStrip = true;
|
||||
|
||||
propagatedBuildInputs = [
|
||||
numpy.blas
|
||||
numpy
|
||||
six
|
||||
scipy
|
||||
nose
|
||||
nose-parameterized
|
||||
pydot_ng
|
||||
sphinx
|
||||
pygments
|
||||
pycuda
|
||||
cudatoolkit
|
||||
libgpuarray
|
||||
] ++ (stdenv.lib.optional (cudnn != null) [ cudnn ]);
|
||||
|
||||
passthru.cudaSupport = true;
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
{ stdenv
|
||||
, fetchurl
|
||||
, buildPythonPackage
|
||||
, isPyPy
|
||||
, pythonOlder
|
||||
, isPy3k
|
||||
, nose
|
||||
, numpy
|
||||
, pydot_ng
|
||||
, scipy
|
||||
, six
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
name = "Theano-0.8.2";
|
||||
|
||||
disabled = isPyPy || pythonOlder "2.6" || (isPy3k && pythonOlder "3.3");
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://pypi/T/Theano/${name}.tar.gz";
|
||||
sha256 = "7463c8f7ed1a787bf881f36d38a38607150186697e7ce7e78bfb94b7c6af8930";
|
||||
};
|
||||
|
||||
#preCheck = ''
|
||||
# mkdir -p check-phase
|
||||
# export HOME=$(pwd)/check-phase
|
||||
#'';
|
||||
doCheck = false;
|
||||
# takes far too long, also throws "TypeError: sort() missing 1 required positional argument: 'a'"
|
||||
# when run from the installer, and testing with Python 3.5 hits github.com/Theano/Theano/issues/4276,
|
||||
# the fix for which hasn't been merged yet.
|
||||
|
||||
# keep Nose around since running the tests by hand is possible from Python or bash
|
||||
propagatedBuildInputs = [ stdenv nose numpy numpy.blas pydot_ng scipy six ];
|
||||
|
||||
meta = {
|
||||
homepage = http://deeplearning.net/software/theano/;
|
||||
description = "A Python library for large-scale array computation";
|
||||
license = stdenv.lib.licenses.bsd3;
|
||||
maintainers = [ stdenv.lib.maintainers.bcdarwin ];
|
||||
};
|
||||
|
||||
passthru.cudaSupport = false;
|
||||
}
|
||||
Reference in New Issue
Block a user