跳转至

GPU性能测试验收文档-o1

以下是一份针对 NVIDIA H100 GPU 的详细性能测试与验收文档示例,包含测试项目、所需工具、测试过程、指标解读及验收标准等内容,并附带中文注释,方便理解与参考。该文档假设服务器操作系统为 Ubuntu(示例版本为 Ubuntu 20.04 或以上),且已经正确安装了 NVIDIA 显卡驱动与 CUDA 工具链。


一、准备工作

  1. 硬件及环境确认

  2. GPU 型号:确认目标 GPU 是否为 NVIDIA H100(可通过 nvidia-smi 命令查看)。

  3. 操作系统:确认 Ubuntu 版本(如 Ubuntu 20.04 LTS 或更高版本)。
  4. 驱动版本:确认已安装的 NVIDIA 驱动与 H100 所需的版本匹配(可通过 nvidia-smi 命令查看 Driver Version)。
  5. CUDA 版本:确认 CUDA Toolkit 版本和 GPU 兼容。若要使用全功能特性,最好安装官方推荐的 CUDA 版本。

注释:在 H100 上,通常要求较新的驱动和 CUDA 版本,例如 CUDA 11.x 或以上。可以通过官方发布的 NVIDIA GPU 驱动支持矩阵 获取对应信息。

  1. 工具安装

  2. NVIDIA 驱动:通常通过 apt 或者官方 .run 包安装,确保正确安装并可正常运行。

  3. CUDA Toolkit:安装方法同上,需要包含编译器 nvcc、运行时库、开发库等。
  4. Benchmark 工具(常用示例):
    • NVIDIA CUDA Samples:包含多种官方示例,可以用于基础测试与性能验证。如 deviceQuerybandwidthTest 等。
    • NVIDIA NSight Systems / Compute:可用于性能剖析、诊断、内存带宽测试等。
    • 第三方工具
    • DeepBench:测评深度学习常见操作,如 GEMM、RNN、卷积等。
    • HPC 相关:如 HPL(High-Performance Linpack)或 HPCG,用于浮点运算能力测试。
    • AI 训练测试:PyTorch 或 TensorFlow 的基准脚本(例如 ImageNet 训练速度或 BERT 训练吞吐量测试)。

注释:可根据具体工作负载选择合适的测试工具。如果是通用 HPC 场景,HPL、HPCG 是常见标准;如果是深度学习训练场景,可选用 DeepBench 或 PyTorch 等框架自带的 Benchmark。


二、测试项目与指标

针对 GPU 主要关注以下几个核心性能指标与运行状态:

  1. 算力(FLOPS)
  2. 主要衡量 GPU 的浮点运算速度,比如 FP64、FP32、TF32、FP16、BF16 以及 Tensor Core 的峰值性能。
  3. 工具/方法:常用 HPL(基于 FP64)或其他基准来测试;深度学习可使用 DeepBench 测量 Tensor Core 性能。

  4. 内存带宽(Memory Bandwidth)

  5. 测量 GPU 显存的读写带宽。带宽通常是影响 GPU 计算速度的关键因素之一。
  6. 工具/方法:可使用 bandwidthTest(CUDA Sample)或 NSight Compute 分析实际内核的内存带宽利用率。

  7. 显存使用(Memory Usage)

  8. 测量 GPU 运行时显存的使用情况,包括已分配显存大小与可用显存空间。
  9. 工具/方法:nvidia-smi 实时监测或通过框架(如 PyTorch)监控。

  10. GPU 核心利用率(GPU Utilization)

  11. 评估测试期间 GPU 的核心使用率是否达到满负载。
  12. 工具/方法:可通过 nvidia-smi dmonnvidia-smi -l 等命令监测 GPU 的实时利用率。

  13. 温度与功耗(Temperature & Power Consumption)

  14. 测量 GPU 运行时的温度与功耗,评估散热及功率是否达标。
  15. 工具/方法:通过 nvidia-smi 或官方监控工具(如 NVML 库)实时监测。

  16. 延迟(Latency)与吞吐量(Throughput)

  17. 对于深度学习推理或 HPC 场景,延迟和吞吐量往往是关键指标。
  18. 工具/方法:使用深度学习框架(TensorFlow Serving / Triton Inference Server 等)或 HPC 负载实际测试。

  19. 稳定性测试

  20. 长时间(例如 24 小时)运行高负载任务,观察是否有错误、宕机、性能波动等。

三、测试流程示例

以下以几个常见测试工具或方法为例,示范如何在 Ubuntu 环境下进行 H100 GPU 性能测试。

1. 基本信息核对
### 查看 GPU 驱动版本、GPU 型号、温度等
nvidia-smi
  • 输出解读
  • Driver Version: 确认是否为 H100 支持的版本
  • Name: 确认是否为 “NVIDIA H100”
  • Temp: GPU 温度
  • Perf: 当前性能状态(P0 表示最高性能状态)
  • Power Draw: 实时功耗

注释:如果显示信息与期望不符,需要先排查驱动安装或硬件插接问题。

2. CUDA 官方示例测试
2.1. deviceQuery
cd /usr/local/cuda/samples/1_Utilities/deviceQuery
make
./deviceQuery
  • 主要观察结果
  • CUDA 计算能力(Compute Capability)
  • 核心数量
  • 显存大小
  • 时钟频率

注释:确认与 H100 官方规格一致,若结果有明显偏差,可能驱动或硬件信息读取异常。

2.2. bandwidthTest
cd /usr/local/cuda/samples/1_Utilities/bandwidthTest
make
./bandwidthTest
  • 主要观察结果
  • Host to Device、Device to Host、Device to Device 的带宽。
  • Device to Device 带宽通常可反映 GPU 显存的理论带宽水平。

注释:可与官方规格对比(如 H100 的标称显存带宽),通常数值应在标称的 90%~95% 以上。

3. 浮点运算性能测试

使用 HPL(High-Performance Linpack)进行双精度(FP64)性能测试。例如,在 Ubuntu 安装并配置 HPL 后:

  1. 修改 HPL.dat 文件,设置测试规模(矩阵大小 N、进程栅格 P×Q 等)。
  2. 运行 HPL:

    mpirun -np 1 ./xhpl
    
    (此示例使用单 GPU,具体可根据集群或多 GPU 环境进行调整)

  3. 主要观察结果

  4. HPL 给出的 GFLOPS 或 TFLOPS 值。
  5. 与官方峰值性能进行对比。

注释:H100 的双精度运算峰值可能大幅提升,若实际测试结果低于官方标称值 80%~90%,需检查硬件配置、HPL 调优参数、GPU 是否处于完全激活的计算模式等。

4. 深度学习测试 (DeepBench / PyTorch)
4.1. DeepBench
  • 下载并编译 DeepBench:
git clone https://github.com/baidu-research/DeepBench.git
cd DeepBench/code
make
  • 运行测试:
./rnn_test
./conv_test
./gemm_test
  • 主要观察结果
  • 在不同算子(卷积、矩阵乘法等)下的吞吐量、计算效率。
  • Tensor Core 能力对 FP16/BF16 性能的提升情况。
4.2. PyTorch 基准
  • 可采用 PyTorch 官方性能测试脚本或自己编写测试脚本:
import torch
import time

# 简单矩阵乘法性能测试
# 以 fp16/tf32 等不同精度测试
device = torch.device("cuda")
size = 8192
a = torch.randn(size, size, dtype=torch.float16, device=device)
b = torch.randn(size, size, dtype=torch.float16, device=device)

# GPU 预热
for _ in range(10):
    torch.mm(a, b)

start = time.time()
torch.mm(a, b)
torch.cuda.synchronize()
end = time.time()

print(f"Matrix multiplication time: {end - start} seconds.")
  • 主要观察结果
  • GPU 计算耗时,推算实际算力(FLOPS)。
  • 不同精度、不同算子下的性能差异。

注释:深度学习场景下,除了算力也要关注数据输入、预处理、通信开销等对整体吞吐量的影响。

5. GPU 稳定性与长时间压力测试
  • 可采用以下方法:
  • 连续运行 HPLDeepBench,保持高负载至少数小时。
  • 监控温度、功耗、时钟频率、错误日志(如 GPU 出现 ECC 错误、Hardware Error 等)。

  • 主要观察结果

  • 24 小时或更长时间内,性能是否稳定;
  • 是否出现因温度过高导致的降频、宕机或其他错误。

注释:如果长时间高负载性能无剧烈波动且无报错,则可初步判定 GPU 运行稳定。


四、结果分析与指标解读

  1. 算力(FLOPS)对比官方峰值
  2. 若实测结果与官方理论峰值偏差在 10%~20% 范围内,多数情况可认为合理;超出该范围需要排查原因。
  3. 内存带宽
  4. 通过 bandwidthTest、NSight 或其他测试得到的内存带宽应接近 H100 的标称值(通常达到 80% 以上即可视为正常)。
  5. GPU 利用率
  6. 在高负载测试期间(如 HPL、深度学习训练等),nvidia-smi 中的 GPU Util 应长期保持在 95% 以上。
  7. 功耗与温度
  8. 温度保持在安全范围内(H100 的安全范围通常在 30°C ~ 85°C,具体以官方文档为准),满载时也不应过热。
  9. 功耗监测应符合 GPU 设计 TDP 范围(若服务器供电与散热足够)。
  10. 稳定性
  11. 24 小时连续测试,无错误、无明显性能衰减。

五、测试验收标准(示例)

以下列出一份可供参考的测试验收标准,实际可根据项目需求进行适当调整。

  1. 设备识别与驱动检查
  2. deviceQuery 中的 GPU 型号、计算能力与预期一致;不显示错误信息。

  3. 带宽测试

  4. bandwidthTest 中 Device to Device 带宽 ≥ 80% 官方标称值。

  5. 峰值浮点性能(HPL 测试)

  6. 实测双精度(FP64)性能 ≥ GPU 理论峰值的 80%(如官方峰值 60 TFLOPS,则需 ≥ 48 TFLOPS)。
  7. 若为 AI/深度学习主用场景,可测量 Tensor Core(BF16/FP16/TF32)实际运算速度 ≥ 80% 官方标称值。

  8. 长时间稳定性

  9. 在 24 小时高负载(如连续运行 HPL 或 DeepBench)后,GPU 无错误(ECC/硬件错误)、无宕机。
  10. GPU 温度与功耗保持在安全范围内,无明显降频(Performance State 维持 P0)。

  11. 深度学习算子性能

  12. PyTorch 矩阵乘法或常见卷积算子的测试吞吐量接近参考基准(如官方或公开 Benchmark 数据)。
  13. 若针对推理场景测试,QPS(每秒推理请求数)或吞吐量达到期望。

  14. 容错与容灾

  15. 若测试过程中引入人为故障(如过热、限功耗),系统应能自动调整频率,不会造成数据错误或宕机。

六、常见问题与排查

  1. 性能低于预期
  2. 检查是否启用正确的性能模式(如 nvidia-smi -i <gpu_id> -pm ENABLED 开启持久模式)。
  3. 检查是否有其他进程占用显存或计算资源。
  4. 检查是否正确启用 Tensor Core(FP16、BF16、TF32 模式)或适合的数学库(cublas、cudnn 等)。

  5. 测试过程中出现错误 / 宕机

  6. 检查驱动是否最新、硬件连接(供电、PCIe)是否牢固。
  7. 查看系统日志(dmesg/var/log/syslog)是否出现 PCIe 报错、ECC 错误或硬件故障提示。

  8. 温度过高

  9. 检查服务器散热系统(风扇、散热器)是否正常。
  10. 如有必要,降低环境温度或为 GPU 降频。

七、总结

通过上述测试流程,可以较全面地评估 NVIDIA H100 GPU 在 Ubuntu 系统中的性能指标,包括算力、内存带宽、稳定性以及深度学习场景下的推理/训练能力。结合上述的验收标准,如果各项指标均达到或接近官方标称值并且满足项目实际需求,通常可以判定硬件及软件环境已准备就绪,GPU 处于可稳定、高性能运行状态。

最终提示:在实际部署与验收时,需根据具体的业务场景(如 HPC、深度学习训练、实时推理)进行针对性测试。同时要持续关注 NVIDIA 官方文档及驱动更新,以及时获得性能优化与漏洞修复。

回到页面顶部