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 模块提供从 libgomp.solibnvomp.so 的符号链接。 如果加载了 nvhpc 环境变量模块,则此符号链接将位于 LD_LIBRARY_PATH 上。 使用 ldd 以确保使用 GCC 构建的应用程序不会因 LD_LIBRARY_PATH 而意外加载来自 HPC SDK 的 libgomp.so 符号链接。 如果且仅当应用程序是使用 nvhpc 编译器构建的,才使用 libnvomp.so

MPI 支持#

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