揭示AWS自研Trainium芯片秘密:NKI重写AI芯片编程规则

硬件的尽头是语法课。

AWS宣布Anthropic未来十年将投入超1000亿美元采购其算力,建设5GW级AI基础设施,用Trainium系列芯片训练Claude。这不仅是订单,更意味着一场更深层的权力转移:AI芯片竞争已从“谁的算力更强”进入“谁能重写程序员与机器的对话规则”。

过去十五年,AI圈几乎所有人都默认了一件事:搞深度学习就得用NVIDIA GPU,写代码就得学CUDA。CUDA就像AI世界的英语——不完美,但绕不开。它用线程、线程块、共享内存这套概念,让开发者觉得自己在精确指挥每一颗计算核心。但AWS正在推出一套叫NKI的编程规则,试图让它的Trainium芯片拥有完全不同的思考方式。很多人第一次接触NKI时会产生一种诡异的感觉:代码看起来像Python,但运行逻辑完全不是那回事。它不像在写一步步执行的指令,更像在跟编译器说:“我要完成这个计算,你看着办,帮我安排机器怎么配合。”这种变化可能比芯片频率提升更重要,因为它动的是底层思维。

CUDA把程序员变成车间主任

CUDA的核心模型其实非常简单粗暴。开发者通常只写一个线程的工作内容,然后通过启动参数告诉GPU要生成几万甚至几百万个这样的线程,让它们同时冲出去干活。每个线程像流水线上的工人,拿同样的工具,处理不同的数据,互不干扰最好,如果非要互相等待,那就得手动加同步点。

这种模式在GPU发展早期非常有效。它把显卡处理图形的能力释放到通用计算上,让物理模拟、图像处理、密码破解都跑得飞快。到了AI时代,矩阵乘法这种天然适合并行的任务更是把CUDA的优势放大到极致。

但问题藏在细节里。当你启动十万个线程时,你实际上在管理一个超级工厂。现代AI模型越来越不像整齐划一的车间,更像一个混乱的中央厨房:矩阵计算、激活函数、数据搬运、归约求和,每种任务的节奏完全不同。CUDA要求开发者手动调节线程块大小、共享内存分配、寄存器数量,像车间主任一样盯着每一个环节。

规模小的时候,人工调度还能应付。到了训练千亿参数模型的时候,这种手动微调的成本高到离谱。程序员花大量时间做性能调优,本质是在帮硬件解决调度问题。这就像老板每天亲自安排一千个员工几点上厕所、几点搬砖,精力全耗在琐事上,根本没空思考怎么改进生产流程。

Trainium把计算任务拆成专业工种

NKI选择了一条完全不同的路。它干脆取消了CUDA里的线程、Warp、Block这些概念。开发者不再写“某个线程该干什么”,而是顺序写下一段计算逻辑,编译器负责分析哪些步骤可以同时干,然后自动分配到不同的计算引擎上。

Trainium芯片里的核心单元叫NeuronCore。它不像GPU那样塞满大量完全相同的小核心,而是像一支特种部队,里面有不同的专家。每个NeuronCore包含四个主要引擎:Tensor Engine负责矩阵乘法这种最吃资源的重活,Vector Engine处理向量运算和归约操作,Scalar Engine搞定激活函数和类型转换,还有GpSimd Engine提供八个512位SIMD处理器应付特殊需求。

这种设计很像现代工厂的流水线。CUDA时代像让一万个普通工人各自独立搬砖,NKI时代更像把任务拆开交给不同专长的技工。矩阵专家只管算矩阵,数据专家只管搬运整理,控制专家负责转换格式。真正考验水平的地方,变成了如何让这几个专家配合得天衣无缝。编译器的角色一下子从“翻译官”升格成了“总调度师”。

NKI内存模型逼你提前规划路线

让CUDA老手最不习惯的,是NKI完全没有硬件缓存。普通CPU和GPU都靠缓存猜测数据接下来会被用到,提前存起来加速访问。Trainium的NeuronCore明确告诉你:别猜了,所有数据搬运你自己安排。

它手里有两块关键缓冲区。SBUF是芯片内部的高速SRAM空间,每个核心大约24到32MB,被硬生生切成了128个物理分区。这个数字是硬件直接焊死的,不是软件随便改的配置。PSUM则是专门存矩阵计算中间结果的缓冲区,防止算到一半数据没地方放。

数据的流动路径异常清晰:


HBM → SBUF → 计算引擎 → SBUF → HBM

HBM是大仓库,负责存海量数据。SBUF是工作台,负责把数据摆好让工程师顺手拿。计算引擎干完活,结果先放回SBUF,最后再存回HBM。

这相当于赛车和家用车的区别。普通GPU像自动驾驶的家用车,缓存会帮你预判路线。Trainium像一辆纯手动挡赛车,没有智能辅助,每一个弯道怎么过、什么时候换挡,都得驾驶员提前规划好。坏处是开起来费脑子,好处是如果你真懂怎么开,它能跑出自动驾驶永远达不到的极限速度。

128个分区像建筑模数一样卡死设计

NKI里最反直觉的限制来自SBUF那128个物理分区。这个数字不是建议,是铁律。程序里每个数据块都被强制切成二维结构:

python
[partition_dim, free_dim]

其中partition_dim必须对应128个元素,直接映射到硬件上那128个真实分区。程序员不能随心所欲地切分数据,矩阵怎么拆、数据怎么排,都得按这套模数来。

这听着像是添麻烦,但它带来一个巨大好处:编译器从一开始就知道所有边界在哪里。GPU面对动态生成的线程,很多调度问题要运行时现算,代价很高。Trainium因为提前锁死了这些尺寸,编译器可以在编译阶段就做激进优化,把计算和搬运安排得明明白白。

矩阵乘法这种大模型训练的命根子操作,在NKI里甚至有固定推荐尺寸:

python
TILE_M = 128
TILE_K = 128
TILE_N = 512

这些数字像建筑行业的标准砖块尺寸。建筑师不能随便设计窗户大小,因为生产线只生产固定规格的玻璃。你不按规矩来,要么装不上,要么浪费材料。AI芯片的未来很可能也是这样:硬件直接规定一套结构规则,软件只能在规则里玩出花来。

Python在这里只负责画施工图

很多新手看到NKI用Python写,第一反应是“这玩意儿速度能行吗”?Python本身慢得要命,用它写芯片程序不是找死吗?

答案藏在执行时机里。NKI里的Python大部分代码跑在编译阶段,而不是芯片运行阶段。你在代码里写循环、读tensor.shape、打印调试信息,这些操作往往在程序真正进入NeuronCore之前就执行完了。真正生成芯片指令的是nki.isa.*这一套接口,它们才会编译成跑在硬件上的ISA指令。

这个区别彻底改变了写代码的思维方式。传统程序员脑子里想的是:“这段代码运行了多少次,花了多少毫秒?”NKI程序员想的是:“这段代码编译出来长什么样,生成了什么计算计划?”

两者差别像厨师和菜谱设计师。前者操心今天炒菜火候够不够,后者操心菜谱写清楚没有,别人拿到能不能复现。CUDA开发者像在管理一群工人每天干多少活,NKI开发者像在设计一套工厂自动运行的程序。角色彻底翻转了。

编译器从翻译官升级为总建筑师

NKI这个体系里真正的主角,其实不是Python语法,也不是某个计算引擎,而是藏在背后的编译器。它承担了CUDA时代程序员手动干的大量脏活累活。

过去GPU优化极度依赖人的经验。顶级CUDA工程师值钱就值在他们脑子里装着线程调度、内存合并、缓存命中这些玄学知识。这种模式培养了一批专家,但也把门槛拉得极高,普通人想写好高性能代码难如登天。

NKI的野心是把一部分复杂度收归编译器。开发者只管描述清楚计算逻辑,编译器自己分析哪些任务能并行、该放Tensor Engine还是Vector Engine、数据提前多久搬进SBUF、计算和搬运怎么重叠起来不让任何一方闲置。

这预示着一个大趋势:AI芯片的竞争正在从纯硬件比拼转向软硬件协同设计。晶体管堆得再多,软件利用率上不去也是白搭。一块拥有一千个计算核心的芯片,如果软件只调度得动一百个,那剩下九百个就是昂贵的电热丝。反过来,核心少一点但编译器能把每个核心压榨到极限,实际性能可能反而更强。

编译器正在从幕后工具变成芯片性能的胜负手。

AWS拉着Anthropic一起改写游戏规则

Anthropic这次下注不只是买算力那么简单。他们承诺未来十年用Trainium训练主要模型,等于把自己的技术路线和AWS的芯片深度绑定。这种合作模式透露出一个信号:AI公司不再满足于当纯用户,开始参与定义硬件方向。

过去AI产业链是一条笔直的单行道:模型公司买GPU,云厂商采购GPU,开发者学CUDA。所有环节绕着NVIDIA转,生态护城河越挖越深。AWS想用Trainium硬生生挖出第二条河道,硬件用NeuronCore,软件用NKI,云服务绑定自家平台,再拉上Anthropic这样的大户一起打磨优化。

这让人想起智能手机时代的路线之争。苹果靠软硬一体封闭生态称王,安卓靠开放联盟扩大地盘。未来AI芯片也很可能出现类似分化。CUDA像英语,好处是会的人多、生态成熟,坏处是历史包袱重。NKI像一门专门为AI重写的新语言,目前会的人少,但设计上可能更干净利落。

程序员未来可能不再控制每一颗核心

NKI最值得琢磨的地方,不是它能不能打赢CUDA,而是它暗示了一种计算思想的转向。过去几十年,计算机科学的核心教条是:你告诉机器每一步具体怎么做。未来AI系统的逻辑可能反过来:你告诉机器目标是什么,让编译器自己找最佳路线。

这和深度学习本身的演进有种奇妙的镜像关系。我们训练大模型,本质上就是让模型从数据里自己摸规律,而不是手写规则。现在设计芯片编程模型,也开始让编译器学习如何安排计算资源。人类从微观管理者退后一步,变成宏观规则制定者。

以前程序员控制每个线程,现在程序员设计计算结构。以前芯片等着软件来适配,现在软件和芯片从零开始一起设计。AI时代最大的变量,可能不是机器算力翻了多少倍,而是人类使用算力的思维模式被彻底重构了。

当代码不再是命令而是蓝图,当编译器不再是工具而是合伙人,程序员这个职业的底层逻辑就在悄悄松动。看似AWS只是造了一颗AI芯片,实际上它可能正在改写未来十年程序员与计算机之间对话的语法书。



未来AI编程将越来越像搭乐高——你只负责设计造型,机器自动找合适的积木。但别高兴太早,乐高说明书有时候也让人想砸桌子。