欢迎来到我的博客,这里记录着一些我最近的生活。
「每一篇文章,都是一次未完的对话,
期待与你的反馈与交流」
欢迎来到我的博客,这里记录着一些我最近的生活。
「每一篇文章,都是一次未完的对话,
期待与你的反馈与交流」
Strings:“Hello World” “Kyle”
Numbers:10 1.5 -30 1.2e10
Booleans:true false
null:null
Arrays:[1, 2, 3] [“Hello”, “World”]
Objects:{ “key”: “value” }: {“age”: 30}
{
"name": "Kyle"
"favoriteNumber": 3,
"isProgrammer": true,
"hobbies": ["Weight Lifting",
"Bowling"],
"friends": [{
"name": "Joey",
"favoriteNumber": 100,
"isProgrammer": false,
"friends": [...]
}]
}
构建 KernelBench 有 4 个级别的任务:
正确性检查✅:确保模型生成的 kernel 在功能上与参考实现(如 PyTorch 的官方算子)完全一致。进行 n_correctness
次测试。
性能评估⏱️:验证生成的 kernel 是否比参考实现更高效。重复 n_trial
次消除偶然误差。指标是加速比。
实现代码位于: src/eval.py
评估脚本: scripts/run_and_check.py
fast_p
:既正确又加速大于阈值的任务的分数 p
。提高加速阈值 p
可使任务更具挑战性。
加速比:PyTorch 参考实现运行时间 与 生成的内核时间 之比。
计算整体基准测试性能脚本: scripts/greedy_analysis.py
KernelBench 是一个评估 LLMs 在生成高性能 GPU 内核代码上能力的基准测试框架。论文引入了新评估指标 fast_p:衡量生成的 正确、且速度提升超过阈值p 的内核的比例。
背景:每个硬件都有不同的规格和指令集,跨平台移植算法是痛点。
论文核心探讨:LM 可以帮助编写正确和优化的内核吗?
KernelBench 的任务:让 LMs 基于给定的 PyTorch 目标模型架构,生成优化的 CUDA 内核;并进行自动评估。
自动化 AI 工程师的工作流程。
支持多种 AI 算法、编程语言和硬件平台。
轻松评估 LM 代的性能和功能正确性,并从生成的内核中分析信息。
Individual operations::如 AI 运算符、包括矩阵乘法、卷积和损失。
Sequence of operations:评估模型融合多个算子的能力。
端到端架构:Github 上流行 AI 存储库中的架构。