NVIDIA Performance Libraries#

The NVIDIA Performance Libraries (NVPL) are a collection of high performance mathematical libraries optimized for the NVIDIA Grace Armv9.0-A architecture.

These CPU-only libraries have no dependencies on CUDA or CTK, and are drop in replacements for standard C and Fortran mathematical APIs allowing HPC applications to achieve maximum performance on NVIDIA CPU platforms.

Libraries Documentation#

Installation#

System Support#

  • Architecture: aarch64-linux

  • Platform: Arm SBSA

CPU Support#

  • NVIDIA Grace (Armv9.0-A Neoverse-V2)

  • AWS Graviton 4 (Armv9.0-A Neoverse-V2)

  • AWS Graviton 3/3e (Armv8.4-A Neoverse-V1)

  • AWS Graviton 2 (Armv8.2-A Neoverse-N1)

  • Ampere Altra (Armv8.2-A Neoverse-N1)

  • Any CPU with Armv8.1-A or later architecture

OS Support#

The following OS versions are tested for all combinations of compiler, OpenMP, and MPI support. Generally any Linux OS for aarch64 should also be supported.

  • AmazonLinux: 2, 2023

  • Debian: 12

  • Fedora: 39, 40, 41

  • RHEL: RHEL8 (8.10), RHEL9 (9.5)

  • openSUSE/Leap: 15.6

  • SLES: SLES15 (15.6)

  • Ubuntu: 20.04, 22.04, 24.04, 24.10

Compiler Support#

Language Support#

  • C: All libraries

  • C++: All libraries via C interfaces

  • Fortran: Selected libraries

    • GFortran ABI

    • NVPL BLAS, LAPACK, and ScaLAPACK provide lp64 and ilp64 integer ABIs

    • See individual libraries documentation for further details

Python#

Python packages with binary redistribution of NVPL libraries are available on both PyPI and Conda Forge. See: NVPL Python Usage for documentation

OpenMP Support#

All libraries support the following OpenMP runtime libraries. See individual libraries documentation for details and API extensions supporting nested parallelism.

  • GCC: libgomp.so

  • Clang: libomp.so

  • NVHPC: libnvomp.so

Warning

NVPL Libraries do not explicitly link any particular OpenMP runtime, they rely on runtime loading of the OpenMP library as determined by the application and environment. Applications linked to NVPL should always use at runtime the same OpenMP distribution the application was compiled with. Mixing OpenMP distributions from compile-time to runtime may result in anomalous performance.

Warning

NVIDIA HPC modules provides a libgomp.so symlink to libnvomp.so. This symlink will be on LD_LIBRARY_PATH if nvhpc environment modules are loaded. Use ldd to ensure that applications built with GCC do not accidentally load libgomp.so symlink from HPC SDK due to LD_LIBRARY_PATH. Use libnvomp.so if and only-if the applications was built with nvhpc compilers.

MPI Support#

NVPL provides standard BLACS interfaces for the following MPI distributions. See the NVPL ScaLAPACK Documentation for details.