NVIDIA HPC SDK is a Comprehensive Suite of Compilers, Libraries and Tools for HPC The NVIDIA HPC Software Development Kit (SDK) includes the proven compilers, libraries and software tools essential to maximizing developer productivity and the performance and portability of HPC applications.

Note: nvhpc sdk also provides recent Portland compiler.

Information

Using NVHPC compilers

Some nvhpc n. Compilers can be invoked as (depending on available versions). The enviroment can be initialized with the module command. The modules, which are coming in three different variant, are plain copies of the modules provided by Nvidia. 

[elx]% module avail nvhpc
nvhpc/2020  nvhpc-byo-compiler/2020  nvhpc-nompi/2020

[elx]% module load nvhpc # likewise for nvcc, mpirun 
[elx]% which pgf90
/opt/nvhpc/2020/Linux_x86_64/20.9/compilers/bin/pgf90

The different variants of module files and corresponding environments:

  • nvhpc: full compiler suite including openmpi.
  • nvhpc-nompi: full compiler suite without adding any MPI installation to the environment
  • nvhpc-byo-compiler: "bring your own compiler", does not add PGI-compiler or MPI to the environment


Please note: unlike most other compilers, the PGI compilers will optimize the executable for the local hardware (sandybridge in the example above) - unless explicitly specified. This might be particularly confusing on virtual machines occasionally reporting the wrong CPU type. To produce a generic executable use flags like 

[elx]% CFLAGS="-tp=x64" FFLAGS="-tp=x64" CC=pgcc F77=pgf95 CXX=pgcc CCC=pgCC ./configure