GPU性能测试验收文档-o1¶
以下是一份针对 NVIDIA H100 GPU 的详细性能测试与验收文档示例,包含测试项目、所需工具、测试过程、指标解读及验收标准等内容,并附带中文注释,方便理解与参考。该文档假设服务器操作系统为 Ubuntu(示例版本为 Ubuntu 20.04 或以上),且已经正确安装了 NVIDIA 显卡驱动与 CUDA 工具链。
一、准备工作¶
-
硬件及环境确认
-
GPU 型号:确认目标 GPU 是否为 NVIDIA H100(可通过
nvidia-smi
命令查看)。 - 操作系统:确认 Ubuntu 版本(如
Ubuntu 20.04 LTS
或更高版本)。 - 驱动版本:确认已安装的 NVIDIA 驱动与 H100 所需的版本匹配(可通过
nvidia-smi
命令查看 Driver Version)。 - CUDA 版本:确认 CUDA Toolkit 版本和 GPU 兼容。若要使用全功能特性,最好安装官方推荐的 CUDA 版本。
注释:在 H100 上,通常要求较新的驱动和 CUDA 版本,例如 CUDA 11.x 或以上。可以通过官方发布的 NVIDIA GPU 驱动支持矩阵 获取对应信息。
-
工具安装
-
NVIDIA 驱动:通常通过
apt
或者官方.run
包安装,确保正确安装并可正常运行。 - CUDA Toolkit:安装方法同上,需要包含编译器
nvcc
、运行时库、开发库等。 - Benchmark 工具(常用示例):
注释:可根据具体工作负载选择合适的测试工具。如果是通用 HPC 场景,HPL、HPCG 是常见标准;如果是深度学习训练场景,可选用 DeepBench 或 PyTorch 等框架自带的 Benchmark。
二、测试项目与指标¶
针对 GPU 主要关注以下几个核心性能指标与运行状态:
- 算力(FLOPS)
- 主要衡量 GPU 的浮点运算速度,比如 FP64、FP32、TF32、FP16、BF16 以及 Tensor Core 的峰值性能。
-
工具/方法:常用 HPL(基于 FP64)或其他基准来测试;深度学习可使用 DeepBench 测量 Tensor Core 性能。
-
内存带宽(Memory Bandwidth)
- 测量 GPU 显存的读写带宽。带宽通常是影响 GPU 计算速度的关键因素之一。
-
工具/方法:可使用
bandwidthTest
(CUDA Sample)或 NSight Compute 分析实际内核的内存带宽利用率。 -
显存使用(Memory Usage)
- 测量 GPU 运行时显存的使用情况,包括已分配显存大小与可用显存空间。
-
工具/方法:
nvidia-smi
实时监测或通过框架(如 PyTorch)监控。 -
GPU 核心利用率(GPU Utilization)
- 评估测试期间 GPU 的核心使用率是否达到满负载。
-
工具/方法:可通过
nvidia-smi dmon
、nvidia-smi -l
等命令监测 GPU 的实时利用率。 -
温度与功耗(Temperature & Power Consumption)
- 测量 GPU 运行时的温度与功耗,评估散热及功率是否达标。
-
工具/方法:通过
nvidia-smi
或官方监控工具(如 NVML 库)实时监测。 -
延迟(Latency)与吞吐量(Throughput)
- 对于深度学习推理或 HPC 场景,延迟和吞吐量往往是关键指标。
-
工具/方法:使用深度学习框架(TensorFlow Serving / Triton Inference Server 等)或 HPC 负载实际测试。
-
稳定性测试
- 长时间(例如 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 后:
- 修改
HPL.dat
文件,设置测试规模(矩阵大小 N、进程栅格 P×Q 等)。 -
运行 HPL:
(此示例使用单 GPU,具体可根据集群或多 GPU 环境进行调整)mpirun -np 1 ./xhpl
-
主要观察结果:
- HPL 给出的 GFLOPS 或 TFLOPS 值。
- 与官方峰值性能进行对比。
注释: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 稳定性与长时间压力测试¶
- 可采用以下方法:
- 连续运行 HPL 或 DeepBench,保持高负载至少数小时。
-
监控温度、功耗、时钟频率、错误日志(如 GPU 出现 ECC 错误、Hardware Error 等)。
-
主要观察结果:
- 24 小时或更长时间内,性能是否稳定;
- 是否出现因温度过高导致的降频、宕机或其他错误。
注释:如果长时间高负载性能无剧烈波动且无报错,则可初步判定 GPU 运行稳定。
四、结果分析与指标解读¶
- 算力(FLOPS)对比官方峰值
- 若实测结果与官方理论峰值偏差在 10%~20% 范围内,多数情况可认为合理;超出该范围需要排查原因。
- 内存带宽
- 通过
bandwidthTest
、NSight 或其他测试得到的内存带宽应接近 H100 的标称值(通常达到 80% 以上即可视为正常)。 - GPU 利用率
- 在高负载测试期间(如 HPL、深度学习训练等),
nvidia-smi
中的 GPU Util 应长期保持在 95% 以上。 - 功耗与温度
- 温度保持在安全范围内(H100 的安全范围通常在 30°C ~ 85°C,具体以官方文档为准),满载时也不应过热。
- 功耗监测应符合 GPU 设计 TDP 范围(若服务器供电与散热足够)。
- 稳定性
- 24 小时连续测试,无错误、无明显性能衰减。
五、测试验收标准(示例)¶
以下列出一份可供参考的测试验收标准,实际可根据项目需求进行适当调整。
- 设备识别与驱动检查
-
deviceQuery
中的 GPU 型号、计算能力与预期一致;不显示错误信息。 -
带宽测试
-
bandwidthTest
中 Device to Device 带宽 ≥ 80% 官方标称值。 -
峰值浮点性能(HPL 测试)
- 实测双精度(FP64)性能 ≥ GPU 理论峰值的 80%(如官方峰值 60 TFLOPS,则需 ≥ 48 TFLOPS)。
-
若为 AI/深度学习主用场景,可测量 Tensor Core(BF16/FP16/TF32)实际运算速度 ≥ 80% 官方标称值。
-
长时间稳定性
- 在 24 小时高负载(如连续运行 HPL 或 DeepBench)后,GPU 无错误(ECC/硬件错误)、无宕机。
-
GPU 温度与功耗保持在安全范围内,无明显降频(Performance State 维持 P0)。
-
深度学习算子性能
- PyTorch 矩阵乘法或常见卷积算子的测试吞吐量接近参考基准(如官方或公开 Benchmark 数据)。
-
若针对推理场景测试,QPS(每秒推理请求数)或吞吐量达到期望。
-
容错与容灾
- 若测试过程中引入人为故障(如过热、限功耗),系统应能自动调整频率,不会造成数据错误或宕机。
六、常见问题与排查¶
- 性能低于预期
- 检查是否启用正确的性能模式(如
nvidia-smi -i <gpu_id> -pm ENABLED
开启持久模式)。 - 检查是否有其他进程占用显存或计算资源。
-
检查是否正确启用 Tensor Core(FP16、BF16、TF32 模式)或适合的数学库(cublas、cudnn 等)。
-
测试过程中出现错误 / 宕机
- 检查驱动是否最新、硬件连接(供电、PCIe)是否牢固。
-
查看系统日志(
dmesg
或/var/log/syslog
)是否出现 PCIe 报错、ECC 错误或硬件故障提示。 -
温度过高
- 检查服务器散热系统(风扇、散热器)是否正常。
- 如有必要,降低环境温度或为 GPU 降频。
七、总结¶
通过上述测试流程,可以较全面地评估 NVIDIA H100 GPU 在 Ubuntu 系统中的性能指标,包括算力、内存带宽、稳定性以及深度学习场景下的推理/训练能力。结合上述的验收标准,如果各项指标均达到或接近官方标称值并且满足项目实际需求,通常可以判定硬件及软件环境已准备就绪,GPU 处于可稳定、高性能运行状态。
最终提示:在实际部署与验收时,需根据具体的业务场景(如 HPC、深度学习训练、实时推理)进行针对性测试。同时要持续关注 NVIDIA 官方文档及驱动更新,以及时获得性能优化与漏洞修复。