北京AI研究院开发AI智能编程助手:让计算机自己写出高效GPU代码
创始人
2026-01-26 22:49:41
0

在计算机世界里,有一种特殊的程序叫做"内核"(Kernel),它们就像是连接大脑思维和手脚动作的神经系统。当我们使用手机拍照、让电脑识别语音或者训练人工智能模型时,这些内核程序负责把我们的高级指令翻译成GPU芯片能理解的底层操作。然而,编写这些内核程序一直是个极其困难的技术活,需要工程师既懂算法设计,又要深入了解各种硬件架构的复杂细节,就像要求一个厨师不仅要会做菜,还要精通炉具的内部构造和燃气管道的工作原理。

这项由北京人工智能研究院领导的综合性研究发表于2026年1月,论文编号为arXiv:2601.15727v1。研究团队汇集了来自北京师范大学、北京大学、北京理工大学、康奈尔大学、北京交通大学、中国人民大学以及香港科技大学(广州)的专家学者,他们共同探索了如何让大型语言模型(就是那些能够理解和生成人类语言的AI系统)学会自动编写高性能的GPU内核代码。

传统的内核开发就像是手工打造精密仪表,每一个细节都需要工程师反复调试和优化。一个简单的矩阵乘法操作,在不同的GPU上可能需要完全不同的优化策略,就像同样的菜谱在不同的炉灶上需要调整火候一样。更麻烦的是,随着GPU硬件的不断更新换代,之前辛苦写好的代码可能在新硬件上表现糟糕,工程师们只能重新开始优化工作。这种高度依赖专家经验的开发模式,不仅耗时耗力,更是无法满足现代AI系统对计算效率的迫切需求。

研究团队的核心洞察是,大型语言模型在训练过程中已经"阅读"了大量的代码和技术文档,相当于压缩存储了无数专家的编程知识和硬件理解。就像一个博学的图书管理员,虽然不是每个领域的专家,但能够快速找到相关信息并加以整合。通过进一步的训练和优化,这些模型可以学会将高层次的算法描述转换为高效的底层实现。更重要的是,结合智能代理系统(Agent),AI可以通过反复试验、获取反馈、持续改进的方式来优化代码性能,模拟人类工程师的工作流程。

当前这个快速发展的领域已经涌现出众多创新方法和工具,从2024年初的早期探索到2025年底的成熟应用,短短两年间就出现了数十个不同的研究项目。这些项目涵盖了从基础的代码生成到复杂的多智能体协作优化,从单一平台的NVIDIA GPU到跨平台的异构计算环境。研究团队系统梳理了这些分散的研究成果,建立了一个完整的知识框架,并且构建了开源的数据集和评估基准,为后续研究提供了坚实的基础。

一、让AI学会写代码:从模仿到精通

在探索如何让AI学会编写内核代码的过程中,研究人员主要采用了两种训练策略,就像教孩子学习一样:一种是通过大量优秀范例进行模仿学习,另一种是通过反复试错和奖惩机制进行强化学习。

监督式微调就像是让AI学生跟着优秀老师学习写代码。研究团队发现,训练数据的质量和结构对最终效果至关重要。ConCuR项目就像是精心挑选教材,他们构建了一个特殊的数据集,其中的训练样本都是根据推理过程的简洁性、性能提升效果和计算任务的多样性精心筛选出来的。通过在这样的高质量数据上训练,产生的KernelCoder模型能够生成既可靠又高效的CUDA内核代码。

另一个有趣的方向是通过编译器对齐来构建训练数据。KernelLLM项目就采用了这种策略,他们使用Triton编译器来自动生成PyTorch到Triton的对应示例,就像是创建了一本双语词典,帮助AI理解高级操作和底层实现之间的对应关系。通过结构化的提示词训练,模型学会了如何在计算逻辑和内核结构之间建立映射关系。

强化学习则更像是让AI通过实际操作来学习编程技巧。Kevin项目将内核生成视为多轮优化过程,使用跨轮次奖励归因来处理长时间范围的信用分配问题,就像是教导学生不仅要关注当前步骤的对错,还要理解每个决策对最终结果的长远影响。QiMeng-Kernel项目更进一步,将强化学习应用到宏观思维策略层面,而不是底层实现细节,相当于先教会AI如何制定整体规划,再让它填充具体细节。

近期的研究更加注重奖励机制的设计和评估的可靠性。AutoTriton项目通过结合结构性评估和基于执行时间的运行时奖励来解决奖励稀疏性问题,就像是给学生既评估作业的格式规范,也检查最终的运行效果。TritonRL进一步扩展了这个思路,采用层次化奖励分解和显式验证机制,确保代码输出和中间推理过程都是正确的。

CUDA-L1引入了对比强化学习,使用大型语言模型作为评判者来提供密集反馈,而CUDA-L2在此基础上进行了改进,最终实现了超越cuBLAS性能的突破。这就像是有了一位经验丰富的导师,能够对每一步操作给出详细的指导意见。AscendKernelGen则将这种偏好学习范式扩展到了Ascend NPU平台,结合基于思维链的监督微调和偏好学习,展现了跨硬件平台的适应能力。

二、智能代理系统:像工程师一样思考和优化

单纯依靠大型语言模型进行内核开发往往局限于一次性的静态推理过程,就像是要求一个人看一眼就写出完美的程序。而智能代理系统的引入,让AI具备了类似人类工程师的工作能力:能够制定计划、使用工具、评估中间结果,并且通过闭环的自我改进过程来持续优化代码性能。这种方法能够处理多样化的工作负载和硬件平台,同时保持长时间的高效探索,不会像人类一样感到疲劳。

在学习机制方面,早期的方法将内核生成视为迭代改进过程。Caesar项目使用简单的反馈循环来改进内核,就像是程序员写代码、测试、修改的基本流程。推理时计算缩放技术进一步证明了扩展测试时计算和反思显著提升了内核质量,相当于给AI更多时间来思考和验证自己的工作。

PEAK项目采用了分步骤的模块化迭代改进策略,而"最小可执行程序"概念则让AI能够进行高效的独立迭代,无需构建昂贵的全规模应用程序。这就像是让程序员可以在沙盒环境中快速测试想法,而不必每次都构建完整的系统。DiffAgent通过迭代改进来加速扩散模型,TritonX在状态机框架内使用迭代改进来覆盖完整的PyTorch ATen后端,KernelGen则利用测试时缩放和反思技术来实现多芯片后端的内核生成。

为了避免陷入局部最优解,新近的框架开始采用基于种群的进化方法。这就像是让多个程序员团队同时工作,通过交流想法和相互学习来找到更好的解决方案。Lange团队通过变异和交叉操作来优化CUDA翻译,FM Agent引入了进化阶段,遵循多样性保持、自适应进化和多种群动态原则。

EvoEngineer在种群管理方面引入了更高级的动态机制,将遍历技术与种群管理解耦。GPU Kernel Scientist采用多阶段进化工作流来应对为AMD加速器优化HIP内核的挑战。cuPilot则通过高级语义策略来引导进化过程,就像是给进化过程提供了方向指导,避免盲目搜索。

在外部记忆管理方面,复杂的内核优化往往需要领域特定的知识,比如CUDA API和硬件指令集,这些知识可能被大型语言模型遗忘或产生幻觉。AI CUDA Engineer利用高质量内核示例的向量数据库来指导生成过程,确保语法正确性和底层编程最佳实践的遵循。就像是给程序员提供了一本随时可查阅的参考手册。

KernelEvolve更进一步,集成了专门为异构AI加速器定制的复杂硬件特定知识库。除了检索非结构化文本上下文,最近的研究还探索了使用结构化表示作为外部记忆来指导模型推理。ReGraphT提出了一个新颖框架,将推理图视为CUDA代码优化的领域特定外部记忆,将大型语言模型优化状态之间的逻辑转换外化为小型语言模型可以检索的静态、可导航图结构。

硬件性能分析集成是第三个重要维度,解决了标准大型语言模型与硬件无关的特性问题。研究团队通过配置代理的角色档案与硬件规范,并对性能分析反馈进行迭代推理来解决这个问题。

QiMent-TensorOp触发大型语言模型根据用户输入将底层硬件文档分析并提炼到生成提示中,而QiMeng-GEMM使用元提示生成通用矩阵乘法,为各种通用优化技术和平台特定优化细节提供通用模板。QiMeng-Attention考虑目标GPU架构和指令集,将高级思维语言转换为底层CUDA代码,在不同GPU上实现高性能FlashAttention。

SwizzlePerf专门解决了交织问题,将精确的架构规范注入提示上下文,并将搜索空间限制为专门专注于最大化L2缓存命中率的交织模式。与此互补,代理还利用动态反馈。CUDA-LLM将详细的目标GPU规范整合到代理提示中,同时聚合编译日志和运行时性能指标来指导优化过程。

多代理协调认识到内核开发本质上涉及从算法规划到底层编码和调试的异构技能,最近的研究越来越多地采用明确将这些职责分解为协调角色的多代理设计。

STARK将生成结构化为计划-编码-调试阶段来模拟人类工作流程,而AKG利用类似的模块化来实现跨平台合成。Astra专门针对生产级SGLang内核采用这种方法,专注于调优型代理。CudaForge采用由硬件级反馈驱动的编码者-评判者循环,而KForge仅使用单次示例监督将这种双代理模型适应到新平台。

KernelFalcon针对全机器学习架构的GPU内核生成挑战采用多代理系统,系统专门通过协调的管理者和工作者代理来解决分层任务分解和委派。相反,GEAK针对AMD GPU,在基于Triton的工作流程中集成生成和反思。

三、训练数据:AI学习的营养来源

大型语言模型在高性能内核生成方面的效能严重依赖于领域特定数据的可获得性。与通用软件工程不同,内核生成要求模型内化硬件内在特性、并行执行语义和内存层次约束。研究团队将数据资源组织成两个主要类别:训练语料库,涵盖结构化数据集和原始内核仓库;知识库,这些对于构建检索增强生成系统至关重要。

训练数据由有针对性的结构感知策展和非结构化仓库组成。结构化数据集代表了指令调优的最高价值信号,因为它们明确地将意图与优化配对。开源仓库包含了绝大多数领域知识,其中优化的内核代码可以从开源操作符和内核库、集成框架或系统以及领域特定语言的教程和参考实现中提取和清理。

除了可执行代码,领域知识库在大型语言模型驱动的内核生成中也发挥着关键作用。这些知识可以被提炼到预训练语料库中以丰富模型理解,或者作为外部知识库集成以支持基于代理的系统。语料库总是以权威文档和指南以及社区索引或教程的形式提供。

在结构化数据集方面,The Stack v2提供了无监督的CUDA/Triton语料库,HPC-Instruct包含了针对CUDA、MPI和OpenMP的指令,KernelBook提供了经过Torch-Triton对齐的语料库,KernelBench samples则包含了内核代码快照和性能分析数据。

代码中心语料库可以分为三个层次。第一层是高性能操作符库,包括CUTLASS这个用于矩阵操作的CUDA C++模板库,FlashAttention实现快速且内存高效的精确注意力机制,FlagAttention在Triton中提供内存高效的注意力操作符,AoTriton为AMD ROCm提供AOT编译的Triton内核。还有xFormers提供可攻击和优化的Transformer块,Liger-Kernel为大型语言模型训练提供高效的Triton内核,FlagGems为大型语言模型提供基于Triton的操作符库。

第二层是框架和系统集成,包括PyTorch的基础张量库ATen,vLLM高效服务引擎,SGLang为大型语言模型提供结构化生成语言,llama.cpp在C/C++中进行大型语言模型推理,TensorRT-LLM为大型语言模型推理提供TensorRT工具箱,以及DeepSpeed用于大规模模型训练的系统。

第三层是领域特定语言,包括Triton开源GPU编程语言,TileLang基于瓦片的优化语言,以及cuTile这个NVIDIA面向瓦片中心编程的领域特定语言。

知识库和教育资源包括文档和指南,如CUDA C++编程指南、PTX ISA参考和NVIDIA架构调优指南。社区索引和教程包括GPU-MODE资源流和KernelBook,Triton优化的社区索引,CUDA的社区策划列表,出色的GPU工程列表,CUDA编程练习LeetCUDA,学习Triton的谜题集合,以及专门用于高性能计算和AI的Colfax Research技术中心。

四、评估基准:如何判断AI写的代码好不好

系统化的内核生成评估需要考虑多个关键因素,就像评判一道菜不仅要看味道,还要考虑营养价值、制作难度和成本效益。现有的评估基准通常采用基于执行的单元测试,将生成的内核与CUDA或PyTorch的标准实现进行比较。考虑到操作符生成的不稳定性,每个测试任务通常涉及在n次生成中对k个随机样本进行多次评估。

在评估指标方面,正确性主要包括两个方面:成功编译和在多个输入输出比较中与参考实现的一致性。在代码生成中使用的各种指标中,pass@k被广泛选择,它计算在k次尝试中至少生成一个正确实现的概率。标准估算器定义为期望值,其中期望是对内核任务和提示而言,c是正确内核实现的数量。

效率是内核评估关注的另一个主要目标。Speedup@k测量生成的实现与基准相比的速度提升,通过计算期望值来衡量,其中Tj是第j个生成实现的运行时间,而Tbase是基准消耗的时间。注意实现按其性能排序,即T1对应最慢的,Tn对应最快的。

此外,Efficiency@k指的是生成的操作符在执行过程中如何有效利用计算资源,而Compatibility在评估跨不同硬件平台或语言的操作符生成技术时被考虑。复合指标也用于评估性能的多个方面。例如,Perf@K测量来自K个生成内核的最佳结果与人类专家性能的接近程度。fastp联合评估生成内核的功能正确性和运行时性能。Similarity使用4个项目(n-gram、加权n-gram、语法和数据流)来测量生成代码与参考代码之间的相似性。

评估数据集方面,内核基准正在从简单的单平台评估向全面的现实世界和通用化操作符评估发展。研究团队观察到三个关键趋势。

在指标方面,超越基本正确性和原始加速比,最近的套件采用复合目标。例如TritonBench中的效率指标和Robust-kbench中的鲁棒性评估。评估正在扩展到NVIDIA专有性之外。与早期仅针对NVIDIA GPU的基准如ParEval和KernelBench相比,MultiKernelBench集成了华为NPU和Google TPU,而TritonBench-revised则针对AMD GPU。

在内容方面,工作负载正在从通用算法转向生产级轨迹。KernelBench和TritonBench强调从流行GitHub仓库和The Stack v2策划的现实世界PyTorch到CUDA或Triton内核生成。FlashInfer-Bench标准化了1600个现实世界的大型语言模型服务工作负载,BackendBench针对复杂边缘情况。

具体来说,ParEval包含420个专家选择的跨12个算法领域的任务,用于评估通用并行代码生成。KernelBench提供250个PyTorch到CUDA内核生成任务,从流行的GitHub仓库和官方PyTorch操作符策划,用于评估AI/深度学习内核生成。TritonBench通过两个子集评估Triton内核生成:184个来自流行GitHub项目的高级内核和166个来自具有不同使用频率的多样化PyTorch操作符的融合任务。

MultiKernel-Bench提供跨14个操作符类别的285任务基准,用于多平台深度学习内核合成。TritonBench-revised和ROCm Benchmark是以AMD GPU为中心的评估数据集,包含30个专家验证的ROCm内核和TritonBench-G的适配版本,专门为AMD GPU性能基准测试进行了优化。

Robust-kbench是一个专注于鲁棒性的基准,包含9个专业深度学习任务类别,通过完善和扩展KernelBench衍生而来。BackendBench是一个严格的评估框架,对271个操作符执行PyTorch官方核心库标准。CUDAEval利用来自The Stack v2的313个策划任务来评估CUDA代码优化中推理传递的效果。FlashInfer-Bench提供了描述内核定义、工作负载、实现和评估的统一模式,包括在大型语言模型推理中使用的八种代表性内核类型。

五、挑战与机遇:通往未来的道路

虽然大型语言模型和代理的集成显示出自动化内核生成的强大潜力,但这个领域仍处于发展的早期阶段。要从有前景的原型过渡到生产级系统,需要解决一系列相互关联的挑战。这些挑战涵盖数据、代理、基础设施、评估和人机协作等多个维度,很可能会塑造下一代AI驱动的内核生成和优化系统。

数据稀缺性和合成扩展问题仍然是制约生产级性能的根本因素。高性能内核表现出明显的长尾分布特征,在现有代码语料库中的代表性严重不足,大多数可用数据集仍然缺乏深入的硬件感知领域知识。现有语料库主要捕获最终优化的内核,但省略了优化轨迹。有前景的方向包括系统化的内核数据集构建、大规模合成数据生成以及执行驱动优化过程的收集。这些数据可以支持广泛的学习范式,包括预训练、监督微调和强化学习,对于在内核生成系统中实现有意义的扩展行为可能是至关重要的。

代理推理和工程标准方面,当前基于代理的内核优化依赖于预定义的工作流驱动范式,由于冗余探索和上下文耗尽,往往在长时间任务上失败。为了超越这些限制,研究团队提出了三个关键进展:通过从手工制作的工作流转向自主规划和动态记忆来增强自主性;通过将分散的启发式方法整合到结构化知识库中来实现原则性推理;通过严格的工程标准确保可靠性,包括形式验证和严格规范。共同解决这些挑战对于将代理内核优化从探索性自动化转变为强大的工程级能力至关重要。

可扩展的合成和训练基础设施仍然是一个瓶颈,因为快速模型推理和昂贵内核编译之间存在严重的延迟不匹配。这种差异阻碍了强化学习和合成数据生成所必需的高吞吐量反馈循环。应对这一挑战需要通过标准化的分布式"gym-like"环境干净地分离模型推理和环境执行的基础设施,同时支持大规模的分布式和异步执行。最终,可扩展基础设施的进展对于将内核合成和数据采样从低吞吐量实验转变为系统化的数据驱动学习过程至关重要。

评估鲁棒性和泛化能力是AI驱动内核生成中的一个关键开放挑战,即缺乏强大和全面的评估。现有基准通常局限于NVIDIA生态系统内的固定输入形状和前向传播原语,无法反映现实世界工作负载的多样性。解决这些差距需要联合评估跨形状、操作符和生态系统的鲁棒性和泛化的评估协议,为衡量内核生成研究进展提供更可靠的基础。

人机协作的内核生成代表了一个重要且互补的范式。除了完全自动化的方法,人机协作如何系统地结合代理探索与人类专业知识以扩展设计空间并在性能关键设置中改进可控性,这是一个开放的研究问题。为了实现这一点,研究团队确定了两个关键要求:可解释性,其中代理为优化决策提供可解释的理由以便于专家验证;混合主动交互,一种人类指定高级约束而代理执行实现和调优的范式。建立这种原则性的劳动分工对于平衡可控性与自动化的可扩展性至关重要。

这项研究突出了大型语言模型和代理工作流在自动化高性能内核生成方面的变革潜力,综合了监督微调、强化学习和多代理协调方面的最新进展,以及内核中心数据集和基准开发的进展。展望未来,未来的工作应该超越刚性工作流,转向具有强硬件泛化能力的自我演进代理推理。这种转变不仅对于减轻手工内核工程的负担至关重要,而且对于面对快速扩展的AI基础设施释放显著的生产力增益也是必要的。

Q&A

Q1:什么是GPU内核程序,为什么很难编写?

A:GPU内核程序就像是连接大脑思维和手脚动作的神经系统,负责把我们的高级指令翻译成GPU芯片能理解的底层操作。编写这些程序极其困难,需要工程师既懂算法设计,又要深入了解各种硬件架构的复杂细节,就像要求一个厨师不仅要会做菜,还要精通炉具的内部构造。更麻烦的是,不同GPU需要完全不同的优化策略,随着硬件更新,代码可能需要重新优化。

Q2:大型语言模型是如何学会写GPU内核代码的?

A:研究团队采用了两种主要训练策略。一种是监督式微调,让AI通过大量优秀代码范例进行模仿学习,就像学生跟着优秀老师学习。另一种是强化学习,让AI通过反复试错和奖惩机制来提升,类似于通过实际操作学习编程技巧。关键是训练数据的质量要高,而且要有合理的奖励机制来引导AI朝正确方向发展。

Q3:智能代理系统在GPU内核开发中有什么优势?

A:智能代理系统让AI具备了类似人类工程师的工作能力,能够制定计划、使用工具、评估中间结果,并通过闭环的自我改进过程来持续优化代码性能。与单纯的大型语言模型不同,代理系统不是一次性生成代码,而是可以反复测试、修改、优化,就像程序员的完整工作流程。它们还能处理多样化的工作负载和硬件平台,保持长时间高效探索而不会疲劳。

相关内容

消息称R星仍在开发《荒野大...
IT之家 1 月 26 日消息,R 星《荒野大镖客:救赎 2》于 ...
2026-01-26 22:50:26
北京AI研究院开发AI智能...
在计算机世界里,有一种特殊的程序叫做"内核"(Kernel),它们...
2026-01-26 22:49:41
Meta暂停青少年使用AI...
Meta公司宣布"暂时停止"青少年与其AI角色聊天的功能,该公司正...
2026-01-26 21:20:13
Windows的终局会是L...
近几年,Windows 的更新和体验问题一直让用户头疼。Bug 多...
2026-01-26 20:48:45
康跑AI智慧体育2026专...
近日,AI智慧体育2026专家研讨会在长沙成功启动,此次活动由康跑...
2026-01-26 18:19:00

热门资讯

原创 2... #春日生活好物种草季#近年来,笔记本电脑市场迎来技术爆发期,尤其在手机厂商跨界入局后,轻薄本在性能、...
AMD锐龙AI 9 HX 37... 2024年6月3日,AMD正式发布全新的锐龙AI 300系列处理器。该系列处理器一经发布就引发大家的...
2024云栖大会|阿里云升级无... 北京商报讯(记者魏蔚)9月20日,阿里云无影AI云电脑在2024云栖大会上展出,该版本基于最新的终端...
5个AI模特生成软件推荐 当前AI模特生成软件市场提供了多样化的解决方案,以下是几款备受推崇的工具: 触站AI:强烈推荐!...
骁龙本这么猛?联想YOGA A... 在人人都是自媒体的时代,一部手机可以解决出镜拍摄问题,而商务出差、大量码字、图像处理等需求用笔记本则...
2023年CentOS与Ubu... CentOS与Ubuntu的市场格局与技术特性探讨 在服务器操作系统领域,CentOS与Ubuntu...
MWC2025荣耀多款AI技术... 人民财讯3月6日电,2025世界移动通信大会(MWC 2025)上,荣耀MagicBook Pro ...
苹果macOS 15.1:允许... 苹果公司在其最新的macOS 15.1版本中,推出了一项引人注目的新功能——允许用户将Mac App...
原创 苹... 前言 IQUNIX在做好看的桌面产品上,一直都给我留下非常深刻的印象。而且早期和苹果产品的设计风格...
原创 华... 在2024年这个被誉为"AI元年"的关键时刻,随着生成式AI的流行,各家手机厂商都在积极备战AI手机...