AI编程里程碑,谷歌AI自己写代码惊呆工程师,GPU内核算法反超人类21%
近期,基于谷歌 AlphaEvolve 的开源实现 OpenEvolve 取得重大突破。它通过自我学习、自主编写代码,在苹果芯片上成功进化出性能超越人类工程师编写的 GPU 核函数,在真实的 Transformer 推理任务中,带来平均 12.5% 的性能提升,峰值更是飙升 106% ,直接超越人类工程师 21%。这一成果标志着 “AI 为 AI 编程” 新时代的开启,是自动化编程史上的重要里程碑。
此前,谷歌的 AlphaEvolve 就展现出强大的自我进化能力,取得诸多令人瞩目的数学成果,如改进 4x4 矩阵乘法运算次数、推进六边形填充问题研究以及改进 “接吻数问题” 解法等,在科学界引起巨大轰动。此次 OpenEvolve 的成功,进一步证明了 AI 在编程优化领域的巨大潜力。
挑战:GPU 核函数优化难题
现代 Transformer 模型高度依赖优化后的注意力核函数,但编写高性能的 GPU 代码颇具挑战,需要掌握特定硬件架构细节(如 Apple Silicon 的统一内存、SIMD 单元)、底层编程语言(如 Metal Shading Language)、数值算法设计(如注意力机制、数值稳定性)以及内存访问模式优化等多领域的深厚专业知识。
为验证 OpenEvolve 的能力,patched.codes 的联合创始人兼 CTO Asankhaya Sharma 以 Qwen3-0.6B 模型的分组查询注意力(GQA)实现为目标,尝试让 OpenEvolve 自动生成超越 MLX 生产级的 “scaled_dot_product_attention” 核函数代码。项目选用配备统一内存的苹果 M 系列 GPU,以 MLX 的高度优化注意力实现方案为基线,旨在全自动发现 Metal 核函数的优化方法。
进化方法与设置
Sharma 将 OpenEvolve 配置为直接进化 Metal 核函数的源代码,同时保持其与 MLX 框架的集成方式。整个系统从基础的三阶段注意力实现方案起步,历经超过 25 代的进化。
在评估策略上,每一个进化生成的核函数都要经过多维度严格测试:与 MLX 基线进行数值精度对比以验证正确性;在 20 个多样化的推理场景(涵盖短 / 长上下文、生成任务)中开展基准测试评估性能;进行 GPU 错误检测和 Metal 内存访问验证以完成安全性检查;多次重复运行进行统计分析确保性能稳定,实现鲁棒性分析 。
关键优化策略
在进化过程中,OpenEvolve 自主发现了一系列创新优化策略:
- 针对 Apple Silicon 的 SIMD 优化:OpenEvolve 巧妙地发现,将 128 维注意力头的数据按 8 个一组处理,恰好能完美适配 Apple Silicon 硬件的 SIMD 宽度,无需人工调优就能充分发挥硬件性能,提高硬件利用率。
- 两阶段在线 Softmax(Two-Pass Online Softmax):OpenEvolve 把传统 Softmax 归一化和值累加的两个步骤融合到一个计算循环中。传统算法完成整个流程需要三个阶段,先计算注意力得分,再归一化,最后加权求和;而优化后的方法两步即可完成,简化了流程,降低了内存带宽占用,提升了运行速度,节省了资源。
- 针对 GQA 的特定内存布局优化:针对 Qwen3 模型查询头与键值头 5:1(40:8)的特殊比例结构,OpenEvolve 设计出独特的合并内存访问模式。这种模式与 Apple Silicon 的统一内存架构高度契合,极大地提高了效率 。
评测结果
经过全面测试,进化生成的核函数在综合基准测试中表现卓越:解码速度平均提升 12.5%(标准差 σ = 38.3%);预填充速度平均提升 14.4%(标准差 σ = 17.6%);总吞吐量平均提升 10.4%(标准差 σ = 30.7%);内存使用量平均降低 0.99%(标准差 σ = 1.7%);在正确性方面保持 100% 的数值精度,且可靠性高,未出现 GPU 错误或核函数崩溃的情况。
在处理重复性模式生成任务时,该核函数的解码速度更是提升了 106%,充分展现出其在特定工作负载下的超强性能。从统计数据来看,在 20 个不同测试任务中,有 7 个任务性能增长超过 25%,实现了质的飞跃;3 个任务有 5 - 25% 的中等增益;4 个任务性能持平(±5%);6 个任务出现性能回退(<-5%) 。
背后功臣:高鲁棒性评估系统
OpenEvolve 背后的评估系统在项目成功中发挥了关键作用。它专门针对 GPU 核函数开发挑战设计,具备多项强大的安全特性:能自动检测 Metal 命令缓冲区错误并恢复;安全处理 GPU 内存访问违规;为瞬时 GPU 错误提供指数退避重试机制;当核函数彻底失败时,可优雅降级到备用方案 。同时,该系统还能全面统计错误信息。凭借高鲁棒性,评估系统为 OpenEvolve 大胆尝试各种优化方案提供了有力保障,让其无需担忧代码出错导致程序崩溃,从而不断挖掘性能潜力。
技术深度剖析
- 面向 GPU 核函数的进化架构:OpenEvolve 多个组件协同工作,推动项目取得成功。智能代码标记保证进化过程仅针对 Metal 核函数源代码,同时完整保留与 MLX 框架的集成代码;富含上下文信息的提示词为进化提供性能数据、硬件规格和优化方向等关键指南;多目标评分机制综合权衡性能、正确性和安全性等多个目标进行评分;特定硬件验证确保所有测试和优化都适配 Apple Silicon 硬件 。
- 面向 GPU 优化的提示词工程:为进化过程提供的提示词,为 OpenEvolve 提供了至关重要的上下文信息,帮助模型更好地理解任务和硬件要求,进而探索出有效的优化策略。
更深远的影响
本次 GPU 核函数的成功优化,揭示了以下重要原则:
- 专业知识的自动化探索与发现:OpenEvolve 在进化探索过程中,自主发现了涉及 Apple Silicon 架构细节、Metal 编程语言精妙之处、注意力算法变体以及内存访问模式优化等多领域的专业知识,且这些知识并非由人类工程师直接提供。
- 面向特定硬件的自适应优化:最终的优化方案是根据 Apple Silicon 硬件特性量身定制的,表明 OpenEvolve 具备自动挖掘和利用特定硬件特性的能力。
- 算法层面的创新:进化过程中发现的 “两阶段在线 Softmax” 算法是一项新颖的技术成果,其应用潜力不仅限于本次实验场景,有望在更多领域发挥作用。
- 具备投产应用的价值:这些优化成果并非理论设想,而是在真实的 Transformer 推理负载中能切实提升性能的实用技术,具备在生产环境中部署应用的价值 。
核心技术架构升级
自项目启动以来,Sharma 对 OpenEvolve 的核心能力进行了显著增强:
- 可复现性(Reproducibility):通过完全确定性的进化过程,保证科研级别的可复现性,便于其他研究人员重复实验和验证结果。
- 可视化(Visualization):提供可交互的进化树视图,支持实时性能追踪,方便开发者直观了解进化过程和性能变化。
- 岛屿进化(Island Evolution):通过种群迁移实现并行进化,增强解空间的探索能力,提高搜索效率,更快找到更优解决方案。
- 稳健的检查点机制(Robust Checkpointing):支持自动保存进度,并能从中断处恢复进化会话,避免因意外中断导致的工作损失,提高开发效率 。
如果开发者想要亲自上手体验,挑战 GPU 核函数优化或其他复杂难题,可以参考以下链接:
- GPU 内核优化指南:https://github.com/codelion/openevolve/tree/main/examples/mlx_metal_kernel_opt
- 通用教程:https://github.com/codelion/openevolve#getting-started
- 配置参考:https://github.com/codelion/openevolve/tree/main/configs
©️版权声明:若无特殊声明,本站所有文章版权均归AI工具集原创和所有,未经许可,任何个人、媒体、网站、团体不得转载、抄袭或以其他方式复制发表本站内容,或在非我站所属的服务器上建立镜像。否则,我站将依法保留追究相关法律责任的权利。