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+
Clang for NVIDIA Grace: 16.x, 17.x, 18.x, 19.x
NVIDIA HPC Compilers: 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 模块提供从 libgomp.so
到 libnvomp.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 接口