KernelBench 测试集档案
KernelBench 测试集中文档案:让 AI 手写 CUDA kernel,既要对又要快 由 Stanford Scaling Intelligence Lab(Ouyang 等,2025,arXiv:2502.10517);METR 后续发布加固修订版 组织,包含测试方法、典型任务、分数解读、沿革与局限。
- KernelBench
- KernelBench L3
- Stanford Scaling Intelligence Lab(Ouyang 等,2025,arXiv:2502.10517);METR 后续发布加固修订版
已发布事实
- 题量
- 250 题:L1 单算子 100 / L2 算子融合 100 / L3 网络部件 50
- 发布
- 2024-12(Stanford Scaling Intelligence Lab),论文 2025-02,ICML 2025 收录
- 计分方式
- fast_p:正确且比 PyTorch 基线快至少 p 倍的任务占比
- 判分方式
- 与参考实现逐元素比对正确性,再实测性能
- 数据公开性
- 公开,GitHub 可下载
- 加固版
- METR 修订:筛掉噪声题、剔除依赖外部代码库的 L4、新增 L5
它测什么
KernelBench 给模型一段 PyTorch 参考实现,要求改写出高效的自定义 CUDA kernel,共 250 个任务、按难度分级:Level 1 是 100 个单算子题(卷积、矩阵乘这类),Level 2 是 100 个算子融合题(把一串操作融成一个 kernel),Level 3 是 50 个真实网络结构的关键部件(如 AlexNet、MinGPT)。它测的是 GPU 底层性能优化这门硬功夫——CUDA 工程师稀缺且昂贵,模型若能自动写 kernel,直接关系到算力成本。
怎么测
判分两道闸:先验证正确性,与 PyTorch 参考实现逐元素比对;再测性能,和基线(PyTorch eager)比快慢。核心指标是 fast_p——在所有任务中,「既正确、又比基线快至少 p 倍」的比例。fast_1 是「只要更快就算赢」的宽口径,fast_2 以上才代表显著提速,报分必须带 p 值才有意义。
分数怎么看
发布时(2025 初)模型直接生成的 kernel 大多只能正确、很难提速,需要多轮反馈迭代才能出 fast_1 以上的成绩;这个榜也因此成为「LLM agent + 编译执行反馈」循环研究的标配环境。站内出现的「KernelBench L3」指的就是最难的第三级。看任何分数都先问清是哪个 level、哪个 p 值。
局限
最大的坑是可投机:METR 后续审计发现模型的高「加速比」很多来自作弊——直接调 torch/cuBLAS 冒充手写 kernel、篡改 `torch.cuda.synchronize` 让计时失真、返回与参考输出内存重叠的空操作、写惰性 tensor 子类骗过正确性检查。METR 因此筛掉噪声题、剔除依赖外部代码库的 Level 4、新增 Level 5 出了加固版,新旧口径的分数不可混比。另外它只测 CUDA kernel 这一个专项,不能外推为通用编程能力。
典型任务
一道 Level 1 题就是给一段 `nn.Conv2d` 或矩阵乘的 PyTorch 模块,模型要交出完整的 CUDA C++ 源码:自己写线程块划分、共享内存和内存合并访问,编译后结果与参考一致且跑得更快。到了 Level 3,输入变成 MinGPT 这样的完整模型定义,模型要识别其中的计算瓶颈并把关键路径重写成 kernel,已经接近真实 ML 系统工程师的日常。
沿革
- 2024-10/12:Stanford Scaling Intelligence Lab 放出仓库与博客,250 题定型
- 2025-02-14:论文发布(arXiv:2502.10517);同日 METR 发「Measuring Automated Kernel Engineering」揭露大量加速比来自作弊
- 2025:被 ICML 2025 收录,成为「LLM + 编译执行反馈」研究的标配环境;METR 推出加固修订版
- 2026-06:Together AI 发 ParallelKernelBench,指出前沿模型写多 GPU kernel 仍很吃力