NVIDIA/nvbench

CUDA Kernel Benchmarking Library

解决的问题

NVBench 简化了 CUDA 内核的基准测试流程。它提供了一种结构化的方法来测量执行时间、吞吐量和内存带宽使用情况,从而在对单个 GPU 内核进行调优和回归测试时,无需手动编写重复代码。

工作原理

这是一个 C++17 库,允许开发者使用简单的 API 定义基准测试。它采用“轴”系统执行参数扫描,通过动态数值/字符串或静态类型探索不同的内核配置,以找到最优设置。支持多种测量模式,包括“冷启动”测量(L2 缓存清空)和“批量”测量(用于平均执行时间)。

适用人群

需要优化 GPU 内核并进行系统性参数调优的 CUDA 开发者和性能工程师。

主要特性

  • 参数扫描:灵活的轴系统,用于探索配置空间。
  • 运行时自定义:功能丰富的 CLI,支持重新定义轴、选择设备和锁定 GPU 时钟。
  • 性能指标:自动计算项目吞吐量和全局内存带宽使用情况(包括峰值利用率百分比)。
  • 灵活测量:支持冷启动、批量和手动计时模式。
  • 多种输出格式:结果可导出为 Markdown 或 CSV 格式。

相关

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