Skip to content

Commit

Permalink
nvhpc: deploy 23.1 with CUDA 11.8 (#1654)
Browse files Browse the repository at this point in the history
* neuron: deploy 9.0.a4 with fixes for NVHPC 23.1

* nmodl: deploy 0.5.c with fixes for NVHPC 23.1 and OpenMP offload

* nopackage: snowflake8

---------

Co-authored-by: Filippo Spiga <[email protected]>
Co-authored-by: Pramod Kumbhar <[email protected]>
Co-authored-by: Andrew W Elble <[email protected]>
Co-authored-by: Ioannis Magkanaris <[email protected]>
  • Loading branch information
5 people committed Feb 23, 2023
1 parent b53c488 commit 688e240
Show file tree
Hide file tree
Showing 7 changed files with 52 additions and 10 deletions.
6 changes: 3 additions & 3 deletions bluebrain/deployment/environments/externals.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -75,8 +75,8 @@ spack:
- [email protected]
- [email protected]
- [email protected]
- [email protected]
- [email protected]
- [email protected]
- arm-forge
- apptainer
- bison
Expand All @@ -90,10 +90,10 @@ spack:
- [email protected]
# NVHPC 21.11 ships CUDA 11.5 (11.5.20211118 in version.json)
- [email protected]
# NVHPC 22.2 ships CUDA 11.6.0 (version.json)
- [email protected]
# NVHPC 22.3 ships CUDA 11.6.1 (version.json)
- [email protected]
# NVHPC 22.11 ship CUDA 11.8.0 (version.json)
- [email protected]
- [email protected]
- darshan-runtime
- darshan-util
Expand Down
1 change: 1 addition & 0 deletions bluebrain/repo-bluebrain/packages/nmodl/package.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ class Nmodl(CMakePackage):
# 0.3.1 > 0.3.0.20220110 > 0.3.0 > 0.3b > 0.3 to Spack
version("develop", branch="master", submodules=True)
version("llvm", branch="llvm", submodules=True)
version("0.5.c", commit="c3b0736")
version("0.5.b", commit="243453d")
version("0.5.a", commit="94cba1c")
version("0.4.0", tag="0.4")
Expand Down
1 change: 1 addition & 0 deletions bluebrain/repo-patches/packages/neuron/package.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ class Neuron(CMakePackage):
patch("patch-v800-cmake-nvhpc.patch", when="@8.0.0%nvhpc^[email protected]:")

version("develop", branch="master")
version("9.0.a4", commit="de2c927")
version("9.0.a3", commit="afce1ef")
version("9.0.a2", commit="89f7dab")
version("9.0.a1", commit="b3c4b4f")
Expand Down
2 changes: 1 addition & 1 deletion bluebrain/sysconfig/bluebrain5/packages.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ packages:
version: [3.21.4]
cuda:
# Should match what is provided by NVHPC, too
version: [11.6.1]
version: [11.8.0]
curl:
version: [7.29.0]
externals:
Expand Down
13 changes: 10 additions & 3 deletions lib/spack/spack/build_systems/cuda.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,8 @@ class CudaPackage(PackageBase):
'50', '52', '53',
'60', '61', '62',
'70', '72', '75',
'80', '86'
'80', '86', '87',
'89', '90'
)

# FIXME: keep cuda and cuda_arch separate to make usage easier until
Expand Down Expand Up @@ -80,6 +81,11 @@ def cuda_flags(arch_list):
depends_on('[email protected]:', when='cuda_arch=80')
depends_on('[email protected]:', when='cuda_arch=86')

depends_on("[email protected]:", when="cuda_arch=87")

depends_on("[email protected]:", when="cuda_arch=89")
depends_on("[email protected]:", when="cuda_arch=90")

# From the NVIDIA install guide we know of conflicts for particular
# platforms (linux, darwin), architectures (x86, powerpc) and compilers
# (gcc, clang). We don't restrict %gcc and %clang conflicts to
Expand Down Expand Up @@ -107,10 +113,11 @@ def cuda_flags(arch_list):
# each release of a new cuda minor version.
conflicts('%gcc@10:', when='+cuda ^cuda@:11.0')
conflicts('%gcc@11:', when='+cuda ^cuda@:11.4.0')
conflicts('%gcc@12:', when='+cuda ^cuda@:11.6')
conflicts("%gcc@12:", when="+cuda ^cuda@:11.8")
conflicts('%clang@12:', when='+cuda ^cuda@:11.4.0')
conflicts('%clang@13:', when='+cuda ^cuda@:11.5')
conflicts('%clang@14:', when='+cuda ^cuda@:11.6')
conflicts('%clang@14:', when='+cuda ^cuda@:11.7')
conflicts("%clang@15:", when="+cuda ^cuda@:11.8")

# https://gist.github.com/ax3l/9489132#gistcomment-3860114
conflicts('%gcc@10', when='+cuda ^cuda@:11.4.0')
Expand Down
15 changes: 14 additions & 1 deletion var/spack/repos/builtin/packages/cuda/package.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,14 @@
# format returned by platform.system() and 'arch' by platform.machine()

_versions = {
"11.8.0": {
"Linux-aarch64": ("e6e9a8d31163c9776b5e313fd7590877c5684e1ecddee741154f95704d4ed27c", "https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda_11.8.0_520.61.05_linux_sbsa.run"),
"Linux-x86_64": ("9223c4af3aebe4a7bbed9abd9b163b03a1b34b855fbc2b4a0d1b706ac09a5a16", "https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda_11.8.0_520.61.05_linux.run"),
"Linux-ppc64le": ("f917fb7617033223938543ad3ae923190d99507acc08a399d752a2868e87349d", "https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda_11.8.0_520.61.05_linux_ppc64le.run")},
'11.7.0': {
'Linux-aarch64': ('e777839a618ca9a3d5ad42ded43a1b6392af2321a7327635a4afcc986876a21b', 'https://developer.download.nvidia.com/compute/cuda/11.7.0/local_installers/cuda_11.7.0_515.43.04_linux_sbsa.run'),
'Linux-x86_64': ('087fdfcbba1f79543b1f78e43a8dfdac5f6db242d042dde820e16dc185892f26', 'https://developer.download.nvidia.com/compute/cuda/11.7.0/local_installers/cuda_11.7.0_515.43.04_linux.run'),
'Linux-ppc64le': ('74a507ac54067c258e6b7c9063c98d411116ecc5c5397b1f6e6a999e86dff08a', 'https://developer.download.nvidia.com/compute/cuda/11.7.0/local_installers/cuda_11.7.0_515.43.04_linux_ppc64le.run')},
'11.6.2': {
'Linux-aarch64': ('b20c014c6bba36b13c50da167ad42e9bd1cea24f3b6297b495ea129c0889f36e', 'https://developer.download.nvidia.com/compute/cuda/11.6.2/local_installers/cuda_11.6.2_510.47.03_linux_sbsa.run'),
'Linux-x86_64': ('99b7a73dcc52a52cef4c1fceb4a60c3015ac9b6404082c1677d9efdaba1d4593', 'https://developer.download.nvidia.com/compute/cuda/11.6.2/local_installers/cuda_11.6.2_510.47.03_linux.run'),
Expand Down Expand Up @@ -124,7 +132,7 @@
'6.5.14': {
'Linux-x86_64': ('f3e527f34f317314fe8fcd8c85f10560729069298c0f73105ba89225db69da48', 'https://developer.download.nvidia.com/compute/cuda/6_5/rel/installers/cuda_6.5.14_linux_64.run')},
'6.0.37': {
'Linux-x86_64': ('991e436c7a6c94ec67cf44204d136adfef87baa3ded270544fa211179779bc40', '//developer.download.nvidia.com/compute/cuda/6_0/rel/installers/cuda_6.0.37_linux_64.run')},
'Linux-x86_64': ('991e436c7a6c94ec67cf44204d136adfef87baa3ded270544fa211179779bc40', 'https://developer.download.nvidia.com/compute/cuda/6_0/rel/installers/cuda_6.0.37_linux_64.run')},
}


Expand Down Expand Up @@ -243,6 +251,11 @@ def install(self, spec, prefix):
'--toolkit', # install CUDA Toolkit
]

if spec.satisfies('@7:'):
# use stage dir instead of /tmp
mkdir(join_path(self.stage.path, 'tmp'))
arguments.append('--tmpdir=%s' % join_path(self.stage.path, 'tmp'))

if spec.satisfies('@10.1:'):
arguments.append('--installpath=%s' % prefix) # Where to install
else:
Expand Down
24 changes: 22 additions & 2 deletions var/spack/repos/builtin/packages/nvhpc/package.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,26 @@
# - package key must be in the form '{os}-{arch}' where 'os' is in the
# format returned by platform.system() and 'arch' by platform.machine()
_versions = {
"23.1": {
"Linux-aarch64": ("5b430e03752954ea62ac1c745b1735cfdaa43b2e981a9412c1465ecb0412fff6", "https://developer.download.nvidia.com/hpc-sdk/23.1/nvhpc_2023_231_Linux_aarch64_cuda_multi.tar.gz"),
"Linux-ppc64le": ("81759e7c747bf4f552b75e7657301f76ecc0828b94fe860f81108c6e83e6ad2b", "https://developer.download.nvidia.com/hpc-sdk/23.1/nvhpc_2023_231_Linux_ppc64le_cuda_multi.tar.gz"),
"Linux-x86_64": ("55a064415f6d4ce6a01823ee27ebd266f4fb579679871e7c1a7c054bdc18e9f5", "https://developer.download.nvidia.com/hpc-sdk/23.1/nvhpc_2023_231_Linux_x86_64_cuda_multi.tar.gz")},
"22.11": {
"Linux-aarch64": ("e60e798657c33b06754d33dfd5ab3bea2882d4a9b9476102303edf2bbe3b7a95", "https://developer.download.nvidia.com/hpc-sdk/22.11/nvhpc_2022_2211_Linux_aarch64_cuda_multi.tar.gz"),
"Linux-ppc64le": ("ef800203cf6040b3a5df24f19944b272f62caee8362875bcb394e86dc1de2353", "https://developer.download.nvidia.com/hpc-sdk/22.11/nvhpc_2022_2211_Linux_ppc64le_cuda_multi.tar.gz"),
"Linux-x86_64": ("cb91b3a04368457d5cfe3c0e9c0611591fdc8076b01ea977343fe7db7fdcfa3c", "https://developer.download.nvidia.com/hpc-sdk/22.11/nvhpc_2022_2211_Linux_x86_64_cuda_multi.tar.gz")},
"22.9": {
"Linux-aarch64": ("bc4473f04b49bc9a26f08c17a72360650ddf48a3b6eefacdc525d79c8d730f30", "https://developer.download.nvidia.com/hpc-sdk/22.9/nvhpc_2022_229_Linux_aarch64_cuda_multi.tar.gz"),
"Linux-ppc64le": ("9aac31d36bb09f6653544978021f5b78c272112e7748871566f7e930f5e7475b", "https://developer.download.nvidia.com/hpc-sdk/22.9/nvhpc_2022_229_Linux_ppc64le_cuda_multi.tar.gz"),
"Linux-x86_64": ("aebfeb826ace3dabf9699f72390ca0340f8789a8ef6fe4032e3c7b794f073ea3", "https://developer.download.nvidia.com/hpc-sdk/22.9/nvhpc_2022_229_Linux_x86_64_cuda_multi.tar.gz")},
'22.7': {
'Linux-aarch64': ('2aae3fbfd2d0d2d09448a36166c42311368f5600c7c346f159c280b412fe924a', 'https://developer.download.nvidia.com/hpc-sdk/22.7/nvhpc_2022_227_Linux_aarch64_cuda_multi.tar.gz'),
'Linux-ppc64le': ('6dd4fd382c22769e4fa9508714119abd7d1df3dc58c69414a14b0b0dbc34564f', 'https://developer.download.nvidia.com/hpc-sdk/22.7/nvhpc_2022_227_Linux_ppc64le_cuda_multi.tar.gz'),
'Linux-x86_64': ('3ce1c346f8bc7e50defb41c545c8907fdc012ff60b27eb8985cf3213f19d863a', 'https://developer.download.nvidia.com/hpc-sdk/22.7/nvhpc_2022_227_Linux_x86_64_cuda_multi.tar.gz')},
'22.5': {
'Linux-aarch64': ('ceeee84e6227e973ad1beded6008d330e3790f7c4598b948fa530fedfa830a16', 'https://developer.download.nvidia.com/hpc-sdk/22.5/nvhpc_2022_225_Linux_aarch64_cuda_multi.tar.gz'),
'Linux-ppc64le': ('54d1e45664352d0f9f85ab476dd39496dd1b290e0e1221d3bf63afb940dbe16d', 'https://developer.download.nvidia.com/hpc-sdk/22.5/nvhpc_2022_225_Linux_ppc64le_cuda_multi.tar.gz'),
'Linux-x86_64': ('7674bcf7a77570fafee5b8299959c9e998a9a10bb27904335cf1a58b71766137', 'https://developer.download.nvidia.com/hpc-sdk/22.5/nvhpc_2022_225_Linux_x86_64_cuda_multi.tar.gz')},
'22.3': {
'Linux-aarch64': ('e0ea1cbb726556f6879f4b5dfe17238f8e7680c772368577945a85c0e08328f0', 'https://developer.download.nvidia.com/hpc-sdk/22.3/nvhpc_2022_223_Linux_aarch64_cuda_multi.tar.gz'),
'Linux-ppc64le': ('5e80db6010adc85fe799dac961ae69e43fdf18d35243666c96a70ecdb80bd280', 'https://developer.download.nvidia.com/hpc-sdk/22.3/nvhpc_2022_223_Linux_ppc64le_cuda_multi.tar.gz'),
Expand Down Expand Up @@ -176,10 +196,10 @@ def setup_dependent_package(self, module, dependent_spec):
'Linux_%s' % self.spec.target.family,
self.version, 'comm_libs', 'mpi'))

self.spec.mpicc = join_path(mpi_prefix.bin, 'mpicc')
self.spec.mpicc = join_path(mpi_prefix.bin, 'mpicc')
self.spec.mpicxx = join_path(mpi_prefix.bin, 'mpicxx')
self.spec.mpif77 = join_path(mpi_prefix.bin, 'mpif77')
self.spec.mpifc = join_path(mpi_prefix.bin, 'mpif90')
self.spec.mpifc = join_path(mpi_prefix.bin, 'mpif90')

@property
def libs(self):
Expand Down

0 comments on commit 688e240

Please sign in to comment.