From bc44a27ced0825a2224c58a1a150e364daf52e18 Mon Sep 17 00:00:00 2001 From: Ake Sandgren Date: Thu, 17 Oct 2019 16:16:12 +0200 Subject: [PATCH 1/5] Adjust fosscuda/2019b and gcccuda/2019b so it works with HMNS. Still need to have CUDA at Compiler level to get it to change MODULEPATH to Compiler/GCC-CUDA --- .../c/CUDA/CUDA-10.1.243-GCCcore-8.3.0.eb | 19 +++++++++++++++++++ .../easyconfigs/f/fosscuda/fosscuda-2019b.eb | 3 +-- .../easyconfigs/g/gcccuda/gcccuda-2019b.eb | 6 ++++-- 3 files changed, 24 insertions(+), 4 deletions(-) create mode 100644 easybuild/easyconfigs/c/CUDA/CUDA-10.1.243-GCCcore-8.3.0.eb diff --git a/easybuild/easyconfigs/c/CUDA/CUDA-10.1.243-GCCcore-8.3.0.eb b/easybuild/easyconfigs/c/CUDA/CUDA-10.1.243-GCCcore-8.3.0.eb new file mode 100644 index 00000000000..e19456787c0 --- /dev/null +++ b/easybuild/easyconfigs/c/CUDA/CUDA-10.1.243-GCCcore-8.3.0.eb @@ -0,0 +1,19 @@ +# Contribution from the Crick HPC team +# uploaded by J. Sassmannshausen + +name = 'CUDA' +version = '10.1.243' + +homepage = 'https://developer.nvidia.com/cuda-toolkit' +description = """CUDA (formerly Compute Unified Device Architecture) is a parallel + computing platform and programming model created by NVIDIA and implemented by the + graphics processing units (GPUs) that they produce. CUDA gives developers access + to the virtual instruction set and memory of the parallel computational elements in CUDA GPUs.""" + +toolchain = {'name': 'GCCcore', 'version': '8.3.0'} + +source_urls = ['https://developer.download.nvidia.com/compute/cuda/%(version_major_minor)s/Prod/local_installers/'] +sources = ['%(namelower)s_%(version)s_418.87.00_linux.run'] +checksums = ['e7c22dc21278eb1b82f34a60ad7640b41ad3943d929bebda3008b72536855d31'] + +moduleclass = 'system' diff --git a/easybuild/easyconfigs/f/fosscuda/fosscuda-2019b.eb b/easybuild/easyconfigs/f/fosscuda/fosscuda-2019b.eb index 054779f5250..e601ff8e9c8 100644 --- a/easybuild/easyconfigs/f/fosscuda/fosscuda-2019b.eb +++ b/easybuild/easyconfigs/f/fosscuda/fosscuda-2019b.eb @@ -18,9 +18,8 @@ local_comp_mpi_tc = ('gompic', version) # We need GCC, CUDA and OpenMPI as explicit dependencies instead of # gompic toolchain because of toolchain preperation functions. dependencies = [ - ('GCC', local_gccver), # part of gompic + ('gcccuda', version), # part of gompic ('OpenMPI', '3.1.4', '', ('gcccuda', version)), # part of gompic - ('CUDA', '10.1.243', '', True), ('OpenBLAS', '0.3.7', '', ('GCC', local_gccver)), ('FFTW', '3.3.8', '', local_comp_mpi_tc), ('ScaLAPACK', '2.0.2', '', local_comp_mpi_tc), diff --git a/easybuild/easyconfigs/g/gcccuda/gcccuda-2019b.eb b/easybuild/easyconfigs/g/gcccuda/gcccuda-2019b.eb index d7270fa5d18..72c68a37ffd 100644 --- a/easybuild/easyconfigs/g/gcccuda/gcccuda-2019b.eb +++ b/easybuild/easyconfigs/g/gcccuda/gcccuda-2019b.eb @@ -8,10 +8,12 @@ description = """GNU Compiler Collection (GCC) based compiler toolchain, along w toolchain = SYSTEM +local_gcc_version = '8.3.0' + # compiler toolchain dependencies dependencies = [ - ('GCC', '8.3.0'), - ('CUDA', '10.1.243', '', True), + ('GCC', local_gcc_version), + ('CUDA', '10.1.243', '', ('GCCcore', local_gcc_version)), ] moduleclass = 'toolchain' From 29bbf67bef6e90f7552d5f6c96487ababf0f92f9 Mon Sep 17 00:00:00 2001 From: Ake Sandgren Date: Thu, 17 Oct 2019 16:38:00 +0200 Subject: [PATCH 2/5] Also need to use CUDA at Compiler level in gompic --- easybuild/easyconfigs/g/gompic/gompic-2019b.eb | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/easybuild/easyconfigs/g/gompic/gompic-2019b.eb b/easybuild/easyconfigs/g/gompic/gompic-2019b.eb index 93812130b39..cb06a6fea18 100644 --- a/easybuild/easyconfigs/g/gompic/gompic-2019b.eb +++ b/easybuild/easyconfigs/g/gompic/gompic-2019b.eb @@ -13,9 +13,8 @@ local_gccver = '8.3.0' # compiler toolchain dependencies dependencies = [ - ('GCC', local_gccver), # part of gcccuda + ('gcccuda', version), ('OpenMPI', '3.1.4', '', ('gcccuda', version)), - ('CUDA', '10.1.243', '', True), ] moduleclass = 'toolchain' From 6afebbf2aaec9cf33b9f42ddf6233110f082e38e Mon Sep 17 00:00:00 2001 From: Ake Sandgren Date: Thu, 17 Oct 2019 17:03:52 +0200 Subject: [PATCH 3/5] GCC and CUDA must be explicit dependencies.... the comment even says so. --- easybuild/easyconfigs/f/fosscuda/fosscuda-2019b.eb | 3 ++- easybuild/easyconfigs/g/gompic/gompic-2019b.eb | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/easybuild/easyconfigs/f/fosscuda/fosscuda-2019b.eb b/easybuild/easyconfigs/f/fosscuda/fosscuda-2019b.eb index e601ff8e9c8..1450156df3a 100644 --- a/easybuild/easyconfigs/f/fosscuda/fosscuda-2019b.eb +++ b/easybuild/easyconfigs/f/fosscuda/fosscuda-2019b.eb @@ -18,7 +18,8 @@ local_comp_mpi_tc = ('gompic', version) # We need GCC, CUDA and OpenMPI as explicit dependencies instead of # gompic toolchain because of toolchain preperation functions. dependencies = [ - ('gcccuda', version), # part of gompic + ('GCC', local_gccver), # part of gompic + ('CUDA', '10.1.243', '', ('GCCcore', local_gccver)), # part of gompic ('OpenMPI', '3.1.4', '', ('gcccuda', version)), # part of gompic ('OpenBLAS', '0.3.7', '', ('GCC', local_gccver)), ('FFTW', '3.3.8', '', local_comp_mpi_tc), diff --git a/easybuild/easyconfigs/g/gompic/gompic-2019b.eb b/easybuild/easyconfigs/g/gompic/gompic-2019b.eb index cb06a6fea18..fdc5506b5c9 100644 --- a/easybuild/easyconfigs/g/gompic/gompic-2019b.eb +++ b/easybuild/easyconfigs/g/gompic/gompic-2019b.eb @@ -13,7 +13,8 @@ local_gccver = '8.3.0' # compiler toolchain dependencies dependencies = [ - ('gcccuda', version), + ('GCC', local_gccver), # part of gcccuda + ('CUDA', '10.1.243', '', ('GCCcore', local_gccver)), # part of gcccuda ('OpenMPI', '3.1.4', '', ('gcccuda', version)), ] From 1d27545d94d7ebd181761a917795b3ef851c5c7c Mon Sep 17 00:00:00 2001 From: Ake Sandgren Date: Thu, 17 Oct 2019 19:43:15 +0200 Subject: [PATCH 4/5] Forgot to add binutils as builddep to CUDA at GCCcore level --- easybuild/easyconfigs/c/CUDA/CUDA-10.1.243-GCCcore-8.3.0.eb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/easybuild/easyconfigs/c/CUDA/CUDA-10.1.243-GCCcore-8.3.0.eb b/easybuild/easyconfigs/c/CUDA/CUDA-10.1.243-GCCcore-8.3.0.eb index e19456787c0..958cb48c8f3 100644 --- a/easybuild/easyconfigs/c/CUDA/CUDA-10.1.243-GCCcore-8.3.0.eb +++ b/easybuild/easyconfigs/c/CUDA/CUDA-10.1.243-GCCcore-8.3.0.eb @@ -16,4 +16,6 @@ source_urls = ['https://developer.download.nvidia.com/compute/cuda/%(version_maj sources = ['%(namelower)s_%(version)s_418.87.00_linux.run'] checksums = ['e7c22dc21278eb1b82f34a60ad7640b41ad3943d929bebda3008b72536855d31'] +builddependencies = [('binutils', '2.32')] + moduleclass = 'system' From 3da64a2ddd0966c92011c31624e9ffef3c32adc9 Mon Sep 17 00:00:00 2001 From: Ake Sandgren Date: Tue, 12 Nov 2019 11:26:20 +0100 Subject: [PATCH 5/5] CUDA must reside at GCC (and iccifort for intelcuda) level. At GCCcore it won't work for intelcuda. --- ...A-10.1.243-GCCcore-8.3.0.eb => CUDA-10.1.243-GCC-8.3.0.eb} | 4 +--- easybuild/easyconfigs/f/fosscuda/fosscuda-2019b.eb | 2 +- easybuild/easyconfigs/g/gcccuda/gcccuda-2019b.eb | 2 +- easybuild/easyconfigs/g/gompic/gompic-2019b.eb | 2 +- 4 files changed, 4 insertions(+), 6 deletions(-) rename easybuild/easyconfigs/c/CUDA/{CUDA-10.1.243-GCCcore-8.3.0.eb => CUDA-10.1.243-GCC-8.3.0.eb} (89%) diff --git a/easybuild/easyconfigs/c/CUDA/CUDA-10.1.243-GCCcore-8.3.0.eb b/easybuild/easyconfigs/c/CUDA/CUDA-10.1.243-GCC-8.3.0.eb similarity index 89% rename from easybuild/easyconfigs/c/CUDA/CUDA-10.1.243-GCCcore-8.3.0.eb rename to easybuild/easyconfigs/c/CUDA/CUDA-10.1.243-GCC-8.3.0.eb index 958cb48c8f3..2bc8a66cbbf 100644 --- a/easybuild/easyconfigs/c/CUDA/CUDA-10.1.243-GCCcore-8.3.0.eb +++ b/easybuild/easyconfigs/c/CUDA/CUDA-10.1.243-GCC-8.3.0.eb @@ -10,12 +10,10 @@ description = """CUDA (formerly Compute Unified Device Architecture) is a parall graphics processing units (GPUs) that they produce. CUDA gives developers access to the virtual instruction set and memory of the parallel computational elements in CUDA GPUs.""" -toolchain = {'name': 'GCCcore', 'version': '8.3.0'} +toolchain = {'name': 'GCC', 'version': '8.3.0'} source_urls = ['https://developer.download.nvidia.com/compute/cuda/%(version_major_minor)s/Prod/local_installers/'] sources = ['%(namelower)s_%(version)s_418.87.00_linux.run'] checksums = ['e7c22dc21278eb1b82f34a60ad7640b41ad3943d929bebda3008b72536855d31'] -builddependencies = [('binutils', '2.32')] - moduleclass = 'system' diff --git a/easybuild/easyconfigs/f/fosscuda/fosscuda-2019b.eb b/easybuild/easyconfigs/f/fosscuda/fosscuda-2019b.eb index 1450156df3a..f4bafc1a8d8 100644 --- a/easybuild/easyconfigs/f/fosscuda/fosscuda-2019b.eb +++ b/easybuild/easyconfigs/f/fosscuda/fosscuda-2019b.eb @@ -19,7 +19,7 @@ local_comp_mpi_tc = ('gompic', version) # gompic toolchain because of toolchain preperation functions. dependencies = [ ('GCC', local_gccver), # part of gompic - ('CUDA', '10.1.243', '', ('GCCcore', local_gccver)), # part of gompic + ('CUDA', '10.1.243', '', ('GCC', local_gccver)), # part of gompic ('OpenMPI', '3.1.4', '', ('gcccuda', version)), # part of gompic ('OpenBLAS', '0.3.7', '', ('GCC', local_gccver)), ('FFTW', '3.3.8', '', local_comp_mpi_tc), diff --git a/easybuild/easyconfigs/g/gcccuda/gcccuda-2019b.eb b/easybuild/easyconfigs/g/gcccuda/gcccuda-2019b.eb index 72c68a37ffd..296f03f1ee8 100644 --- a/easybuild/easyconfigs/g/gcccuda/gcccuda-2019b.eb +++ b/easybuild/easyconfigs/g/gcccuda/gcccuda-2019b.eb @@ -13,7 +13,7 @@ local_gcc_version = '8.3.0' # compiler toolchain dependencies dependencies = [ ('GCC', local_gcc_version), - ('CUDA', '10.1.243', '', ('GCCcore', local_gcc_version)), + ('CUDA', '10.1.243', '', ('GCC', local_gcc_version)), ] moduleclass = 'toolchain' diff --git a/easybuild/easyconfigs/g/gompic/gompic-2019b.eb b/easybuild/easyconfigs/g/gompic/gompic-2019b.eb index fdc5506b5c9..ff5385f63a3 100644 --- a/easybuild/easyconfigs/g/gompic/gompic-2019b.eb +++ b/easybuild/easyconfigs/g/gompic/gompic-2019b.eb @@ -14,7 +14,7 @@ local_gccver = '8.3.0' # compiler toolchain dependencies dependencies = [ ('GCC', local_gccver), # part of gcccuda - ('CUDA', '10.1.243', '', ('GCCcore', local_gccver)), # part of gcccuda + ('CUDA', '10.1.243', '', ('GCC', local_gccver)), # part of gcccuda ('OpenMPI', '3.1.4', '', ('gcccuda', version)), ]