top of page

Anthropic AI C 编译器花费 2 万美元构建出比 GCC 更慢的二进制文件

Anthropic AI C Compiler Costs $20k to Build Slower Binaries Than GCC

科技界最近见证了一场大规模的自主编码实验:一组 AI 代理成功构建了一个可运行的 C 编译器。该项目常被引用为展示 Anthropic AI C Compiler 能力的范例,涉及 16 个 Claude Opus 4.6 代理并行工作。它们在两周内生成了约 100,000 行 Rust 代码,token 使用成本约为 20,000 美元。

表面上看,标题令人印象深刻。生成的软件可以编译 Linux Kernel 6.9(涵盖 x86、ARM 和 RISC-V 架构)并运行经典游戏 Doom。然而,深入研究实际性能、实用性和代码质量后,叙述从“革命性突破”转变为“昂贵的学术练习”。生成的编译器产生的二进制文件明显慢于标准工具,在基本优化方面表现不佳,且严重依赖现有基础设施才能运行。

性能现实:Anthropic AI C Compiler 的对比

Performance Reality: How the Anthropic AI C Compiler Stacks Up

对于开发者和工程师而言,任何编译器最重要的指标是其生成的机器代码效率。这正是 Anthropic AI C Compiler 无法达到行业标准的地方。

将 Anthropic AI C Compiler 与 GCC 和 Clang 进行基准测试

用户报告和初步基准测试显示存在严重的性能瓶颈。将 Anthropic’s AI solution 生成的二进制文件与 GNU Compiler Collection (GCC) 进行比较时,差异显著。

即使启用了内部“优化”,AI 生成的编译器产生的代码运行速度仍慢于所有优化均关闭的 GCC (-O0)。在系统编程领域,这是一个致命缺陷。一个无法超越三十年前工具基线未优化性能的编译器,在生产环境中毫无实用价值。

问题不仅在于速度,还在于架构完整性。The Anthropic AI C Compiler 缺乏自己的汇编器和链接器。 它执行从 C 到中间表示的高级翻译,但最终将繁重工作——汇编机器代码和链接库——交给系统的现有 GCC 安装。它也无法处理 16 位 x86 编译,这意味着它无法处理 Linux 启动序列中所需的实模式引导代码,需要回退到 GCC 处理这些特定文件。

为何 AI 在后端优化方面表现不佳

工程界的反馈表明,大型语言模型 (LLM) 擅长编译器设计的“简单”部分,却无法应对优化所需的复杂算法逻辑。

编译器实际上分为两部分:前端(解析文本)和后端(优化逻辑)。LLM 擅长解析——这是一项语言任务。将 C 语法翻译成 Rust 结构体是 Claude Opus 擅长的。然而,后端涉及严格的数学概念:寄存器分配的图着色、指令调度、循环不变代码移动和控制流分析。

这些不是语言模式,而是需要严格遵守图论和硬件约束的逻辑难题。The Anthropic AI C Compiler 模仿优化的结构,却不理解底层数学。它生成的 Rust 代码看起来像编译器,但内部算法无法有效减少指令周期或高效管理内存访问。这证明,虽然 AI 可以复制复杂系统的样板代码,但尚无法“推理”解决高性能工程问题。

自主编码项目的架构

了解该项目的构建方式比编译器本身更有价值。该过程为希望部署自主编码代理的公司提供了蓝图——以及警告。

Claude Opus 4.6 代理如何协作生成 100,000 行 Rust 代码

开发过程采用特定的“代理团队”架构。16 个 Claude Opus 4.6 实例在一个自定义框架内工作。这不是简单的聊天界面,而是一个闭环系统。

  1. 任务分配: 代理接收工单(例如,“实现结构体解析”)。

  2. 实现: 代理编写 Rust 代码。

  3. 测试: 系统自动尝试编译并针对测试套件运行代码。

  4. 修正: 如果测试失败,错误日志会反馈给代理进行重试。

此循环发生了近 2,000 次。开发类似系统的开发者的关键收获是“噪声减少”的重要性。早期迭代因测试套件将过多无关数据(stdout 噪声)转储到上下文窗口而失败,混淆了模型。清理输入——仅向 AI 提供特定失败信号——对成功至关重要。

对现有 GCC 链接器和汇编器的依赖

该项目常被描述为“从零开始构建”,但这在技术上不准确。The Anthropic AI C Compiler 充当一个转译器,依赖 GNU 生态系统的重型机制来实际创建可执行文件。通过将汇编和链接步骤卸载给 GCC,AI 绕过了二进制生成中最脆弱的部分。

这种混合方法标志着 AI 软件的一个趋势:依赖确定性的legacy tools for critical infrastructure while using AI for the higher-level logic. 虽然这适用于原型,但它凸显了 AI 目前无法独立处理二进制构建的完整堆栈。

开发者体验和代码可维护性

Developer Experience and Code Maintainability

如果您今天下载源代码,您得到的不是一个可供开源贡献的工具,而是一个人工制品。

检查 AI 生成的 Rust 代码质量

审查该仓库的高级开发者指出,虽然代码可以运行,但它缺乏专业人类工程的细微差别。它功能正常但冗长。

架构具有明显的“学生特质”。在计算机科学课程中,编写 C 编译器是标准的学期作业(“编译器 101”)。一群本科生通常可以在几个月内生成一个可工作的编译器。Anthropic AI C Compiler 处于这个水平。它解决了问题,但没有创新或采用确保长期稳定性的复杂设计模式。

AI 软件开发中的“冻结仓库”问题

该项目最致命的方面或许是其生命周期。自初始发布以来,该仓库几乎没有维护。拉取请求无人回应,问题堆积。

这说明了 AI 生成代码库的一个主要风险:不可维护性。人类编写代码时,会构建系统逻辑的心理地图。当 AI 生成 100,000 行代码时,没有人拥有该心理地图。修复错误需要逆向工程 AI 的逻辑。如果原始“创建者”(AI 代理)不在线修复,代码就会变成“垃圾”——在某一时刻可用,但一旦需求改变就成为死重。

Anthropic AI C Compiler 的经济学

The Economics of the Anthropic AI C Compiler

该项目的 API 积分价格标签为 20,000 美元。这一数字引发了必要的成本效益分析。

分析 20,000 美元的开发成本

花费 20,000 美元来复制一个已经免费存在的工具(GCC/Clang)——而且复制得很差——令人质疑。同等金额可以雇用初级开发者几个月。该初级开发者会学习、改进,并最终为代码库的长期健康做出贡献。AI 积分是沉没成本;模型不会以直接有益于下一个项目的方式“学习”该项目,也不会留下来修复错误。

然而,作为研发来看,成本是合理的。它证明管理 16 个并行代理的上下文窗口和协调是可行的。价值不在于编译器,而在于工作流数据。

学生项目与企业 AI 解决方案

关键的是,Anthropic AI C Compiler 证明 AI 可以自动化“商品化”编码任务——这些任务已被解决数千次,并且有大量训练数据可用。C 编译器有详细的文档。如果任务是新颖的——为一种全新的、没有现有文档的语言创建编译器——代理很可能失败。

这表明,目前自主代理最适合用于搭建标准、广为人知的软件组件,而不是开创新的工程解决方案。

该实验是一次现实检验。我们已经超越了 AI 编码的“Hello World”阶段,但尚未到达“高级工程师”阶段。我们实际上自动化了大二计算机科学专业:能够努力工作并完成作业,但尚未准备好构建互联网的关键基础设施。

常见问题

问:Anthropic AI C Compiler 可以取代 GCC 或 Clang 吗?

答:不能,它不是可行的替代品。它缺少汇编器和链接器等必要组件,生成的代码明显更慢,并且提供的功能少于成熟的开源编译器。

问:AI 是否完全从零开始构建了编译器?

答:不完全是。虽然它生成了 C 到 Rust 的逻辑,但编译器仍依赖 GCC 工具链来汇编机器代码和链接库,并且使用 GCC 编译特定的引导加载程序文件。

问:构建 Anthropic AI C Compiler 花费了多少?

答:The project cost approximately $20,000 in API tokens to run the Claude Opus 4.6 agents. 这涵盖了两周内迭代生成、测试和调试阶段。

问:AI 生成的代码是否可维护?

答:审查表明代码难以维护。因为没有人能直观地理解完整架构,且仓库未被 AI 主动更新,它有成为“死代码”的风险,难以修补或升级。

问:Anthropic AI C Compiler 成功编译了什么?

答:它成功编译了 Linux Kernel 6.9 版本(支持 x86、ARM 和 RISC-V 架构),以及 1993 年的游戏 Doom,证明它可以处理复杂的真实代码库,尽管存在性能缺陷。

 
 

免费开始

一款本地优先的AI助手,具备个人知识管理功能

为了获得更好的人工智能体验,

remio 目前仅支持Windows 10+ (x64)M-Chip Mac

在你的大脑里添加一个搜索栏

Ask remio

记住一切

​无需整理

bottom of page