NVIDIA 性能库#

NVIDIA 性能库 (NVPL) 是一系列针对 NVIDIA Grace Armv9.0-A 架构优化的高性能数学库集合。

这些仅 CPU 库不依赖 CUDA 或 CTK,并且是可以直接替换标准 C 和 Fortran 数学 API 的库,使 HPC 应用程序能够在 NVIDIA CPU 平台上实现最佳性能。

库文档#

安装#

系统支持#

  • 架构:aarch64-linux

  • 平台:Arm SBSA

CPU 支持#

  • 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)

  • 任何具有 Armv8.1-A 或更高版本架构的 CPU

操作系统支持#

以下操作系统版本已针对编译器、OpenMP 和 MPI 支持的所有组合进行测试。通常也应支持任何用于 aarch64 的 Linux 操作系统。

  • 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

编译器支持#

语言支持#

  • C:所有库

  • C++:通过 C 接口的所有库

  • Fortran:选定的库

    • GFortran ABI

    • NVPL BLAS、LAPACK 和 ScaLAPACK 提供 lp64ilp64 整数 ABI

    • 有关更多详细信息,请参阅各个库文档

Python#

带有 NVPL 库二进制再发行的 Python 包在 PyPIConda Forge 上均可用。请参阅:NVPL Python 用法 以获取文档

OpenMP 支持#

所有库都支持以下 OpenMP 运行时库。有关详细信息和支持嵌套并行性的 API 扩展,请参阅各个库文档。

  • GCC: libgomp.so

  • Clang: libomp.so

  • NVHPC: libnvomp.so

警告

NVPL 库未显式链接任何特定的 OpenMP 运行时,它们依赖于 OpenMP 库的运行时加载,这由应用程序和环境决定。链接到 NVPL 的应用程序应始终在运行时使用与应用程序编译时相同的 OpenMP 发行版。在编译时到运行时混合 OpenMP 发行版可能会导致异常性能。

警告

NVIDIA HPC 模块提供了一个指向 libnvomp.solibgomp.so 符号链接。如果加载了 nvhpc 环境变量模块,则此符号链接将在 LD_LIBRARY_PATH 上。使用 ldd 以确保使用 GCC 构建的应用程序不会由于 LD_LIBRARY_PATH 而意外加载 HPC SDK 中的 libgomp.so 符号链接。如果且仅当应用程序是使用 nvhpc 编译器构建的,才使用 libnvomp.so

MPI 支持#

NVPL 为以下 MPI 发行版提供标准 BLACS 接口。有关详细信息,请参阅 NVPL ScaLAPACK 文档