Skip to content

make NVHPC a full toolchain with nvidia-compilers, NVHPCX, NVBLAS, and NVScaLAPACK#4927

Merged
boegel merged 12 commits intoeasybuilders:developfrom
lexming:nvhpc
Dec 14, 2025
Merged

make NVHPC a full toolchain with nvidia-compilers, NVHPCX, NVBLAS, and NVScaLAPACK#4927
boegel merged 12 commits intoeasybuilders:developfrom
lexming:nvhpc

Conversation

@lexming
Copy link
Contributor

@lexming lexming commented Jun 18, 2025

Fixes #4853

Enhance NVHPC to be a full toolchain:

  • compilers provided by new nvidia-compilers subtoolchain
    • equivalent to current NVHPC
    • nvidia-compilers will have their own easyconfigs
  • mpi provided by new NVHPCX subtoolchain
    • NVHPCX is bundled in NVHPC so it will not exist with their own easyconfigs
  • linalg provided by new NVBLAS subtoolchain
    • NVBLAS is bundled in NVHPC so it will not exist with their own easyconfigs

I also added some extra features related to NVHPC:

  • cuda_compute_capabilities can be defined from environment variable $EBNVHPCCUDACC: this environment variable can be set by nvidia-compilers or NVHPC if they are installed with a given cuda_compute_capabilities, avoiding the need to manually set cuda_compute_capabilities for every installation in that toolchain.
  • CUDA templates (e.g. %(cudaver)s) will be defined from environment variable $EBNVHPCCUDAVER: this environment variable will be set by nvidia-compilers or NVHPC, allowing to use those templates in all easyconfigs in the toolchain without having to depend on CUDA.
  • new template %(cuda_cc_nvhpc)s for CUDA compute capabilities with the format expected by NVHPC

@lexming
Copy link
Contributor Author

lexming commented Jul 25, 2025

adammccartney added a commit to adammccartney/easybuild-easyconfigs that referenced this pull request Oct 31, 2025
Based on [easybuilders#23125](easybuilders#23125),
this tries out one possible variation of an easyconfig for the
nvidia-compilers. This is to make the module compatible with the
defaults in EESSI/2023.06. It swaps out the SYSTEM toolchain for
GCCcore-13.2.0 and uses that same gcccore version in the other deps.
Also default to CUDA-12.4.

Requires:
+ easybuilders/easybuild-easyblocks#3788
+ easybuilders/easybuild-framework#4927
adammccartney added a commit to adammccartney/easybuild-easyconfigs that referenced this pull request Oct 31, 2025
Based on [easybuilders#23125](easybuilders#23125),
this tries out one possible variation of an easyconfig for the
nvidia-compilers. This is to make the module compatible with the
defaults in EESSI/2023.06. It swaps out the SYSTEM toolchain for
GCCcore-13.2.0 and uses that same gcccore version in the other deps.
Also default to CUDA-12.4.

Requires:
+ easybuilders/easybuild-easyblocks#3788
+ easybuilders/easybuild-framework#4927
adammccartney added a commit to adammccartney/easybuild-easyconfigs that referenced this pull request Oct 31, 2025
Based on [easybuilders#23125](easybuilders#23125),
this tries out one possible variation of an easyconfig for the
nvidia-compilers. This is to make the module compatible with the
defaults in EESSI/2023.06. It swaps out the SYSTEM toolchain for
GCCcore-13.2.0 and uses that same gcccore version in the other deps.
Also default to CUDA-12.4.

Requires:
+ easybuilders/easybuild-easyblocks#3788
+ easybuilders/easybuild-framework#4927
adammccartney added a commit to adammccartney/easybuild-easyconfigs that referenced this pull request Oct 31, 2025
Based on [easybuilders#23125](easybuilders#23125),
this tries out one possible variation of an easyconfig for the
nvidia-compilers. This is to make the module compatible with the
defaults in EESSI/2023.06. It swaps out the SYSTEM toolchain for
GCCcore-13.2.0 and uses that same gcccore version in the other deps.
Also default to CUDA-12.4.

Requires:
+ easybuilders/easybuild-easyblocks#3788
+ easybuilders/easybuild-framework#4927
adammccartney added a commit to adammccartney/easybuild-easyconfigs that referenced this pull request Oct 31, 2025
Based on [easybuilders#23125](easybuilders#23125),
this tries out one possible variation of an easyconfig for the
nvidia-compilers. This is to make the module compatible with the
defaults in EESSI/2023.06. It swaps out the SYSTEM toolchain for
GCCcore-13.2.0 and uses that same gcccore version in the other deps.
Also default to CUDA-12.4.

Requires:
+ easybuilders/easybuild-easyblocks#3788
+ easybuilders/easybuild-framework#4927
adammccartney added a commit to adammccartney/easybuild-easyconfigs that referenced this pull request Nov 1, 2025
Based on [easybuilders#23125](easybuilders#23125),
this tries out one possible variation of an easyconfig for the
nvidia-compilers. This is to make the module compatible with the
defaults in EESSI/2023.06. It swaps out the SYSTEM toolchain for
GCCcore-13.2.0 and uses that same gcccore version in the other deps.
Also default to CUDA-12.4.

Requires:
+ easybuilders/easybuild-easyblocks#3788
+ easybuilders/easybuild-framework#4927
adammccartney added a commit to adammccartney/easybuild-easyconfigs that referenced this pull request Nov 1, 2025
Based on [easybuilders#23125](easybuilders#23125),
this tries out one possible variation of an easyconfig for the
nvidia-compilers. This is to make the module compatible with the
defaults in EESSI/2023.06. It swaps out the SYSTEM toolchain for
GCCcore-13.2.0 and uses that same gcccore version in the other deps.
Also default to CUDA-12.4.

Requires:
+ easybuilders/easybuild-easyblocks#3788
+ easybuilders/easybuild-framework#4927
adammccartney added a commit to adammccartney/easybuild-easyconfigs that referenced this pull request Nov 1, 2025
    Based on [easybuilders#23125](easybuilders#23125),
    this tries out one possible variation of an easyconfig for the NVHPC
    toolchain. The nvidia-compilers dependency also uses the
    GCCcore-13.2.0 toolchain.

    This is to make the module compatible with the defaults in
    EESSI/2023.06. It swaps out the SYSTEM toolchain for GCCcore-13.2.0
    and uses that same gcccore version in the other deps.  Also default
    to CUDA-12.4.

    Requires:
    + easybuilders/easybuild-easyblocks#3788
    + easybuilders/easybuild-framework#4927
adammccartney added a commit to adammccartney/easybuild-easyconfigs that referenced this pull request Nov 3, 2025
Based on [easybuilders#23125](easybuilders#23125),
this tries out one possible variation of an easyconfig for the
nvidia-compilers. This is to make the module compatible with the
defaults in EESSI/2023.06. It swaps out the SYSTEM toolchain for
GCCcore-13.2.0 and uses that same gcccore version in the other deps.
Also default to CUDA-12.4.

Requires:
+ easybuilders/easybuild-easyblocks#3788
+ easybuilders/easybuild-framework#4927
adammccartney added a commit to adammccartney/easybuild-easyconfigs that referenced this pull request Nov 3, 2025
    Based on [easybuilders#23125](easybuilders#23125),
    this tries out one possible variation of an easyconfig for the NVHPC
    toolchain. The nvidia-compilers dependency also uses the
    GCCcore-13.2.0 toolchain.

    This is to make the module compatible with the defaults in
    EESSI/2023.06. It swaps out the SYSTEM toolchain for GCCcore-13.2.0
    and uses that same gcccore version in the other deps.  Also default
    to CUDA-12.4.

    Requires:
    + easybuilders/easybuild-easyblocks#3788
    + easybuilders/easybuild-framework#4927
adammccartney added a commit to adammccartney/easybuild-easyconfigs that referenced this pull request Nov 3, 2025
Based on [easybuilders#23125](easybuilders#23125),
this tries out one possible variation of an easyconfig for the
nvidia-compilers. This is to make the module compatible with the
defaults in EESSI/2023.06. It swaps out the SYSTEM toolchain for
GCCcore-13.2.0 and uses that same gcccore version in the other deps.
Also default to CUDA-12.9.0.

Requires:
+ easybuilders/easybuild-easyblocks#3788
+ easybuilders/easybuild-framework#4927
adammccartney added a commit to adammccartney/easybuild-easyconfigs that referenced this pull request Nov 3, 2025
    Based on [easybuilders#23125](easybuilders#23125),
    this tries out one possible variation of an easyconfig for the NVHPC
    toolchain. The nvidia-compilers dependency also uses the
    GCCcore-13.2.0 toolchain.

    This is to make the module compatible with the defaults in
    EESSI/2023.06. It swaps out the SYSTEM toolchain for GCCcore-13.2.0
    and uses that same gcccore version in the other deps.  Also default
    to CUDA-12.9.0.

    Requires:
    + easybuilders/easybuild-easyblocks#3788
    + easybuilders/easybuild-framework#4927
adammccartney added a commit to adammccartney/easybuild-easyconfigs that referenced this pull request Nov 3, 2025
Based on [easybuilders#23125](easybuilders#23125),
this tries out one possible variation of an easyconfig for the
nvidia-compilers. This is to make the module compatible with the
defaults in EESSI/2023.06. It swaps out the SYSTEM toolchain for
GCCcore-13.2.0 and uses that same gcccore version in the other deps.
Also default to CUDA-12.9.0.

Requires:
+ easybuilders/easybuild-easyblocks#3788
+ easybuilders/easybuild-framework#4927
adammccartney added a commit to adammccartney/easybuild-easyconfigs that referenced this pull request Nov 3, 2025
    Based on [easybuilders#23125](easybuilders#23125),
    this tries out one possible variation of an easyconfig for the NVHPC
    toolchain. The nvidia-compilers dependency also uses the
    GCCcore-13.2.0 toolchain.

    This is to make the module compatible with the defaults in
    EESSI/2023.06. It swaps out the SYSTEM toolchain for GCCcore-13.2.0
    and uses that same gcccore version in the other deps.  Also default
    to CUDA-12.9.0.

    Requires:
    + easybuilders/easybuild-easyblocks#3788
    + easybuilders/easybuild-framework#4927
adammccartney added a commit to adammccartney/easybuild-easyconfigs that referenced this pull request Nov 6, 2025
    Based on [easybuilders#23125](easybuilders#23125),
    this tries out one possible variation of an easyconfig for the NVHPC
    toolchain. The nvidia-compilers dependency also uses the
    GCCcore-13.2.0 toolchain.

    This is to make the module compatible with the defaults in
    EESSI/2023.06. It swaps out the SYSTEM toolchain for GCCcore-13.2.0
    and uses that same gcccore version in the other deps.  Also default
    to CUDA-12.9.0.

    Requires:
    + easybuilders/easybuild-easyblocks#3788
    + easybuilders/easybuild-framework#4927
adammccartney added a commit to adammccartney/easybuild-easyconfigs that referenced this pull request Nov 6, 2025
Based on [easybuilders#23125](easybuilders#23125),
this tries out one possible variation of an easyconfig for the
nvidia-compilers. This is to make the module compatible with the
defaults in EESSI/2023.06. It swaps out the SYSTEM toolchain for
GCCcore-13.2.0 and uses that same gcccore version in the other deps.
Also default to CUDA-12.9.0.

Requires:
+ easybuilders/easybuild-easyblocks#3788
+ easybuilders/easybuild-framework#4927
adammccartney added a commit to adammccartney/easybuild-easyconfigs that referenced this pull request Nov 6, 2025
    Based on [easybuilders#23125](easybuilders#23125),
    this tries out one possible variation of an easyconfig for the NVHPC
    toolchain. The nvidia-compilers dependency also uses the
    GCCcore-13.2.0 toolchain.

    This is to make the module compatible with the defaults in
    EESSI/2023.06. It swaps out the SYSTEM toolchain for GCCcore-13.2.0
    and uses that same gcccore version in the other deps.  Also default
    to CUDA-12.9.0.

    Requires:
    + easybuilders/easybuild-easyblocks#3788
    + easybuilders/easybuild-framework#4927
adammccartney added a commit to adammccartney/easybuild-easyconfigs that referenced this pull request Nov 6, 2025
… v6.5.0

Minor modifications to the easyconfig for nvidia-compilers and NVHPC, so
they build on EESSI. Otherwise much the same as
<github.com/easybuilders/pull/23188>

Requires:
    + easybuilders/easybuild-easyblocks#3788
    + easybuilders/easybuild-framework#4927
adammccartney added a commit to adammccartney/easybuild-easyconfigs that referenced this pull request Nov 6, 2025
Based on
[easybuilders#23125](easybuilders#23125),
this tries out one possible variation of an easyconfig for the
nvidia-compilers. This is to make the module compatible with the
defaults in EESSI/2023.06. It sets local_gccver to GCCcore-13.2.0
for compatibility with numactl and binutils from EESSI/2023.06.

Requires:
+ easybuilders/easybuild-easyblocks#3788
+ easybuilders/easybuild-framework#4927
adammccartney added a commit to adammccartney/easybuild-easyconfigs that referenced this pull request Nov 6, 2025
… v6.5.0

Minor modifications to the easyconfig for nvidia-compilers and NVHPC, so
they build on EESSI. Otherwise much the same as
<github.com/easybuilders/pull/23188>

Requires:
    + easybuilders/easybuild-easyblocks#3788
    + easybuilders/easybuild-framework#4927
@lexming
Copy link
Contributor Author

lexming commented Nov 21, 2025

@boegel
Copy link
Member

boegel commented Dec 10, 2025

@lexming please merge to use -nomp option when openmp toolchain option is not enabled (includes sync with develop):

use `-nomp` compiler option when OpenMP toolchain option is not enabled when using NVIDIA compilers (+ sync with `develop`)
@lexming
Copy link
Contributor Author

lexming commented Dec 10, 2025

@boegel merged, thanks!

Copy link
Member

@boegel boegel left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Provide a full toolchain purely based on NVHPC

2 participants