Install Nvidia HPC C, C++, Fortran compilers
The free-to-use Nvidia HPC SDK offers possible speed improvements and CUDA Fortran. The compiler names are:
| Language | Compiler |
|---|---|
| C | nvc |
| C++ | nvc++ |
| Fortran | nvfortran |
Compiler options for Fortran are extensive, reflecting the long heritage of the PGI compiler that preceded nvfortran.
A typical reason for using Nvidia HPC SDK is the Cuda GPU features.
Nvidia HPC compilers support C11, C++23, and partial Fortran 2008 including submodule and error stop.
Download and install Nvidia HPC SDK. Create a script nvidia.sh:
To use NVIDIA HPC SDK, source the script:
source ~/nvidia.shCMake
In CMake, set NVIDIA HPC
compiler-specific options
in CMakeLists.txt like:
if(CMAKE_Fortran_COMPILER_ID STREQUAL "NVHPC")
add_compile_options($<$<COMPILE_LANGUAGE:Fortran>:-Mdclchk;-Munixlogical>)
endif()To use newer languages standard features ensure the underlying GCC toolchain is set to a new-enough compiler as per Nvidia HPC SDK documentation. The compiler path can be determined on RHEL-like Linux distros like:
scl enable gcc-toolset-12 "dirname $(which g++)"If using a CMake toolchain file, instead of CXXFLAGS environment variable, one can set
set(CMAKE_CXX_COMPILER_EXTERNAL_TOOLCHAIN "/opt/rh/gcc-toolset-12/root/usr/")