modified: b/Boost/Boost-1.63.0-foss-2017a-Python-3.6.1.eb

new file:   c/CNTK/CNTK-2.0-foss-2017a-Python-3.6.1.eb
	new file:   c/CNTK/abs.patch
	new file:   c/CNTK/glibc.patch
	new file:   s/SWIG/SWIG-2.0.12-Python-3.6.1.eb
	new file:   s/Spack/Spack-0.10.0.eb
	deleted:    c/CNTK/CNTK-2.0-GCC-7.1.0-2.28-Python-3.6.1.eb
This commit is contained in:
Lukáš Krupčík 2017-07-07 13:36:29 +02:00
parent 4dd89bbf82
commit d1c3c8dfd4
7 changed files with 130 additions and 34 deletions

View File

@ -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),
]

View File

@ -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'

View File

@ -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 <limits>/#include <limits>\\n#include <stdlib.h>/" 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'

20
c/CNTK/abs.patch Normal file
View File

@ -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<float>(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);
}
}

14
c/CNTK/glibc.patch Normal file
View File

@ -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 <stdlib.h>
-#define ALIGNED_ALLOC(bytes,alignment) aligned_alloc(alignment,bytes)
+#include <malloc.h>
+#define ALIGNED_ALLOC(bytes,alignment) memalign(alignment,bytes)
#define ALIGNED_FREE(ptr) free(ptr)
-//#define FORCEINLINE __attribute__((always_inline))
#define FORCEINLINE inline
#endif
#endif

View File

@ -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'

26
s/Spack/Spack-0.10.0.eb Normal file
View File

@ -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'