new file: c/cuDNN/cuDNN-7.5.0.56-CUDA-10.0.130.eb

new file:   c/cuDNN/cuDNN-7.5.0.56-fosscuda-2019a.eb
	new file:   n/NCCL/NCCL-2.4.2-gcccuda-2019a.eb
	modified:   o/OpenMPI/OpenMPI-3.0.1-GCC-6.3.0-2.27-nvidia.eb
	new file:   o/OpenMPI/OpenMPI-3.1.4-GCC-6.3.0-2.27-nvidia.eb
	new file:   t/Tensorflow/TensorFlow-1.13.1-fosscuda-2019a-Py-3.6.eb
	deleted:    c/cuDNN/cuDNN-7.5-CUDA-10.0.130.eb
This commit is contained in:
Lukáš Krupčík 2019-05-22 12:24:13 +02:00
parent 38d0086a39
commit 67ffb852a6
6 changed files with 259 additions and 1 deletions

View File

@ -0,0 +1,34 @@
##
# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild
#
# OriginalAuthor: Stephane Thiell <sthiell@stanford.edu>
# Author: Ake Sandgren <ake.sandgren@hpc2n.umu.se>
##
easyblock = 'Tarball'
# The full version of the library can be found using
# strings -a cuda/lib64/libcudnn_static.a | grep cudnn_version_
name = 'cuDNN'
version = '7.5.0.56'
homepage = 'https://developer.nvidia.com/cudnn'
description = """The NVIDIA CUDA Deep Neural Network library (cuDNN) is a GPU-accelerated library of primitives for
deep neural networks."""
# fosscuda 2018b uses CUDA 9.2
toolchain = {'name': 'fosscuda', 'version': '2019a'}
# Nvidia developer registration required.
# Download link: https://developer.nvidia.com/rdp/cudnn-download
# Unpack the downloaded tar file.
# Then rename as:
# v=`strings -a cuda/lib64/libcudnn_static.a | grep cudnn_version_ | cut -d_ -f3-6 | tr _ .`
# mv cudnn-9.2-linux-x64-v7.1.tgz cudnn-9.2-linux-x64-v$v.tgz
sources = ['%(namelower)s-9.2-linux-x64-v%(version)s.tgz']
sanity_check_paths = {
'files': ['include/cudnn.h', 'lib64/libcudnn_static.a'],
'dirs': ['include', 'lib64'],
}
moduleclass = 'numlib'

View File

@ -0,0 +1,28 @@
easyblock = "MakeCp"
name = 'NCCL'
version = '2.4.2'
homepage = 'https://developer.nvidia.com/nccl'
description = """The NVIDIA Collective Communications Library (NCCL) implements multi-GPU and multi-node collective
communication primitives that are performance optimized for NVIDIA GPUs."""
# gcccuda/2019a uses CUDA 10.1
toolchain = {'name': 'gcccuda', 'version': '2019a'}
cuda_version = '10.1'
# Download from https://developer.nvidia.com/nccl/nccl-download (after log in)
sources = ['%%(namelower)s_%%(version)s-1+cuda%s_x86_64.txz' % cuda_version]
checksums = ['27dad0e9495d2382e34d2701472a702007be65275b22f782e74613af08e0a39b']
skipsteps = ['build']
files_to_copy = ['lib', 'include']
sanity_check_paths = {
'files': ['lib/libnccl.%s' % SHLIB_EXT, 'lib/libnccl_static.a', 'include/nccl.h'],
'dirs': ['include'],
}
moduleclass = 'lib'

View File

@ -21,7 +21,7 @@ builddependencies = [
dependencies = [
('hwloc', '1.11.7'),
('zlib', '1.2.11', '', True),
('CUDA', '9.1.85', '', True),
('CUDA', '10.0.130', '', True),
('libxml2', '2.9.4', '', True),
]
@ -61,4 +61,6 @@ modextravars = {'OMPI_MCA_btl_openib_if_include': 'mlx4_0',
'OMPI_MCA_oob_tcp_if_include': '10.0.0.0/8',
}
modluafooter = 'add_property("arch","gpu")'
moduleclass = 'mpi'

View File

@ -0,0 +1,67 @@
# IT4Innovations 2019
easyblock = 'ConfigureMake'
name = 'OpenMPI'
version = '3.1.4'
versionsuffix = '-nvidia'
homepage = 'http://www.open-mpi.org/'
description = """The Open MPI Project is an open source MPI-2 implementation."""
toolchain = {'name': 'GCC', 'version': '6.3.0-2.27'}
source_urls = [
'http://www.open-mpi.org/software/ompi/v%(version_major_minor)s/downloads']
sources = [SOURCELOWER_TAR_GZ]
builddependencies = [
('Java', '1.8.0_121', '', True)
]
dependencies = [
('hwloc', '1.11.7'),
('zlib', '1.2.11', '', True),
('CUDA', '10.0.130', '', True),
('libxml2', '2.9.4', '', True),
]
configopts = '--enable-shared --enable-mpi-thread-multiple --with-verbs '
# suppress failure modes in relation to mpirun path
configopts += '--enable-mpirun-prefix-by-default '
configopts += '--with-hwloc=$EBROOTHWLOC ' # hwloc support
# configopts += '--disable-dlopen ' # dont disable dlopen!
# https://github.com/open-mpi/ompi/issues/3630
configopts += '--with-tm=/opt/pbs/default ' # Enable PBS
configopts += '--enable-mpi-java ' # Java support RT#4090
configopts += '--enable-mpi-cxx ' # Enable building the C++ MPI bindings
configopts += '--with-cuda=$EBROOTCUDA' # cuda support
# for PBS Pro 13
preconfigopts = 'export LIBS="-ldl" && '
# to enable SLURM integration (site-specific)
# configopts += '--with-slurm --with-pmi=/usr/include/slurm --with-pmi-libdir=/usr'
# needed for --with-verbs
osdependencies = [('libibverbs-dev', 'libibverbs-devel', 'rdma-core-devel')]
libs = ["mpi_mpifh", "mpi", "ompitrace", "open-pal", "open-rte"]
sanity_check_paths = {
'files': [
"bin/%s" %
binfile for binfile in [
"ompi_info", "opal_wrapper", "orterun"]] + [
"lib/lib%s.%s" %
(libfile, SHLIB_EXT) for libfile in libs] + [
"include/%s.h" %
x for x in [
"mpi-ext", "mpif-config", "mpif", "mpi", "mpi_portable_platform"]], 'dirs': [], }
modextravars = {'OMPI_MCA_btl_openib_if_include': 'mlx4_0',
'OMPI_MCA_oob_tcp_if_include': '10.0.0.0/8',
}
modluafooter = 'add_property("arch","gpu")'
moduleclass = 'mpi'

View File

@ -0,0 +1,127 @@
easyblock = 'PythonBundle'
name = 'TensorFlow'
version = '1.13.1'
versionsuffix = '-Py-3.6'
homepage = 'https://www.tensorflow.org/'
description = "An open-source software library for Machine Intelligence"
toolchain = {'name': 'fosscuda', 'version': '2019a'}
toolchainopts = {'usempi': True}
builddependencies = [
# must be Bazel <= 0.21, and Bazel 0.21.0 fails to install...
('Bazel', '0.20.0'),
('protobuf', '3.6.1.2'),
]
dependencies = [
('Py', '3.6', "", True),
('SciPy-bundle', '2019.03'),
('h5py', '2.9.0'),
('cuDNN', '7.5.0.56'),
('NCCL', '2.4.2'),
]
use_pip = True
exts_list = [
('protobuf-python', '3.6.1', {
'source_urls': ['https://github.com/google/protobuf/releases/download/v%(version)s/'],
'source_tmpl': 'protobuf-python-%(version)s.tar.gz',
'patches': ['TensorFlow-1.13.1_protobuf-3.6.1.2_fix_26155.patch'],
'checksums': [
'40f009cb0c190816a52fc21d45c26558ee7d63c3bd511b326bd85739b2fd99a6', # protobuf-python-3.6.1.tar.gz
# TensorFlow-1.13.1_protobuf-3.6.1.2_fix_26155.patch
'db514d3698d37e329cecdd2245dcd6ff65f2b739a66730f303e8a9f6c107392b',
],
'start_dir': 'python',
'use_pip': False,
'modulename': 'google.protobuf',
}),
('absl-py', '0.7.1', {
'source_urls': ['https://pypi.python.org/packages/source/a/absl-py'],
'checksums': ['b943d1c567743ed0455878fcd60bc28ac9fae38d129d1ccfad58079da00b8951'],
'modulename': 'absl',
}),
('astor', '0.7.1', {
'source_urls': ['https://pypi.python.org/packages/source/a/astor'],
'checksums': ['95c30d87a6c2cf89aa628b87398466840f0ad8652f88eb173125a6df8533fb8d'],
}),
('gast', '0.2.2', {
'source_urls': ['https://pypi.python.org/packages/source/g/gast'],
'checksums': ['fe939df4583692f0512161ec1c880e0a10e71e6a232da045ab8edd3756fbadf0'],
}),
('grpcio', '1.20.1', {
'source_urls': ['https://pypi.python.org/packages/source/g/grpcio'],
'checksums': ['84eb47b1a47e206e78f453fb92a155ed0d18d2ca8747f5c67e4b50b9c37180a7'],
'modulename': 'grpc',
}),
('Markdown', '3.1', {
'source_urls': ['https://pypi.python.org/packages/source/M/Markdown'],
'checksums': ['fc4a6f69a656b8d858d7503bda633f4dd63c2d70cf80abdc6eafa64c4ae8c250'],
}),
('tensorboard', version, {
'source_urls': ['https://pypi.python.org/packages/source/t/tensorboard'],
'source_tmpl': 'tensorboard-%(version)s-py3-none-any.whl',
'checksums': ['b664fe7772be5670d8b04200342e681af7795a12cd752709aed565c06c0cc196'],
'unpack_sources': False,
}),
('termcolor', '1.1.0', {
'source_urls': ['https://pypi.python.org/packages/source/t/termcolor'],
'checksums': ['1d6d69ce66211143803fbc56652b41d73b4a400a2891d7bf7a1cdf4c02de613b'],
}),
('Werkzeug', '0.15.2', {
'source_urls': ['https://pypi.python.org/packages/source/W/Werkzeug'],
'checksums': ['0a73e8bb2ff2feecfc5d56e6f458f5b99290ef34f565ffb2665801ff7de6af7a'],
}),
('Keras-Applications', '1.0.7', {
'source_urls': ['https://pypi.python.org/packages/source/K/Keras-Applications'],
'source_tmpl': 'Keras_Applications-%(version)s.tar.gz',
'checksums': ['60607b2b98868983e5153bf1cc6aa468ba73adc93bc977a90edaa4bc595e69fa'],
'modulename': 'keras_applications',
}),
('Keras-Preprocessing', '1.0.9', {
'source_urls': ['https://pypi.python.org/packages/source/K/Keras-Preprocessing'],
'source_tmpl': 'Keras_Preprocessing-%(version)s.tar.gz',
'checksums': ['5e3700117981c2db762e512ed6586638124fac5842170701628088a11aeb51ac'],
'modulename': 'keras_preprocessing',
}),
('tensorflow-estimator', '1.13.0', {
'source_urls': ['https://pypi.python.org/packages/source/t/tensorflow-estimator'],
'source_tmpl': 'tensorflow_estimator-1.13.0-py2.py3-none-any.whl',
'checksums': ['7cfdaa3e83e3532f31713713feb98be7ea9f3065722be4267e49b6c301271419'],
'unpack_sources': False,
}),
(name, version, {
'source_urls': ['https://github.com/tensorflow/tensorflow/archive/'],
'source_tmpl': 'v%(version)s.tar.gz',
'patches': [
'TensorFlow-1.11.0_swig-env.patch',
'TensorFlow-1.11.0_remove-msse-hardcoding.patch',
'TensorFlow-1.13.1_lrt-flag.patch',
'TensorFlow-1.13.1_dont_expand_cuda_cudnn_path.patch',
'TensorFlow-1.13.1_remove_usrbin_from_linker_bin_path_flag.patch',
'TensorFlow-1.13.1_fix_protobuf_problem.patch',
'TensorFlow-1.13.1_fix_cudalib_version_for_cuda10.1.patch',
],
'checksums': [
'7cd19978e6bc7edc2c847bce19f95515a742b34ea5e28e4389dade35348f58ed', # v1.13.1.tar.gz
'aa53c7f6d42b4a9e91e0ba639d79f69a7db3c0a88c3b8e43d332479b6368391a', # TensorFlow-1.11.0_swig-env.patch
# TensorFlow-1.11.0_remove-msse-hardcoding.patch
'a0f00ee4d03bb4fd3a645ee06045cedaf97d0b85675ec35187e9dd7e479d7bb6',
'b388be35f2581786bcd533b1bfa375165d7f35e38a3aab74570019312816bf1b', # TensorFlow-1.13.1_lrt-flag.patch
# TensorFlow-1.13.1_dont_expand_cuda_cudnn_path.patch
'3722764db136c58a1310aa087b6be6c34dd10c6fb5b6b215a9ae83946fd1c4ae',
# TensorFlow-1.13.1_remove_usrbin_from_linker_bin_path_flag.patch
'e6122f34557fbe9e705ce1999403053b0ac4bdd058e4a31a182a16446c87bdb3',
# TensorFlow-1.13.1_fix_protobuf_problem.patch
'd2fab1497078a2980a68adeea4d0f8719be5bef03741ea4775163745a1e52d40',
# TensorFlow-1.13.1_fix_cudalib_version_for_cuda10.1.patch
'176237dc2736d99d343f7a086503f9c724e7747f9289884302a010e5dff2dd1b',
],
}),
]
moduleclass = 'lib'