diff --git a/c/cuDNN/cuDNN-7.5-CUDA-10.0.130.eb b/c/cuDNN/cuDNN-7.5.0.56-CUDA-10.0.130.eb similarity index 100% rename from c/cuDNN/cuDNN-7.5-CUDA-10.0.130.eb rename to c/cuDNN/cuDNN-7.5.0.56-CUDA-10.0.130.eb diff --git a/c/cuDNN/cuDNN-7.5.0.56-fosscuda-2019a.eb b/c/cuDNN/cuDNN-7.5.0.56-fosscuda-2019a.eb new file mode 100644 index 00000000..1a81d226 --- /dev/null +++ b/c/cuDNN/cuDNN-7.5.0.56-fosscuda-2019a.eb @@ -0,0 +1,34 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild +# +# OriginalAuthor: Stephane Thiell +# Author: Ake Sandgren +## +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' diff --git a/n/NCCL/NCCL-2.4.2-gcccuda-2019a.eb b/n/NCCL/NCCL-2.4.2-gcccuda-2019a.eb new file mode 100644 index 00000000..4e220cd8 --- /dev/null +++ b/n/NCCL/NCCL-2.4.2-gcccuda-2019a.eb @@ -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' diff --git a/o/OpenMPI/OpenMPI-3.0.1-GCC-6.3.0-2.27-nvidia.eb b/o/OpenMPI/OpenMPI-3.0.1-GCC-6.3.0-2.27-nvidia.eb index 1efbc211..4027fb4e 100644 --- a/o/OpenMPI/OpenMPI-3.0.1-GCC-6.3.0-2.27-nvidia.eb +++ b/o/OpenMPI/OpenMPI-3.0.1-GCC-6.3.0-2.27-nvidia.eb @@ -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' diff --git a/o/OpenMPI/OpenMPI-3.1.4-GCC-6.3.0-2.27-nvidia.eb b/o/OpenMPI/OpenMPI-3.1.4-GCC-6.3.0-2.27-nvidia.eb new file mode 100644 index 00000000..ae9b6ae4 --- /dev/null +++ b/o/OpenMPI/OpenMPI-3.1.4-GCC-6.3.0-2.27-nvidia.eb @@ -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' diff --git a/t/Tensorflow/TensorFlow-1.13.1-fosscuda-2019a-Py-3.6.eb b/t/Tensorflow/TensorFlow-1.13.1-fosscuda-2019a-Py-3.6.eb new file mode 100644 index 00000000..829095ce --- /dev/null +++ b/t/Tensorflow/TensorFlow-1.13.1-fosscuda-2019a-Py-3.6.eb @@ -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'