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
编译器支持#
GCC-8 - GCC-14+
Clang-14 - Clang-19+
适用于 NVIDIA Grace 的 Clang: 16.x, 17.x, 18.x, 19.x
NVIDIA HPC 编译器: 23.9 – 24.11
语言支持#
C:所有库
C++:通过 C 接口的所有库
Fortran:选定的库
GFortran ABI
NVPL BLAS、LAPACK 和 ScaLAPACK 提供
lp64
和ilp64
整数 ABI有关更多详细信息,请参阅各个库文档
Python#
带有 NVPL 库二进制再发行的 Python 包在 PyPI 和 Conda Forge 上均可用。请参阅:NVPL Python 用法 以获取文档
OpenMP 支持#
所有库都支持以下 OpenMP 运行时库。有关详细信息和支持嵌套并行性的 API 扩展,请参阅各个库文档。
GCC:
libgomp.so
Clang:
libomp.so
NVHPC:
libnvomp.so
警告
NVPL 库未显式链接任何特定的 OpenMP 运行时,它们依赖于 OpenMP 库的运行时加载,这由应用程序和环境决定。链接到 NVPL 的应用程序应始终在运行时使用与应用程序编译时相同的 OpenMP 发行版。在编译时到运行时混合 OpenMP 发行版可能会导致异常性能。
警告
NVIDIA HPC 模块提供了一个指向 libnvomp.so
的 libgomp.so
符号链接。如果加载了 nvhpc 环境变量模块,则此符号链接将在 LD_LIBRARY_PATH
上。使用 ldd 以确保使用 GCC 构建的应用程序不会由于 LD_LIBRARY_PATH
而意外加载 HPC SDK 中的 libgomp.so
符号链接。如果且仅当应用程序是使用 nvhpc 编译器构建的,才使用 libnvomp.so
。
MPI 支持#
NVPL 为以下 MPI 发行版提供标准 BLACS 接口。有关详细信息,请参阅 NVPL ScaLAPACK 文档。
MPICH : 支持
>=mpich-4.0
运行时。NVIDIA HPC-X 通过 OpenMPI-4 接口