diff --git a/b/Boost/Boost-1.63.0-foss-2017a-Python-3.6.1.eb b/b/Boost/Boost-1.63.0-foss-2017a-Python-3.6.1.eb index 8baad086..7ceb04fa 100644 --- a/b/Boost/Boost-1.63.0-foss-2017a-Python-3.6.1.eb +++ b/b/Boost/Boost-1.63.0-foss-2017a-Python-3.6.1.eb @@ -16,8 +16,8 @@ patches = [ ] dependencies = [ - ('bzip2', '1.0.6'), - ('zlib', '1.2.11'), + ('bzip2', '1.0.6', '', True), + ('zlib', '1.2.11', '', True), ('Python', '3.6.1', '', True), ] diff --git a/c/CNTK/CNTK-2.0-GCC-7.1.0-2.28-Python-3.6.1.eb b/c/CNTK/CNTK-2.0-GCC-7.1.0-2.28-Python-3.6.1.eb deleted file mode 100644 index 58ec2585..00000000 --- a/c/CNTK/CNTK-2.0-GCC-7.1.0-2.28-Python-3.6.1.eb +++ /dev/null @@ -1,32 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'CNTK' -version = '2.0' -versionsuffix = '-Python-%(pyver)s' - -homepage = 'https://cntk.ai/' -description = """The Microsoft Cognitive Toolkit is a unified deep-learning toolkit that describes neural networks as a series of computational steps via a directed graph. In this directed graph, leaf nodes represent input values or network parameters, while other nodes represent matrix operations upon their inputs. CNTK allows to easily realize and combine popular model types such as feed-forward DNNs, convolutional nets (CNNs), and recurrent networks (RNNs/LSTMs). It implements stochastic gradient descent (SGD, error backpropagation) learning with automatic differentiation and parallelization across multiple GPUs and servers. """ - -toolchain = {'name': 'foss', 'version': '2017a'} - -source_urls = ['https://cntk.ai/PythonWheel/CPU-Only'] -sources = ['cntk-%(version)s-cp36-cp36m-linux_x86_64.whl'] - -use_pip = True -unpack_sources = False - -dependencies = [ - ('Python', '3.6.1', '', True), - ('libzip, '1.2.0', '', True), - ('zlib, '1.2.11', '', True), - ('protobuf, '3.2.0', '-Python-3.6.1', True), - ('CNTKCustomMKL','3.0', '', True), - ('OpenMPI', '1.10.7'), -] - -sanity_check_paths = { - 'files': [], - 'dirs': ['lib/python%(pyshortver)s/site-packages'], -} - -moduleclass = 'math' diff --git a/c/CNTK/CNTK-2.0-foss-2017a-Python-3.6.1.eb b/c/CNTK/CNTK-2.0-foss-2017a-Python-3.6.1.eb new file mode 100644 index 00000000..d427a36c --- /dev/null +++ b/c/CNTK/CNTK-2.0-foss-2017a-Python-3.6.1.eb @@ -0,0 +1,48 @@ +easyblock = 'ConfigureMake' + +name = 'CNTK' +version = '2.0' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'https://cntk.ai/' +description = """The Microsoft Cognitive Toolkit is a unified deep-learning toolkit that describes neural networks as a series of computational steps via a directed graph. In this directed graph, leaf nodes represent input values or network parameters, while other nodes represent matrix operations upon their inputs. CNTK allows to easily realize and combine popular model types such as feed-forward DNNs, convolutional nets (CNNs), and recurrent networks (RNNs/LSTMs). It implements stochastic gradient descent (SGD, error backpropagation) learning with automatic differentiation and parallelization across multiple GPUs and servers. """ + +toolchain = {'name': 'foss', 'version': '2017a'} + +patches = [ + 'glibc.patch', + 'abs.patch', +] + +source_urls = ['https://github.com/Microsoft/CNTK/archive'] +sources = ['v%(version)s.tar.gz'] + +dependencies = [ + ('Python', '3.6.1', '', True), + ('libzip', '1.2.0', '', True), + ('zlib', '1.2.11', '', True), + ('protobuf', '3.2.0', versionsuffix, True), + ('CNTKCustomMKL','3.0', '', True), + ('Boost', '1.63.0', versionsuffix, ('foss', '2017a')), + ('SWIG', '3.0.12', versionsuffix, True), +# ('OpenMPI', '1.8.6', '', ('GCC', '4.4.7-system')), +] + +prefix_opt = '--with-build-top=' + +preconfigopts = 'sed -i "s/cntk_custom_mkl_version=3/cntk_custom_mkl_version=3.0/" configure && ' +preconfigopts += 'sed -i "s/-Werror//" Makefile && ' +#preconfigopts += 'sed -i "s/#include /#include \\n#include /" Source/Math/BlockMultiplierPlatform.h &&' + +prebuildopts = 'cd %(installdir)s &&' + +configopts = '--with-py-versions=36 --with-buildtype=release --mpi=yes --python=yes --asgd=no ' +configopts += '--with-boost=$EBROOTBOOST --with-protobuf=$EBROOTPROTOBUF --with-swig=$EBROOTSWIG --with-libzip=$EBROOTLIBZIP ' +configopts += '--with-mpi=$EBROOTOPENMPI --with-py36-path=$EBROOTPYTHON --with-mkl=/apps/all/CNTKCustomMKL/ ' + +sanity_check_paths = { + 'files': [], + 'dirs': ['lib'], +} + +moduleclass = 'math' diff --git a/c/CNTK/abs.patch b/c/CNTK/abs.patch new file mode 100644 index 00000000..530cafc2 --- /dev/null +++ b/c/CNTK/abs.patch @@ -0,0 +1,20 @@ +--- Tests/UnitTests/V2LibraryTests/FunctionTests.cpp.old 2017-07-07 13:03:11.977578491 +0200 ++++ Tests/UnitTests/V2LibraryTests/FunctionTests.cpp 2017-07-07 13:03:26.434040010 +0200 +@@ -1040,7 +1040,7 @@ + for (auto dropoutRate : { 0.9, 0.4, 0.0, 0.1 }) + { + dropout->SetAttribute(L"dropoutRate", dropoutRate); +- BOOST_TEST(abs(zeroCount(forwardFunc(dropout)) - dropoutRate*shape.TotalSize()) < 100); ++ BOOST_TEST(fabs(zeroCount(forwardFunc(dropout)) - dropoutRate*shape.TotalSize()) < 100); + } + + auto plusParam = CNTK::Parameter(CNTK::NDArrayView::RandomUniform(shape, -0.5, 0.5, 1, device)); +@@ -1051,7 +1051,7 @@ + for (auto dropoutRate : { 0.3, 0.7, 0.2 }) + { + dropout2->SetAttribute(L"dropoutRate", dropoutRate); +- BOOST_TEST(abs(zeroCount(forwardFunc(combine)) - dropoutRate*shape.TotalSize()) < 100); ++ BOOST_TEST(fabs(zeroCount(forwardFunc(combine)) - dropoutRate*shape.TotalSize()) < 100); + } + } + diff --git a/c/CNTK/glibc.patch b/c/CNTK/glibc.patch new file mode 100644 index 00000000..f371f251 --- /dev/null +++ b/c/CNTK/glibc.patch @@ -0,0 +1,14 @@ +--- Source/Math/BlockMultiplierPlatform.h.old 2017-07-07 12:36:28.290807773 +0200 ++++ Source/Math/BlockMultiplierPlatform.h 2017-07-07 12:37:05.878425807 +0200 +@@ -10,9 +10,9 @@ + #else + #ifdef __GNUC__ + #include +-#define ALIGNED_ALLOC(bytes,alignment) aligned_alloc(alignment,bytes) ++#include ++#define ALIGNED_ALLOC(bytes,alignment) memalign(alignment,bytes) + #define ALIGNED_FREE(ptr) free(ptr) +-//#define FORCEINLINE __attribute__((always_inline)) + #define FORCEINLINE inline + #endif + #endif diff --git a/s/SWIG/SWIG-2.0.12-Python-3.6.1.eb b/s/SWIG/SWIG-2.0.12-Python-3.6.1.eb new file mode 100644 index 00000000..82dcea85 --- /dev/null +++ b/s/SWIG/SWIG-2.0.12-Python-3.6.1.eb @@ -0,0 +1,20 @@ +name = 'SWIG' +version = '3.0.12' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'http://www.swig.org/' +description = """SWIG is a software development tool that connects programs written in C and C++ with + a variety of high-level programming languages.""" + +toolchain = {'name': 'dummy', 'version': ''} +toolchainopts = {'pic': True} + +source_urls = [SOURCEFORGE_SOURCE] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [ + ('Python', '3.6.1'), + ('PCRE', '8.40'), +] + +moduleclass = 'devel' diff --git a/s/Spack/Spack-0.10.0.eb b/s/Spack/Spack-0.10.0.eb new file mode 100644 index 00000000..96a27177 --- /dev/null +++ b/s/Spack/Spack-0.10.0.eb @@ -0,0 +1,26 @@ +easyblock = 'Tarball' + +name = 'Spack' +version = '0.10.0' + +homepage = 'https://spack.io/' +description = """Spack is a package manager for supercomputers, Linux, and macOS. It makes installing scientific + software easy. With Spack, you can build a package with multiple versions, configurations, platforms, and compilers, + and all of these builds can coexist on the same machine.""" + +toolchain = {'name': 'dummy', 'version': ''} + +source_urls = ['https://github.com/LLNL/spack/archive/'] +sources = ['v%(version)s.tar.gz'] + +sanity_check_paths = { + 'files': ['bin/spack'], + 'dirs': ['etc/spack/defaults', 'lib/spack', 'share/spack', 'var/spack'], +} + +sanity_check_commands = [ + "spack list", + "spack versions gcc", +] + +moduleclass = 'devel'