NVIDIA/nvbench
CUDA Kernel Benchmarking Library
解决的问题
NVBench 简化了 CUDA 内核的基准测试流程。它提供了一种结构化的方法来测量执行时间、吞吐量和内存带宽使用情况,从而在对单个 GPU 内核进行调优和回归测试时,无需手动编写重复代码。
工作原理
这是一个 C++17 库,允许开发者使用简单的 API 定义基准测试。它采用“轴”系统执行参数扫描,通过动态数值/字符串或静态类型探索不同的内核配置,以找到最优设置。支持多种测量模式,包括“冷启动”测量(L2 缓存清空)和“批量”测量(用于平均执行时间)。
适用人群
需要优化 GPU 内核并进行系统性参数调优的 CUDA 开发者和性能工程师。
主要特性
- 参数扫描:灵活的轴系统,用于探索配置空间。
- 运行时自定义:功能丰富的 CLI,支持重新定义轴、选择设备和锁定 GPU 时钟。
- 性能指标:自动计算项目吞吐量和全局内存带宽使用情况(包括峰值利用率百分比)。
- 灵活测量:支持冷启动、批量和手动计时模式。
- 多种输出格式:结果可导出为 Markdown 或 CSV 格式。
相关
- 项目
NVIDIA/nvbandwidth一款用于 NVIDIA GPU 的性能基准测试工具,可测量 CPU 到 GPU 和 GPU 到 GPU 链路(包括 NVLink)的内存带宽和延迟,支持多节点配置。
- 项目
NVIDIA/MatXA C++20 library for numerical computing that brings NumPy-like tensor expressions to NVIDIA GPUs and CPUs, featuring JIT kernel fusion for maximum performance.
- 项目
- 项目
kunzmi/managedCudaNVIDIA CUDA Driver API 及其相关库的 .NET 封装,使 C# 和 Visual Basic 开发者能够将其应用程序集成 GPU 加速功能。
- 项目
NVIDIA/nccl-testsA performance and correctness testing suite for the NVIDIA Collective Communications Library (NCCL) used to benchmark multi-GPU and multi-node communication.