From 22d9a7e0ea3406082302f1a6788aed42d3285333 Mon Sep 17 00:00:00 2001 From: Brian Van Essen Date: Thu, 22 Feb 2018 10:45:37 -0700 Subject: [PATCH] Fixed Theano GPU support (#7325) * Added a package for the MDAnalysis toolkit. * Added a new package for pygpu, which is the python front end of the libgpuarray. Additionally changed the dependency for theano so that it properly picks up the pygpu library. * Added the libcheck package. Fixed flake8 errors in py-pygpu recipe and removed spurious dependency on cudnn for libgpuarray. --- .../builtin/packages/libcheck/package.py | 36 +++++++++++++ .../builtin/packages/libgpuarray/package.py | 10 +++- .../builtin/packages/py-pygpu/package.py | 52 +++++++++++++++++++ .../builtin/packages/py-theano/package.py | 3 ++ 4 files changed, 99 insertions(+), 2 deletions(-) create mode 100644 var/spack/repos/builtin/packages/libcheck/package.py create mode 100644 var/spack/repos/builtin/packages/py-pygpu/package.py diff --git a/var/spack/repos/builtin/packages/libcheck/package.py b/var/spack/repos/builtin/packages/libcheck/package.py new file mode 100644 index 0000000000..3a743fadbd --- /dev/null +++ b/var/spack/repos/builtin/packages/libcheck/package.py @@ -0,0 +1,36 @@ +############################################################################## +# Copyright (c) 2013-2017, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/spack/spack +# Please also see the NOTICE and LICENSE files for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class Libcheck(CMakePackage): + """A unit testing framework for C.""" + + homepage = "https://libcheck.github.io/check/index.html" + url = "https://github.com/libcheck/check/releases/download/0.12.0/check-0.12.0.tar.gz" + + version('0.12.0', '31b17c6075820a434119592941186f70') + version('0.11.0', '9b90522b31f5628c2e0f55dda348e558') + version('0.10.0', '53c5e5c77d090e103a17f3ed7fd7d8b8') diff --git a/var/spack/repos/builtin/packages/libgpuarray/package.py b/var/spack/repos/builtin/packages/libgpuarray/package.py index 3bc1100c81..885141f833 100644 --- a/var/spack/repos/builtin/packages/libgpuarray/package.py +++ b/var/spack/repos/builtin/packages/libgpuarray/package.py @@ -33,11 +33,17 @@ class Libgpuarray(CMakePackage): homepage = "http://deeplearning.net/software/libgpuarray/" url = "https://github.com/Theano/libgpuarray/archive/v0.6.1.tar.gz" + version('0.7.5', '2534011464555c3e99d14231db965c20') + version('0.7.4', '19f57cd381175162048c8154f5251546') + version('0.7.3', 'cb44aeb8482330974abdb36b0a477e5d') + version('0.7.2', '0f9d7748501bc5c71bf04aae2285ac4e') + version('0.7.1', '7eb5bb6689ddbc386a9d498f5c0027fb') + version('0.7.0', 'f71b066f21ef7666f3a851e96c26f52e') + version('0.6.9', '7f75c39f1436c920ed9c5ffde5631fc0') version('0.6.2', '7f163bd5f48f399cd6e608ee3d528ee4') version('0.6.1', 'cfcd1b54447f9d55b05514df62c70ae2') version('0.6.0', '98a4ec1b4c8f225f0b89c18b899a000b') depends_on('cuda') depends_on('cmake@3:', type='build') - - extends('python') + depends_on('libcheck') diff --git a/var/spack/repos/builtin/packages/py-pygpu/package.py b/var/spack/repos/builtin/packages/py-pygpu/package.py new file mode 100644 index 0000000000..7062343153 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-pygpu/package.py @@ -0,0 +1,52 @@ +############################################################################## +# Copyright (c) 2013-2017, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/spack/spack +# Please also see the NOTICE and LICENSE files for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class PyPygpu(PythonPackage): + """Python packge for the libgpuarray C library.""" + + homepage = "http://deeplearning.net/software/libgpuarray/" + url = "https://github.com/Theano/libgpuarray/archive/v0.6.1.tar.gz" + + version('0.7.5', '2534011464555c3e99d14231db965c20') + version('0.7.4', '19f57cd381175162048c8154f5251546') + version('0.7.3', 'cb44aeb8482330974abdb36b0a477e5d') + version('0.7.2', '0f9d7748501bc5c71bf04aae2285ac4e') + version('0.7.1', '7eb5bb6689ddbc386a9d498f5c0027fb') + version('0.7.0', 'f71b066f21ef7666f3a851e96c26f52e') + version('0.6.9', '7f75c39f1436c920ed9c5ffde5631fc0') + version('0.6.2', '7f163bd5f48f399cd6e608ee3d528ee4') + version('0.6.1', 'cfcd1b54447f9d55b05514df62c70ae2') + version('0.6.0', '98a4ec1b4c8f225f0b89c18b899a000b') + + depends_on('libgpuarray') + # not just build-time, requires pkg_resources + depends_on('py-setuptools', type=('build', 'run')) + depends_on('py-cython@0.25:', type=('build', 'run')) + depends_on('py-nose', type=('build', 'run')) + depends_on('py-numpy', type=('build', 'run')) + depends_on('py-mako', type=('build', 'run')) + depends_on('libcheck') diff --git a/var/spack/repos/builtin/packages/py-theano/package.py b/var/spack/repos/builtin/packages/py-theano/package.py index 4fe8920dd5..4acceaa7a5 100644 --- a/var/spack/repos/builtin/packages/py-theano/package.py +++ b/var/spack/repos/builtin/packages/py-theano/package.py @@ -32,6 +32,7 @@ class PyTheano(PythonPackage): homepage = "http://deeplearning.net/software/theano/" url = "https://pypi.io/packages/source/T/Theano/Theano-0.8.2.tar.gz" + version('1.0.1', 'a38b36c0fdc3126c574163db0a253e69') version('0.8.2', 'f2d0dfe7df141115201077cd933b2c52') version('master', git='https://github.com/Theano/Theano.git', branch='master') @@ -48,6 +49,8 @@ class PyTheano(PythonPackage): depends_on('blas') depends_on('cuda', when='+gpu') + depends_on('cudnn', when='+gpu') + depends_on('py-pygpu', when='+gpu', type=('build', 'run')) depends_on('libgpuarray', when='+gpu') # TODO: Add a 'test' deptype