当前位置: 首页 > news >正文

facebook开源Triton编写GPU内核的编程模型速读:KernelLLM

KernelLLM

一、引言

KernelLLM 是一个基于 Llama 3.1 Instruct 的大型语言模型,专为使用 Triton 编写 GPU 内核的任务而训练。其目标是使 GPU 编程更加普及和高效,满足日益增长的高性能 GPU 内核需求。

二、模型介绍

(一)模型架构

KernelLLM 是一个自回归语言模型,采用优化的变压器架构。它以 Llama 3.1-8B-Instruct 为基础,经过监督指令微调。

(二)训练数据

模型在大约 25000 个 PyTorch 模块及其等效 Triton 内核实现的配对示例上进行训练,同时还使用了通过 torch.compile() 和其他提示技术生成的合成样本。训练数据集结合了来自 TheStack 的筛选代码和合成示例。

(三)训练过程

KernelLLM 使用监督指令微调方法进行训练,训练了 10 个周期,批次大小为 32,使用标准的 SFT 食谱,超参数的选择基于训练数据保留子集上的困惑度。训练在 16 个 GPU 上进行了大约 12 小时的墙钟时间,总共 192 个 GPU 小时。

三、模型性能

(一)性能评估

KernelLLM 在 KernelBench-Triton 基准测试中的表现优于多个基线模型,包括 GPT-4o 和 DeepSeek V3。在单次推理中,8B 参数的 KernelLLM 超过了这些大型模型。在多次推理中,其性能也超过了 DeepSeek R1。

(二)基准测试

KernelLLM 在 KernelBench-Triton 基准测试中的具体性能数据如下表所示:

模型参数 (B)得分Pass@k
KernelLLM820.21
KernelLLM851.810
KernelLLM857.120
DeepSeek V3671161
GPT-4o~200151
Qwen2.532151
Llama 3.370131
Llama 3.181420
Llama 3.1861
Llama R1 Distill7011推理
DeepSeek R1671301

KernelLLM 的推理使用温度=1.0 和 top_p=0.97 进行。

四、使用方法

(一)安装

要使用 KernelLLM,需要安装以下依赖项:transformers、accelerate、torch 和 triton。

(二)基本用法

通过导入 kernelllm 模块并初始化 KernelLLM 模型,可以将 PyTorch 代码转换为优化的 Triton 代码。

(三)交互式 REPL

用户还可以使用内置的 REPL 接口,启动交互式会话,输入 PyTorch 代码并接收 Triton 优化实现。

(四)高级选项

KernelLLM 提供了自定义生成过程的多种方法,包括实时流式输出和生成原始文本。

五、局限性与未来工作

KernelLLM 存在一些局限性,如可能产生不正确的 API 引用和语法错误,在指令遵循能力方面有限。生成的代码在结构上类似于编译器生成的输出,且模型经常无法实现有意义的内核。错误分析显示,常见问题与变量命名、张量形状、类型处理和数值精度有关。

未来的工作可能包括改进模型的指令遵循能力,减少错误并提高生成代码的质量。

六、模型细节

(一)开发者

KernelLLM 的开发人员是 Meta。

(二)输入与输出

模型仅输入文本,并生成文本作为输出。

(三)架构

KernelLLM 是一个自回归语言模型,采用优化的变压器架构。

(四)训练日期

KernelLLM 于 2025 年 3 月进行训练。

(五)状态

这是一个在离线数据集上训练的静态模型。

(六)许可

许可详情请参阅 LICENSE.pdf。

(七)预期用途

KernelLLM 预期用于商业和研究目的,适用于英语、相关编程语言、Python 和 Triton。

(八)硬件与软件

训练使用了自定义训练库。训练 KernelLLM 在 H100-80GB 硬件上总共需要 250 小时的计算时间,不包括基础模型的训练。

(九)伦理考虑与局限性

KernelLLM 及其变体是一项新技术,使用时存在风险。到目前为止进行的测试仅限于英语,尚未涵盖所有场景。因此,开发人员应在部署 KernelLLM 的任何应用程序之前,针对其特定应用进行安全测试和调整。

七、核心技术创新点

在这里插入图片描述

相关文章:

  • spring.factories详解
  • AI是否会取代人类?浔川问答①
  • docker安装es连接kibana并安装分词器
  • PTA刷题笔记3(微难,有详解)
  • 【瑞数3代】药监评审中心逆向分析 | 后缀MmEwMD参数
  • JDBC-java操作数据库
  • AT24C02(I2C总线)
  • Vue3 + Element Plus表格筛选样式设置
  • ABZ编码器和霍尔电流感应器的工作原理
  • Android中ServiceManager与Binder驱动的关系
  • Maven 项目介绍
  • Java注解运行时访问与处理技术详解
  • Mujoco 学习系列(五)与ROS之间的通讯
  • OpenCV CUDA 模块中图像过滤------创建一个拉普拉斯(Laplacian)滤波器函数createLaplacianFilter()
  • 【HarmonyOS 5】Map Kit 地图服务之应用内地图加载
  • OSI 深度安全防御体系架构深度剖析
  • HarmonyOS NEXT~鸿蒙AI开发全解析:HarmonyOS SDK中的智能能力与应用实践
  • JavaScript进阶(十二)
  • 【数据集】全球首个10米分辨率精细分类土地覆盖数据集GLC_FCS10
  • 期货反向跟单软件—提高盘手杠杆的方式及剖析
  • 人妖和美女做视频网站/直播代运营公司
  • 专门做批发的网站吗/关键词检测工具
  • 邹城做网站/百度下载安装2019
  • 网站建设的新闻/郑州百度推广公司地址
  • 威海网站制作/全网整合营销
  • 网站列表页内容/永久免费wap自助建站