KernelBenchX
收藏资源简介:
KernelBenchX是一个用于评估LLM生成的GPU内核(Triton内核代码生成)的综合性基准测试数据集。它测量可构建性(编译和运行能力)、数值正确性(在确定性测试套件下与参考实现匹配)、效率(运行时间、吞吐量、内存带宽和速度提升)以及其他代码质量信号(如通过radon计算的可维护性指数)。数据集包括任务覆盖(如量化和多精度)和统一的评估流程,用于正确性和效率分析。
KernelBenchX is a comprehensive benchmark dataset for evaluating GPU kernels (specifically Triton kernel code generation) generated by large language models (LLMs). It measures buildability (compilation and runtime capability), numerical correctness (matching reference implementations under deterministic test suites), efficiency (including runtime, throughput, memory bandwidth and speedup), and other code quality metrics such as the maintainability index calculated via radon. The dataset covers task coverage scenarios such as quantization and multi-precision, and provides a unified evaluation pipeline for correctness and efficiency analysis.
KernelBench_X 数据集概述
基本信息
- 名称: KernelBench_X
- 用途: 面向 Triton 内核代码生成 的可复现评估框架
- 论文地址: https://arxiv.org/abs/2605.04956
- PDF 链接: https://arxiv.org/pdf/2605.04956
- Hugging Face 数据集: https://huggingface.co/datasets/BonnieWang/KernelBenchX
- 引用方式: @article{wang2026kernelbenchx, title={KernelBenchX: A Comprehensive Benchmark for Evaluating LLM-Generated GPU Kernels}, author={Wang, Han and Zhang, Jintao and Jiang, Kai and Wang, Haoxu and Chen, Jianfei and Zhu, Jun}, journal={arXiv preprint arXiv:2605.04956}, year={2026}}
评估指标
KernelBench_X 主要衡量以下四个方面:
- 可构建性 (Call): 提交的代码能否编译并运行
- 数值正确性 (Exe): 在确定性测试套件下是否与参考实现匹配
- 效率 (Perf): 运行时 (ms)、吞吐量 (TFLOPS)、内存带宽 (GB/s)、与 GPU 匹配的黄金参考的速度提升比
- 其他: 报告轻量级代码质量信号(例如通过 radon 计算的可维护性指数)
与现有工作的关系
KernelBench_X 在 TritonBench 的基础上进行了改进,引入了:
- 更严格的正确性验证
- 扩展的任务覆盖范围(例如量化、多精度)
- 统一的正确性与效率分析评估流程
仓库结构
KernelBench_X/ ├── data/ # 任务元数据 + 参考实现 + 迭代语料库 ├── EVAL/ # 流水线阶段(call → exe → perf) ├── metrics/ # 黄金参考 + 性能脚本 ├── scripts/ # 用户入口点 └── utils/ # 共享辅助工具
输入格式
--source 路径支持三种格式:
- JSONL 文件: 每行一个 JSON 对象,需包含
predict和file字段;若省略file,则需包含含Functional Description:和Wrapper Entry Information:的instruction字段 - 单个
.py文件: 文件名需匹配data/kernelbenchx/中的任务名称(例如attention.py);若文件包含数据集分隔线,仅分隔线上方的内容作为提交 - 目录: 递归收集
*.py和*.jsonl文件,每个文件按规则逐一评估
内核入口规范: 提交文件中需定义一个顶层可调用对象,名称为 kernel_function 或目标任务词干(例如 attention 对应 attention.py)
GPU 特定黄金计时基线
- 黄金计时 JSON 文件按 GPU 型号存储于
metrics/golden_results/<machine>/ - 优先级顺序:
KERNELBENCHX_GOLDEN_RESULTS_DIR(显式覆盖)→KERNELBENCHX_GOLDEN_MACHINE(命名子文件夹)→ 默认5090 - 可通过环境变量
KERNELBENCHX_GOLDEN_MACHINE指定 GPU 型号(例如a100)
使用方式
- 环境配置: 推荐使用 Conda 创建 Python 3.11 环境,安装
requirements.txt中的依赖,并设置PYTHONPATH环境变量 - 运行评估: 提供
run_eval.sh和run_eval_from_files.sh两个入口脚本,接受--bench-timeout SEC、<source>、<output_dir>、<gpus>参数 - 输出结果: 输出至
./out_run/目录,包含metrics.json(每任务结果)、summary.json(总体通过率和加速比)、intermediate/(各阶段 JSONL 文件、性能脚本、原始日志) - 快速开始: 可使用
examples/Examples.ipynb验证环境并理解完整流水线




