评估指标#

KernelGenBench 从多个维度衡量内核生成能力:正确性、性能和成本效率。

精度#

定义#

至少有一个生成的内核通过以下检查的算子百分比:

  • 所有测试用例(组合形状、数据类型、布局)

  • 三层防作弊检查

纯净通过率#

内核仅在以下情况下被计为成功:

  1. 所有 ki 测试用例通过数值验证

  2. 所有防作弊层通过

测试用例生成#

组合测试套件通过以下因素的笛卡尔积创建:

  • 核心语义参数(维度、转置)

  • 形状变化

  • 数据类型

  • 内存布局

加速比#

计算方式#

两级几何平均:

  1. 第一级:对 ki 个测试用例计算几何平均 → 算子级 加速比 Si

  2. 第二级:对所有算子计算几何平均 → 全局加速比

公式#

Si = (∏ speedup_test_j)^(1/ki)
Global = (∏ Si)^(1/n)

解读#

加速比

含义

> 1.0×

生成的内核比基准更快

= 1.0×

性能相当

< 1.0×

生成的内核比基准更慢

基准#

来源

基准

ATen

PyTorch 原生 C++

vLLM

vLLM CUDA 内核

cuBLAS

原生 cuBLAS

Token 成本#

指标#

指标

描述

总 Token 数

消耗的所有 Token 总和

每次成功的 Token 数

总 Token 数 ÷ 通过算子数量

重要性#

Token 消耗直接影响:

  • API 成本

  • 评估时间

  • 大规模运行的可行性

运行时间#

定义#

每个算子的累积求解时间,与并行度无关。

用途#

比较不同生成方法的效率,与并行执行无关。

汇总表#

指标

类型

描述

精度

正确性

通过所有测试的算子百分比

加速比

性能

相对于基准的几何平均值

Token 成本

效率

消耗的 Token 数量

运行时间

效率

消耗的时间