================================================================================ HPL-NVIDIA 24.09.0 -- NVIDIA accelerated HPL benchmark -- NVIDIA ================================================================================ HPLinpack 2.1 -- High-Performance Linpack benchmark -- October 26, 2012 Written by A. Petitet and R. Clint Whaley, Innovative Computing Laboratory, UTK Modified by Piotr Luszczek, Innovative Computing Laboratory, UTK Modified by Julien Langou, University of Colorado Denver ================================================================================ An explanation of the input/output parameters follows: T/V : Wall time / encoded variant. N : The order of the coefficient matrix A. NB : The partitioning blocking factor. P : The number of process rows. Q : The number of process columns. Time : Time in seconds to solve the linear system. Gflops : Rate of execution for solving the linear system. The following parameter values will be used: N : 264192 NB : 1024 PMAP : Column-major process mapping P : 4 Q : 2 PFACT : Left NBMIN : 2 NDIV : 2 RFACT : Left BCAST : 2ringM DEPTH : 1 SWAP : Spread-roll (long) L1 : no-transposed form U : transposed form EQUIL : no ALIGN : 8 double precision words -------------------------------------------------------------------------------- - The matrix A is randomly generated for each test. - The following scaled residual check will be computed: ||Ax-b||_oo / ( eps * ( || x ||_oo * || A ||_oo + || b ||_oo ) * N ) - The relative machine precision (eps) is taken to be 1.110223e-16 - Computational tests pass if scaled residuals are less than 16.0 HPL-NVIDIA ignores the following parameters from input file: * Broadcast parameters * Panel factorization parameters * Look-ahead value * L1 layout * U layout * Equilibration parameter * Memory alignment parameter HPL-NVIDIA settings from environment variables: --- DEVICE INFO --- Peak clock frequency: 1980 MHz SM version : 90 Number of SMs : 132 ------------------- [HPL TRACE] cuda_nvshmem_init: max=0.3499 (7) min=0.3499 (6) [HPL TRACE] ncclCommInitRank: max=0.2773 (5) min=0.2505 (2) [HPL TRACE] cugetrfs_mp_init: max=0.3397 (0) min=0.3397 (6) NVMLCHK: Uninitialized utils_host.c 137 NVMLCHK: Uninitialized utils_host.c 137 NVMLCHK: Uninitialized utils_host.c 137 NVMLCHK: Uninitialized utils_host.c 137 NVMLCHK: Uninitialized utils_host.c 137 NVMLCHK: Uninitialized utils_host.c 137 NVMLCHK: Uninitialized utils_host.c 137 NVMLCHK: Uninitialized utils_host.c 137 -------------------------------------------------------------------------- Primary job terminated normally, but 1 process returned a non-zero exit code. Per user-direction, the job has been aborted. --------------------------------------------------------------------------
时间: 2025-08-31 15:15:05 AIGC 浏览: 8
在运行 HPL-NVIDIA 基准测试时出现异常退出(non-zero exit code)的情况,通常与环境配置、资源分配或软件依赖有关。以下是一些常见原因及其解决方案。
### 1. 编译和链接问题
如果编译过程中某些库未正确链接,可能导致执行时异常退出。例如,在引用中提到的 `/usr/bin/ld: cannot find -liomp5` 错误,表明编译器无法找到 Intel 的 OpenMP 运行时库 `iomp5` [^4]。
**解决方案:**
- 确保 Intel 编译器和 MKL 库已正确安装。
- 检查 `Make.CUDA` 文件中的路径设置是否正确,尤其是 `TOPdir`、`LAdir` 和 `LAMP5dir`。
- 安装缺失的运行时库:
```bash
sudo apt-get install intel-mkl libiomp-dev
```
### 2. MPI 配置错误
HPL 是基于 MPI 的分布式内存程序,若 MPI 环境未正确配置,可能引发执行失败。引用中提到了临时配置 MPI 路径的方法 [^5]:
```bash
export PATH=/root/worktable/HPL/mpich-install/bin:$PATH
```
**解决方案:**
- 确认 MPI 已正确安装并添加到系统路径中。
- 使用 `which mpiexec` 检查 MPI 执行器是否存在。
- 如果使用 MPICH 或 OpenMPI,请确保版本兼容性,并尝试重新安装 MPI 框架。
### 3. GPU 驱动和 CUDA 配置问题
NVIDIA GPU 支持是 HPL-GPU 的关键部分,若驱动或 CUDA 工具链未正确配置,也可能导致进程异常终止。
**解决方案:**
- 检查 NVIDIA 驱动是否最新:
```bash
nvidia-smi
```
- 确认 CUDA Toolkit 是否正确安装:
```bash
nvcc --version
```
- 若使用较新 GPU 架构,需确认 `Make.CUDA` 中的架构参数(如 `CUDA_ARCH`)是否匹配当前 GPU 的计算能力(Compute Capability)。
### 4. 输入参数配置错误(HPL.dat 文件)
HPL 测试依赖于 `HPL.dat` 配置文件。若其中的问题规模(N)、进程网格大小(P×Q)等设置不合理,可能导致内存不足或计算失败。
**解决方案:**
- 确保 P×Q 不超过实际可用的 CPU/GPU 数量。
- 根据系统内存调整问题规模 N,避免内存溢出。
- 检查 `HPL.dat` 中的参数格式是否符合规范,可参考官方文档或标准输入样例进行校对。
### 5. 内存不足或资源竞争
在大规模矩阵运算中,若内存不足以容纳矩阵数据,或者多线程/多进程间发生资源竞争,也可能导致异常退出。
**解决方案:**
- 使用 `free -h` 查看系统可用内存。
- 减小矩阵规模 N 或减少并发进程数。
- 设置合理的 OpenMP 线程数(通过 `OMP_NUM_THREADS`)以避免资源争用。
### 示例调试命令
可尝试以下命令运行 HPL 并查看详细输出日志:
```bash
mpiexec -n 4 ./xhpl
```
若仍失败,建议启用调试模式(如有)或检查是否有核心转储文件生成,以便进一步分析。
---
阅读全文