@@ -49,13 +49,19 @@ class hpcx(bb_base, hpccm.templates.envvars, hpccm.templates.ldconfig,
4949 # Parameters
5050
5151 buildlabel: The build label assigned by Mellanox to the tarball.
52- For versions 2.17 and later, the default value is `cuda12`.
53- For version 2.16 the default value is `cuda12-gdrcopy2-nccl2.18`.
54- For version 2.15 the default value is `cuda12-gdrcopy2-nccl2.17`.
55- For version 2.14 the default value is `cuda11-gdrcopy2-nccl2.16`.
56- For versions 2.12 and 2.13 the default value is `cuda11-gdrcopy2-nccl2.12`.
57- For versions 2.10 and 2.11 the default value is `cuda11-gdrcopy2-nccl2.11`.
58- This value is ignored for HPC-X version 2.9 and earlier.
52+ For version 2.24 and later, the default value is the value of
53+ `cuda` parameter. For versions 2.17 through 2.23, the default
54+ value is `cuda12`. For version 2.16 the default value is
55+ `cuda12-gdrcopy2-nccl2.18`. For version 2.15 the default value is
56+ `cuda12-gdrcopy2-nccl2.17`. For version 2.14 the default value is
57+ `cuda11-gdrcopy2-nccl2.16`. For versions 2.12 and 2.13 the
58+ default value is `cuda11-gdrcopy2-nccl2.12`. For versions 2.10
59+ and 2.11 the default value is `cuda11-gdrcopy2-nccl2.11`. This
60+ value is ignored for HPC-X version version 2.9 and earlier.
61+
62+ cuda: The CUDA label assigned by Mellanox to the tarball. This
63+ parameter is only recognized for version 2.24 and later. The
64+ default value is `cuda13.`
5965
6066 environment: Boolean flag to specify whether the environment
6167 should be modified to include HPC-X. This option is only
@@ -102,12 +108,13 @@ class hpcx(bb_base, hpccm.templates.envvars, hpccm.templates.ldconfig,
102108 oslabel: The Linux distribution label assigned by Mellanox to the
103109 tarball. For Ubuntu, the default value is `ubuntu16.04` for
104110 Ubuntu 16.04, `ubuntu18.04` for Ubuntu 18.04, `ubuntu20.04` for
105- Ubuntu 20.04, and `ubuntu22.04` for Ubuntu 22.04. For HPC-X
106- version 2.10 and later and RHEL-based Linux distributions, the
107- default value is `redhat7` for version 7 and `redhat8` for version
108- 8. For HPC-X version 2.9 and earlier and RHEL-based Linux
109- distributions, the default value is `redhat7.6` for version 7 and
110- `redhat8.0` for version 8.
111+ Ubuntu 20.04, `ubuntu22.04` for Ubuntu 22.04, and `ubuntu24.04`
112+ for Ubuntu 24.04. For HPC-X version 2.10 and later and RHEL-based
113+ Linux distributions, the default value is `redhat7` for version 7,
114+ `redhat8` for version 8, and `redhat9` for version 9. For HPC-X
115+ version 2.9 and earlier and RHEL-based Linux distributions, the
116+ default value is `redhat7.6` for version 7 and `redhat8.0` for
117+ version 8.
111118
112119 ospackages: List of OS packages to install prior to installing
113120 Mellanox HPC-X. For Ubuntu, the default values are `bzip2`,
@@ -119,7 +126,7 @@ class hpcx(bb_base, hpccm.templates.envvars, hpccm.templates.ldconfig,
119126 `/usr/local/hpcx`.
120127
121128 version: The version of Mellanox HPC-X to install. The default
122- value is `2.22 .1`.
129+ value is `2.24 .1`.
123130
124131 # Examples
125132
@@ -139,6 +146,7 @@ def __init__(self, **kwargs):
139146 'https://content.mellanox.com/hpc/hpc-x' )
140147 self .__bashrc = '' # Filled in by __distro()
141148 self .__buildlabel = kwargs .get ('buildlabel' , None )
149+ self .__cuda = kwargs .get ('cuda' , 'cuda13' )
142150 self .__hpcxinit = kwargs .get ('hpcxinit' , True )
143151 self .__inbox = kwargs .get ('inbox' , False )
144152 self .__mlnx_ofed = kwargs .get ('mlnx_ofed' , None )
@@ -148,13 +156,15 @@ def __init__(self, **kwargs):
148156 self .__ospackages = kwargs .get ('ospackages' , []) # Filled in by _distro()
149157 self .__packages = kwargs .get ('packages' , [])
150158 self .__prefix = kwargs .get ('prefix' , '/usr/local/hpcx' )
151- self .__version = kwargs .get ('version' , '2.22 .1' )
159+ self .__version = kwargs .get ('version' , '2.24 .1' )
152160
153161 self .__commands = [] # Filled in by __setup()
154162 self .__wd = kwargs .get ('wd' , hpccm .config .g_wd ) # working directory
155163
156164 if not self .__buildlabel :
157- if Version (self .__version ) >= Version ('2.17' ):
165+ if Version (self .__version ) >= Version ('2.24' ):
166+ self .__buildlabel = self .__cuda
167+ elif Version (self .__version ) >= Version ('2.17' ):
158168 self .__buildlabel = 'cuda12'
159169 elif Version (self .__version ) >= Version ('2.16' ):
160170 self .__buildlabel = 'cuda12-gdrcopy2-nccl2.18'
@@ -251,16 +261,20 @@ def __setup(self):
251261 """Construct the series of shell commands, i.e., fill in
252262 self.__commands"""
253263
254- # For version 2.8 and earlier, the download URL has the format
255- # MAJOR.MINOR in the path and the tarball contains
256- # MAJOR.MINOR.REVISION, so pull apart the full version to get
257- # the individual components.
258- version_string = self .__version
259- if Version (self .__version ) <= Version ('2.8' ):
264+ version_dirstring = self .__version
265+ if Version (self .__version ) >= Version ('2.24' ):
266+ # For version 2.24 and later, the download URL has the CUDA
267+ # version appended to the directory name.
268+ version_dirstring += '_{0}' .format (self .__cuda )
269+ elif Version (self .__version ) <= Version ('2.8' ):
270+ # For version 2.8 and earlier, the download URL has the format
271+ # MAJOR.MINOR in the path and the tarball contains
272+ # MAJOR.MINOR.REVISION, so pull apart the full version to get
273+ # the individual components.
260274 match = re .match (r'(?P<major>\d+)\.(?P<minor>\d+)\.(?P<revision>\d+)' ,
261275 self .__version )
262- version_string = '{0}.{1}' .format (match .groupdict ()['major' ],
263- match .groupdict ()['minor' ])
276+ version_dirstring = '{0}.{1}' .format (match .groupdict ()['major' ],
277+ match .groupdict ()['minor' ])
264278
265279 if self .__inbox :
266280 # Use inbox OFED
@@ -283,7 +297,7 @@ def __setup(self):
283297 self .__version , self .__ofedlabel , self .__oslabel , self .__arch )
284298
285299 tarball = self .__label + '.tbz'
286- url = '{0}/v{1}/{2}' .format (self .__baseurl , version_string , tarball )
300+ url = '{0}/v{1}/{2}' .format (self .__baseurl , version_dirstring , tarball )
287301
288302 # Download source from web
289303 self .__commands .append (self .download_step (url = url , directory = self .__wd ))
0 commit comments