NVIDIA/nvbench
CUDA Kernel Benchmarking Library
解决的问题
NVBench 简化了 CUDA 内核的基准测试流程。它提供了一种结构化的方法来测量执行时间、内存带宽和吞吐量,消除了为 GPU 内核设置复杂性能测试所需的繁琐手动操作。
工作原理
这是一个 C++17 库,允许开发者为特定内核定义基准测试。它使用“轴”系统执行参数扫描,探索不同的配置(如数据大小或类型),以找到最优设置。该库支持多种测量模式,包括“冷测量”(清除 L2 缓存)和“批量测量”(运行多次迭代),以确保计时准确。
适用人群
需要调优单个 GPU 内核并对其硬件进行回归测试的 CUDA 开发者和性能工程师。
主要亮点
- 参数扫描:使用动态数字、字符串或静态类型灵活探索内核配置空间的系统。
- 吞吐量分析:自动计算每秒元素数(item throughput)和相对于峰值带宽的全局内存带宽使用情况。
- 运行时自定义:丰富的 CLI 允许用户在不重新编译的情况下重新定义参数轴并选择 CUDA 设备。
- 多种测量类型:支持冷启动、批量执行和仅 CPU 测量。
- 灵活输出:以 Markdown 或 CSV 格式生成结果。
相关
- 项目
- 项目
- 项目
- 项目
- 项目