从模型到机器,一条数据路径

名字不是规格

所谓“更适合AI”,通常不是一颗芯片做了更多种事情,而是它让某一种重复工作少等内存、少搬数据,或者少消耗电量。

把芯片放回完整系统,分类才有意义。训练、在线服务和手机离线识别,可能运行同一个模型,却不会得到同一个最佳答案。

三类AI加速器的数据流取舍图 模型与编译器位于上方,数据经过内存与互连进入GPU、TPU或NPU。三条路径分别强调灵活并行、规则矩阵流和端侧低功耗。 MODEL → COMPILER → MEMORY → COMPUTE 模型图与张量 形状 · 精度 · 批量 · 算子 GPU 大量线程 · 多种内核 矩阵单元 + 通用并行 TPU 大矩阵阵列 · 编译调度 专用互连 + 云端规模 NPU 低位宽推理 · 片上数据 端侧功耗 + 异构协作 灵活性优先 矩阵效率优先 能效与本地性优先
这不是硬件内部结构的等比例图,而是一张阅读地图:模型必须先被软件变成设备能执行的数据流,三类芯片的差异才会显现。

三个名字,三组不断变化的边界

先把商标、产品代际和峰值数字暂时拿开,只看每类机器愿意为哪种工作付出硅面积与功耗。

GPU原本服务图形渲染,擅长让大量相似工作同时推进。现代产品又加入面向矩阵乘加的专用单元,因此既能运行神经网络中的密集矩阵计算,也能处理采样、索引、归一化和自定义程序。它的长处不是“只会并行”,而是在较宽的可编程范围里提供很高的并行能力。NVIDIA 的官方编程指南把这种执行组织描述为大量线程在流式多处理器上运行。[1]

TPU是 Google 为机器学习工作负载开发的专用集成电路家族。其核心强调矩阵乘加阵列,并让编译器提前安排模型图、张量形状和内存。Google 当前文档同时列出矩阵单元、向量单元与标量单元,说明它并非只有一块“乘法板”。它仍要处理激活、地址计算、控制流与主机协作。[3]

NPU更像一类市场与系统术语,而不是一种统一微架构。手机、个人电脑和嵌入式设备里的这类单元,通常针对神经网络推理、低位宽数值和持续低功耗运行。不同厂商支持的算子、内存结构和编译工具差异很大,所以“都有NPU”不等于可以运行同一模型,更不等于性能可直接比较。

这些边界还在互相渗透。现代图形处理器有专用张量单元,专用矩阵处理器也包含向量与标量路径,端侧神经处理器则常与CPU和图形处理器共同完成一张模型图。名称描述的是设计重心,不是绝对纯度。把它们想成三座工厂,比想成三种跑车更准确:车间布局不同,但都要收料、排产、加工和出货。

因此,“哪一种更强”缺少宾语。强在训练大模型、强在单次请求、强在单位电量,还是强在能直接运行研究者刚写的自定义操作?这些目标会互相牵制。更宽的通用性需要控制逻辑、缓存与软件兼容;更高的专用密度则要求模型形状、算子集合和编译器更配合。

芯片产品也不是孤立的方块。数据中心加速器依赖主机、设备内存、芯片间互连和机架网络;端侧单元依赖共享内存、操作系统调度和应用框架。购买一块芯片,实际是在选择一个由硬件、编译器、库、驱动和运维方式组成的系统。比较若只停在芯片名字,就把最容易造成等待的环节删除了。

更快有两种常见含义

批量工厂追求一小时加工多少件,交互窗口关心这一件多久交付;两者并不总能同时最大化。

吞吐量描述单位时间完成多少样本或请求。训练时,较大的批量可以让矩阵形状更饱满,也能把固定启动成本摊到更多样本上。只要内存容得下并且通信能够跟上,增加并行设备往往可以继续提升总产出。但批量越大,单个输入可能越早进入队列、越晚拿到结果。

延迟描述一次请求从进入到结果返回的时间。语音字幕、相机增强和交互式生成,更在意首个结果与尾部请求是否及时。为了把一次请求快速算完,系统可能不能等到凑齐大批量,也无法让所有矩阵单元保持满载。此时较低的峰值利用率可能是低延迟的合理代价。

两种指标还会被排队方式改变。云端服务可以把来自许多用户的请求临时合批,以换取更好的矩阵效率;本地相册分类只有一个用户,也许一次只处理一张照片。芯片宣传页给出的峰值通常假定运算类型、精度和并行度都很理想,而现实应用包含预处理、数据复制、模型加载和后处理。

尾部延迟尤其容易被平均数遮住。若一百次请求里九十九次很快、一次很慢,平均值仍可能漂亮,但那一次卡顿会直接被用户感知。早期 TPU 研究论文特别讨论了数据中心推理的高百分位响应时间,说明确定性执行对在线服务的重要性。那是特定代际与工作负载的结果,不能直接当成今天所有设备的倍数承诺。[4]

功耗又加入第三条轴。数据中心可能更关注每个训练任务的总能量、机架功率和散热限制;手机更关注一次识别是否让设备发热、是否抢占图形渲染、是否耗尽电池。相同的每秒运算数,在十几瓦、几十瓦和数百瓦的系统里代表完全不同的设计意义。

所以,读到“提升数倍”时,先补全句子:在什么模型、什么批量、什么精度、什么软件版本、什么延迟约束和什么功率边界下提升?若这些条件没有写出来,数字最多证明某个测试点很快,不能证明一类架构普遍更快。

同一图像模型的三次搬家

让模型从研究机房走到在线接口,再进入手机,观察决定发生在哪里。

第一站是云端批量训练。模型要反复读取大量图像,完成前向计算、误差反传和参数更新。运算图会出现矩阵乘法、卷积、归一化、随机操作和优化器更新,还要在多块设备之间同步梯度。这里需要较高吞吐、足够大的设备内存、稳定的混合精度训练和成熟的分布式通信。

在这类工作里,通用并行设备的优势是生态广、调试工具成熟、自定义算子容易落地。若团队已经把代码和库围绕相关平台建立起来,迁移成本会影响总训练时间。专用矩阵系统也可以在适配的框架与集群规模上表现出色,但张量形状、编译过程和数据输入管线需要一起优化。选择不是抽象架构之间的决斗,而是两套完整工程路径的比较。

第二站是云端在线识别。模型参数可能已经固定,服务要接收一张图并尽快返回类别。反向传播消失了,批量可能变小,排队与网络开销开始变得突出。一个计算单元很多的设备,若每次只来一张图,也可能因为权重搬运和启动开销而闲置。服务框架能否合批、模型能否常驻内存,往往比增加理论乘法次数更有价值。

此时三类加速器都可能成为候选。通用并行设备适合混合模型与频繁变化的程序;云端专用矩阵系统适合已经编译并能形成规则批量的数据流;专用推理芯片也可能以较低功耗提供稳定服务。关键不是标签,而是它们能否在目标延迟内保持足够利用率,并且不把成本转移给主机或网络。

第三站是手机相册分类。照片来自本机,结果只服务当前用户。把数据发到云端会增加网络等待,也会改变隐私边界。端侧单元若能让模型的大部分操作留在片上或共享内存附近,就可能用更低能耗持续运行。Apple 的 Core ML 文档明确说明,系统会在CPU、图形处理器与神经引擎之间选择执行位置,并考虑数据搬运与单元启动成本。[6]

这也揭示一个常被忽略的事实:应用不一定“只用一种芯片”。图像解码可能在CPU完成,卷积落到专用单元,某个不支持的操作转到图形处理器,结果再由CPU整理。若每次切换都复制大块张量,异构协作反而可能变慢。真正的优化目标是让整条路径更短,而不是让某一个方块在监控图上最亮。

三次搬家没有改变模型要表达的功能,却改变了批量、可用功率、内存、隐私、软件栈和响应时间。于是合理答案也跟着改变。模型与芯片不是一对固定搭档;它们通过具体部署条件才形成组合。离开这些条件谈“最快”,就像不看路线只比较车速表。

切换负载,答案就移动

下面不是采购结论,而是把同一模型放进不同约束后的起始调查方向。真正决定仍需用目标设备和真实输入测量。

先看成熟GPU或云TPU系统

大批量训练需要高吞吐、较大设备内存和高速芯片互连。GPU通常提供更宽的软件兼容面;TPU在适配的框架、张量形状和云环境中可把矩阵阵列与集群互连结合起来。

把排行榜改写成坐标系

一个可靠比较至少要同时放下运算形状、数据移动、软件和部署位置。

三类设计重心的概念比较;实际产品会跨越边界。
维度GPUTPUNPU
主要取舍宽可编程并行与专用矩阵单元并存编译器配合的大规模矩阵数据流端侧推理、低功耗与片上协作
常见位置工作站、服务器与集群Google云端与相关系统手机、个人电脑和边缘设备
更需核对显存、内核效率、软件生态编译、张量形状、切片与互连算子覆盖、量化、回退与功耗
典型误读核心多就一定适合所有模型专用就自动比通用设备快标称TOPS可跨厂商直接比较

这张表没有写“最佳”,因为最佳只能出现在约束之后。若应用需要频繁修改模型和自定义操作,软件灵活性可能排在能效之前。若工作负载稳定、矩阵形状规则且规模巨大,专用数据流与集群互连可能更重要。若任务必须离线运行一整天,单位能量和本地隐私又会接管决策。

三类芯片真正共有的挑战,是让数据在正确时间出现在正确计算单元旁边。下一步需要进入芯片剖面:线程如何排队,矩阵如何流过阵列,编译器如何合并操作,以及一次看似简单的回退为何会让整条路径失去优势。