遇见数据集

KernelBenchX

收藏
github2026-05-25 更新2026-05-26 收录
官方服务:

资源简介:

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.

创建时间:
2026-05-06
原始信息汇总

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 路径支持三种格式:

  1. JSONL 文件: 每行一个 JSON 对象,需包含 predictfile 字段;若省略 file,则需包含含 Functional Description:Wrapper Entry Information:instruction 字段
  2. 单个 .py 文件: 文件名需匹配 data/kernelbenchx/ 中的任务名称(例如 attention.py);若文件包含数据集分隔线,仅分隔线上方的内容作为提交
  3. 目录: 递归收集 *.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.shrun_eval_from_files.sh 两个入口脚本,接受 --bench-timeout SEC<source><output_dir><gpus> 参数
  • 输出结果: 输出至 ./out_run/ 目录,包含 metrics.json(每任务结果)、summary.json(总体通过率和加速比)、intermediate/(各阶段 JSONL 文件、性能脚本、原始日志)
  • 快速开始: 可使用 examples/Examples.ipynb 验证环境并理解完整流水线
搜集汇总
数据集介绍
KernelBenchX 数据集图片
构建方式
KernelBenchX的构建始于对现有Triton内核基准测试工作的继承与超越,尤其借鉴了TritonBench的框架。研究团队在此基础上,精心设计了涵盖量化、多精度等扩展任务的集合,并为每项任务配备了经过验证的参考实现。数据集的核心构建在于统一评估管线的搭建,该管线依次执行可编译性检查、数值正确性验证及效率分析,从而确保对生成内核的全面评估。此外,团队针对不同GPU型号(如5090、4090、A100)预先生成了黄金性能基线数据,存储于metrics/golden_results目录下,为后续的性能比较提供了可靠的参照。
特点
该数据集的核心特点在于其严格的正确性验证机制与多维度评估体系。它不仅考察代码能否编译运行,更通过确定的测试套件检验其数值是否与标准实现一致,并精确测量运行时延、吞吐量、内存带宽及相对于GPU匹配黄金实现的加速比。与此同时,KernelBenchX还引入了代码质量信号(如通过radon计算的可维护性指数),提供了超越单纯性能指标的软件工程视角。其任务覆盖范围广泛,尤其纳入了量化与多精度计算等前沿应用场景,使评估更具现实意义。
使用方法
用户可通过三种格式提交待评估的内核代码:JSONL文件、单个Python文件或包含多个文件的目录。提交代码需遵循内核入口合约,即定义名为kernel_function或对应任务词干(如attention)的顶层可调用函数。使用前需安装依赖并设置PYTHONPATH,随后通过bash scripts/run_eval.sh脚本指定数据源、输出目录及GPU编号即可启动评估。输出结果将包含Per-task的metrics.json及汇总的summary.json。对于有特定GPU型号需求的用户,可通过环境变量KERNELBENCHX_GOLDEN_MACHINE指定黄金基线型号,以获取更精确的性能对比。
背景与挑战
背景概述
随着大语言模型在代码生成领域的迅猛发展,自动生成高性能GPU内核成为加速深度学习计算的关键技术之一。KernelBenchX 由清华大学团队于2026年创建,旨在系统性地评估大语言模型生成的Triton内核代码质量。该基准测试突破了以往仅关注编译通过率的局限,首次融合可编译性、数值正确性与运行时效率三大维度,并引入量化与多精度等扩展任务。其统一评估流水线为衡量代码生成模型的实用性能提供了标准化平台,对推动GPU内核自动生成领域的研究具有里程碑意义。
当前挑战
KernelBenchX 面临的核心挑战在于:首先,Triton内核生成的编译通过率虽高,但数值精度与GPU硬件特性紧密耦合,浮点运算顺序差异常导致微小误差,如何定义并严格验证“数值正确”成为难题。其次,性能评估需跨不同GPU架构(如A100、4090、5090)建立标准化基线,但硬件差异与驱动版本波动使可重复性难以保障。此外,构建过程中需整理涵盖注意力、融合算子等多类内核的参考实现,并设计轻量级代码质量指标,任务复杂度随算子多样性与精度要求呈指数增长。
常用场景
经典使用场景
在深度学习与高性能计算领域,GPU内核代码的自动生成正成为提升编程效率与硬件利用率的关键路径。KernelBenchX作为一个专为Triton内核代码生成设计的大规模评估基准,经典用途在于系统性地评测大语言模型(LLM)生成的GPU内核代码在可构建性、数值正确性、执行效率以及代码质量等多维度的表现。研究者通常利用该数据集对各类LLM进行标准化测试,通过调用预先定义好的任务集与评估流水线,获取内核能否成功编译运行、是否与参考实现数值一致、以及运行时吞吐量和显存带宽加速比等客观指标,从而为模型的内核生成能力提供可信赖的比较基准。
实际应用
在实际工业场景中,随着大模型推理、科学计算与自动驾驶等应用对高性能GPU内核需求激增,KernelBenchX为这些领域提供了切实可行的评估工具。开发团队可以使用该数据集快速验证自动内核生成工具与代码补全模型产出的代码质量,在部署前剔除无法运行或效率低下的生成结果,降低人工审查成本。此外,芯片厂商与编译器团队可借助其细粒度的性能指标与GPU特定的计时基线,高效调优内核生成策略,使生成的Triton代码在英伟达5090、A100等主流硬件上获得接近手写优化的加速效果,从而将生成式AI技术稳健落地于生产管线。
衍生相关工作
基于KernelBenchX提供的系统化评估框架,研究者已衍生出多项富有影响力的工作。一方面,该数据集为Triton内核生成领域催生了新的优化方法,如利用检索增强生成(RAG)与意图图分解策略在有限搜索空间内生成更高性能的融合算子内核;另一方面,其统一的评估流程启发了跨平台代码生成质量对比研究,部分工作将其与TritonBench等早期基准进行联合分析,提炼出代码结构复杂度与运行效率之间的关联规律。此外,KernelBenchX的多层次指标(如可维护性指数)也推动了关于生成代码长期可维护性的讨论,形成了兼顾生成效率与代码健康度的新研究方向。
以上内容由遇见数据集搜集并总结生成
二维码
社区交流群
二维码
科研交流群
商业服务