游乐游手机版
首页/AI教程/文章详情

个GPU内核实测 AI写代码局部强但协同弱

时间:2026-06-29 15:17
87个多GPU内核生成测试显示,AI在单设备局部代码上表现可靠,但跨设备协同任务中零样本正确率仅32%,agent循环约20步后增益归零,且无法修复无反馈信号的死锁。AI编程可靠性随协同需求增加逐层崩塌,多设备分布协同是当前最大瓶颈。

你在终端里敲下 tab,AI 补全了剩下的代码。编译通过,逻辑通顺,变量命名比你写的还漂亮。你甚至有点恍惚——这家伙是不是真的懂我在干什么?

然后你把这段代码放到多卡环境跑,三秒后 GPU 全部 hang 住,nvidia-smi 显示进程还在,但通信像被按下了暂停键。

AI 编程的真实水平就在这里:它能写出让你惊叹的局部代码,但一旦涉及它没见过的跨设备协同失败模式,再强的模型也会交出编译通过但死锁的东西。

局部能打满分,全局就开始露馅

Together AI 最近放出了一个叫 ParallelKernelBench 的 benchmark,里面包含 87 个真实的多 GPU 内核生成任务。每一个任务都要求替代 PyTorch NCCL 的标准实现,自己写 CUDA kernel 直接走 NVLink、走对称内存、走 GPU 之间的数据搬运。单 GPU 写 kernel 已经够难了,多 GPU 的设计空间还要乘上 tensor 切分、context 切分、data 切分、expert 切分、sequence 切分、FSDP 切分的排列组合。瓶颈从本地算力/显存漂移到了互联/通信,模型还得自己选 GPU 间数据搬运的方式——copy engine、TMA、SM load/store 还是 NVLS。

结果怎么样?zero-shot 最好的模型只对了 28/87,其中 22 个比 PyTorch NCCL 基线快。给三次机会,最好成绩提到 36/87 正确、27/87 更快。fast_1@3 卡在 31%。

这些数字背后有两个规律,比数字本身重要得多。

第一个规律:弱模型更容易卡在编译阶段——语法错、类型对不上、API 调用不对;强推理模型的问题则更多上移到运行时:代码能编译,结构也工整,但跑起来要么输出错,要么直接死锁。这里不要把它读成精确百分比,重点是失败位置从“语法层”移到了“协同层”。

这恰好戳穿了一个幻觉:AI 写代码的分层可靠性,关键变量已经从「它理解逻辑」滑向了「它见过足够多相似样本」。局部语法和模式匹配是 AI 的舒适区,因为 GitHub 上到处都是单 GPU kernel 的写法。但多 GPU 的 rank 协调、数据分区、集合通信排序、传输机制选择——这些在训练数据里稀疏得多,而且每个场景的组合都不一样,没有现成模板可以抄。强模型翻车发生在它没见过足够多样本、也推导不出正确组合的空间里——不是写不出语法正确的代码,而是写出的代码能顺利编译,一跑就死。

第二个规律:agent 循环确实有帮助,但有一个硬天花板。Gemini 3 Pro 从单次 24/87 正确,经过 agent 循环(跑代码、看报错、修 bug 再跑)提升到 35/87 正确、26/87 更快,修复的主要是语法错误、shape 不匹配、简单的运行时 bug。原测试记录里,约 20 步 refinement 之后,增益就平了。

这很说明问题。agent 循环能修的东西都是有明确反馈信号引导你修的东西——编译器报错告诉你第几行哪个变量类型不对,你改就是了。但死锁没有这种信号。八个 rank 互相等着对方发消息,没有报错信息,没有栈回溯,除了超时你什么都不知道。debug 这种问题靠的是对通信拓扑的理解——你必须在脑子里建一个分布式系统的模型才能定位到哪个 rank 卡在哪个 barrier、哪个 collective 操作顺序错了。agent 循环在反馈信号空白的空间里就是瞎撞。

AI 编程信任度矩阵
AI 编程信任度矩阵

从单卡到多卡,AI编程的可靠性逐层崩塌

把 87 个任务按「局部 vs 全局」「模式化 vs 协调需求高」两个维度切开,你看到的是一张有明确断崖的地图——每一层对应不同的分层可靠性水平。先说清楚:下面这张图不是 PKB 官方分类,而是把它的 collective primitive、tensor/context/expert parallel、FSDP/ZeRO 等任务,翻译成开发者更容易用的信任度地图。PKB 的 87 个任务主要落在后两层;前两层是我们日常使用 AI 编程时的对照组。

第一层——单设备、模式密集、有即时反馈信号的任务。AI 在这里已经非常可靠。你画个 UI 组件,写个 CRUD 接口,生成测试用例,补充文档——这些事 AI 做起来又快又好,因为互联网上到处都是这些代码,模型见过的样本量足够大,而且你做错了浏览器直接报错、测试直接挂,反馈回路极短。可信度:高。

第二层——单模块重构、中等规模的业务逻辑。AI 能写出不错的第一版,但你必须审。它可能漏边界条件,可能改了 A 函数影响到 B 模块的一个隐含依赖,但因为还在单进程单设备上跑,出错了你能立刻看到。可信度:中,需要人工 review。

第三层——CUDA kernel、性能敏感代码。AI 能生成语法正确的代码,但「正确」和「高效」之间隔着一套它没有内化的人的经验。它能写出对的规约求和,但用 shared memory 省几次 global memory 访问、怎么躲 bank conflict、寄存器压力多大——这些它只能碰运气。不过好在单 GPU 的 kernel 错了至少报错,反馈回路还在。可信度:中低,跑得过编译不等于跑得出正确结果。

第四层——多设备、多 rank、分布式协同。这是当前 AI 编程的断崖区。模型够聪明,问题在于这层代码的正确性锚点取决于「八个 rank 对全局状态的一致理解」,本地逻辑写得再严密也白搭。你写一个 all-reduce,代码在每一个 rank 上的逻辑看起来都对,但只要 rank 3 的通信顺序和 rank 5 差了一个调用,整个集群就死了。跨设备协同的反馈信号是空的,agent 循环也救不了。可信度:低,除非你同时配了硬测试、profiler 和人工审核。

ParallelKernelBench 里也有相当漂亮的正面案例:一些 AI 生成的 kernel 打败了公开的参考实现,比如 NeMo-RL 的 vocab-parallel log-prob/top-k/top-p、Hyena 的 context parallelism、SAM 3 的 mask IoU suppression——这些结果在 4 块 H100 上经过重复随机测试验证过。AI 在这个层次上的真正问题是「不可靠」——你不知道它这一次行还是下一次行,这一个任务行还是下一个任务行。

反馈信号耗尽以后,模型只会原地打转

agent 循环在约 20 步后增益归零,这个现象值得单独拎出来讲。

在单设备任务上,agent 循环的价值很大。你让它写一个 React 组件,跑起来不对,浏览器控制台有错,它读报错修代码再跑,三五轮下来基本能搞定。这是因为错误信号和修复路径之间存在清晰的映射——报错说 props 类型不对,改 props 类型;报错说 API 404,检查 URL。

但在多 GPU 协同任务上,错误信号和修复路径之间的映射是断裂的。八个 rank 全卡住,你能看到的只有「跑不动了」。是通信顺序错了?是某个 rank 的数据 tensor 维度和其他 rank 不一致?是某个 src/dst 配错了?没有报错告诉你。模型只能猜,猜不到就往回退,退回到它训练分布里最常见的模式——而那往往是错的。

agent 循环的能力边界等于它所依赖的反馈信号的丰富程度。信号密集的空间里它能自我进化,信号空白的空间里它就是瞎撞。多 GPU 编程是信号空白的典型代表:它的错误藏在代码之间的运行时交互里,单元测试根本碰不到。

这才是开发者真正需要内化的东西。你需要的是分层可靠性判断——「在什么场景下可以给它多大自主权」——而不是一个「AI 编程靠不靠谱」的简单答案。你给 AI 一个 CRUD 接口写完直接合,问题不大;你给 AI 一个需要协调八个 rank 的集体通信 kernel 让它自己跑,那是你心大。

把 AI 当成一个见过海量代码但从来没有真正跑过多 GPU 集群的初级工程师。它写的东西看起来像模像样,局部逻辑无可挑剔,但你得替它想清楚那些它没见过的全局约束。在你给它这些约束之前,它的输出是一枚编译通过的死锁冲击波——不爆纯粹靠运气。

我会把它落成一个很土的把关法:

  • 可让 AI 自主写:UI、CRUD、脚手架、测试样例、文档补齐;前提是测试能立刻给反馈。
  • 可让 AI 写第一版:单模块重构、业务逻辑、单 GPU kernel;前提是人审接口、补边界用例、跑 profiler。
  • 不能让 AI 独自决定:多 rank 通信、跨设备数据搬运、分布式训练里的 collective 顺序;协议由人定,AI 只能当实现助手。

官方结果给的是 87 个任务上的成功率;本文的“分层可靠性”是把这些结果翻译成日常开发决策。你可以不同意分层的边界,但至少别再用一个总分回答“AI 编程行不行”。真正要问的是:这段代码的反馈信号够不够密,失败会不会藏在多个进程之间。

延伸阅读

ParallelKernelBench: Frontier LLMs can't write fast multi-GPU kernels (yet) — https://www.together.ai/blog/parallelkernelbench
ParallelKernelBench paper — https://openreview.net/forum?id=4IGomFc9dx
ParallelKernelBench GitHub — https://github.com/togethercomputer/ParallelKernelBench

来源:https://cloud.tencent.com.cn/developer/article/2699958
上一篇健康AI中大型前沿模型稳健性与应用准备度评估 下一篇AI Agent测试:工具调用链的可审计回归方法
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
Windows Docker Desktop RabbitMQ生产级部署完整指南
AI教程 · 2026-06-29

Windows Docker Desktop RabbitMQ生产级部署完整指南

前言 在 Windows 本地开发环境中,直接安装 RabbitMQ 确实颇为周折:需要单独配置 Erlang 运行环境、手动管理环境变量、服务启停全凭手工操作。更令人困扰的是,版本兼容冲突、端口占用、环境不一致等问题层出不穷。笔者见过不少开发者为搭建环境就得耗费整整半天时间。 相比之下,借助 Do

AI搜索重构制造业采购逻辑的阿里云企业级GEOCMS优化实践
AI教程 · 2026-06-29

AI搜索重构制造业采购逻辑的阿里云企业级GEOCMS优化实践

先分享一个切实感受。过去两年,我们与福建制造企业合作较为频繁,发现一个非常突出的现象:超过80%的企业官网,产品参数仍然存放在PDF或图片中。AI爬虫?根本无法抓取。这些企业技术实力不弱、资质证照齐全、应用案例也丰富,但在AI搜索这一全新战场上,它们几乎处于隐身状态。 一、一个正在发生的行业变化 A

阿里云Token Plan团队版功能价格与省钱购买指南
AI教程 · 2026-06-29

阿里云Token Plan团队版功能价格与省钱购买指南

阿里云百炼近期推出了名为“Token Plan 团队版”的全新服务,这一服务专为企业与开发者量身打造,定位为AI大模型订阅平台。通过引入Credits作为统一计量单位,将文本生成、图像生成等多模态AI能力纳入单一计费体系,同时无缝兼容主流AI编程工具及智能体(Agent)生态系统。其核心亮点包括:全

阿里云物联网.NET Core客户端位置信息上报
AI教程 · 2026-06-29

阿里云物联网.NET Core客户端位置信息上报

阿里云物联网平台的位置服务并非一个完全独立的功能模块。位置信息可包含二维坐标与三维坐标,而位置数据的来源本质上是借助设备属性进行上传。换言之,若要让设备上报位置,您需先将其视为一个普通属性进行处理。 1)添加二维位置数据 操作过程十分简洁。进入数据分析 → 空间数据可视化 → 二维数据,点击添加,将

年阿里云服务器选型配置与网站部署全攻略
AI教程 · 2026-06-29

年阿里云服务器选型配置与网站部署全攻略

2026年,阿里云服务器生态已高度成熟,形成了清晰的轻量应用服务器与ECS云服务器两大产品阵营。无论你是计划搭建个人博客、企业官网,还是运营电商平台、进行应用开发,基本都能找到理想的解决方案。本指南将从服务器选型、配置选择、部署流程到安全运维,系统梳理2026年最实用的操作要点,帮助你少走弯路,让网