NVIDIA/nvbandwidth

A tool for bandwidth measurements on NVIDIA GPUs.

解决的问题

提供了一种标准化的方法,用于测量 NVIDIA GPU 之间以及主机 CPU 与 GPU 之间的实际内存带宽和延迟。在高性能计算和 AI 工作负载中,跨链接(如 NVLink)的数据传输速度常常成为瓶颈,因此这种测量至关重要。

工作原理

该工具使用两种不同方法执行各种内存复制(memcpy)模式:

  • 复制引擎(CE): 使用标准 CUDA memcpy API。
  • 流式多处理器(SM): 使用自定义内核移动数据。

为确保准确性,它使用“自旋内核”来消除测量过程中操作入队的开销。对于延迟测量,采用 指针追踪 技术(创建内存地址的链表),以防止硬件预取和数据缓存命中,从而确保更真实的原始内存访问时间测量。

适用对象

  • 系统架构师: 验证 GPU 集群是否配置为达到最佳性能。
  • 机器学习工程师: 诊断多 GPU 训练或推理流水线中的瓶颈。
  • 集群管理员: 验证多节点部署中 NVLink 和节点间内存交换(IMEX)的健康状况和性能。

主要特性

  • 多节点支持: 可使用 MPI 和 NVIDIA IMEX 在不同物理节点之间测量带宽。
  • 灵活测试: 支持单向和双向传输,以及通过 UUID 对特定 GPU 对进行测试。
  • 智能采样: 在大型集群中,可对 GPU 对的子集进行采样,以减少测试时间,同时保持拓扑覆盖。
  • 详细指标: 报告中位数或平均带宽,并提供具体的延迟测量值。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目