Claude的人工智能编译器CCC
搜索文档
芯片编译器:新王当立?
半导体行业观察· 2026-04-03 09:55
文章核心观点 - 文章以讽刺和夸张的笔调,通过对比由大型语言模型(Claude)编写的C编译器(CCC)与人类编写的传统编译器(GCC)的性能表现,论证了当前人工智能在软件开发领域的激进应用可能带来严重的性能倒退问题,并暗示这种“AI革命”的盲目推进需要硬件性能的巨幅提升来弥补软件效率的损失 [1][46][49] 编译器技术对比 - Anthropic公司使用其Claude大型语言模型编写了名为CCC(Claude‘s C Compiler)的C语言编译器,该编译器从零开始构建,没有依赖项,能够编译Linux内核,人工干预仅限于提示、维护AI编码代理和搭建测试套件 [2] - 在微基准测试中,CCC生成的汇编代码量远多于GCC,例如将一个简单的数组依赖访问循环编译成更长的指令序列,这符合其遵循的RISC理念,即将复杂操作分解为多条简单指令 [4][9] - 在类型系统处理上,CCC展现出“革命性”态度,对于存在类型问题的代码,GCC会报错并拒绝编译,而CCC则忽略错误并生成可执行文件 [19][20][22] 性能测试结果(SPEC CPU2017) - 在SPEC CPU2017的八个C语言工作负载测试中,使用CCC编译的代码平均导致性能下降超过70% [25] - 具体案例显示,CCC编译的502.gcc在x86-64架构上运行时,性能仅为GCC版本的23.6%(Intel Lion Cove)和27.1%(AMD Zen 5) [25] - 在505.mcf测试中,CCC表现相对最好,但性能仍比GCC版本低35%以上 [25] - CCC编译的502.gcc在Arm Cortex X925上持续出现段错误并崩溃 [25] 对硬件微架构的影响分析 - CCC生成的代码导致观察到的内存访问延迟增加,在AMD Zen 5和Intel Lion Cove上需要额外两个周期,在Arm Cortex X925上则承受6-7个周期的延迟,部分原因被归结于Arm核心移动消除能力较弱且无法实现零延迟存储转发 [14][40] - 执行引擎较窄的小型核心以及按序执行核心在处理CCC编译的代码时会遇到更大困难,性能惩罚更重 [16][18] - 性能监控显示,CCC编译的代码改变了CPU流水线的瓶颈:浮点工作负载变得非常依赖核心性能;整数工作负载对前端的依赖性降低,但后端面临更大挑战 [34] - 在特定工作负载(如500.perlbench)中,CCC代码极低的操作缓存命中率暴露了AMD Zen 5解码器架构的缺陷,导致其性能落后 [37] - CCC代码极大地增加了指令数量,在某些工作负载中,执行的指令数甚至超过GCC版本的十倍 [32] - 尽管性能下降,但CCC编译的代码在某些情况下实现了更高的每时钟周期指令数(IPC),例如在525.x264测试中,Intel Arrow Lake运行CCC代码的平均IPC达到6.09,高于GCC的最佳平均IPC 5.5 [30] 行业与硬件发展暗示 - 文章以讽刺口吻提出,要弥补CCC带来的超过70%的性能差距,硬件需要实现20-30 GHz的时钟频率并经过数代架构改进,这依赖于颠覆传统的功耗观念,即接受“无限的功耗”来支持以前难以想象的设计 [49][50] - 文章将当前盲目推进AI在软件开发中应用的现象,类比为需要不计成本投入的“沉没成本”项目,并暗示其发展将“势不可挡” [1] - 通过将运行CCC代码最快的当代CPU(Intel Lion Cove)与约15年前的AMD Bulldozer架构对比,并指出Bulldozer仍比Lion Cove快36.8%,进一步凸显了软件性能倒退的严重性 [46][48]