ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

AI芯片架构深度解析:GPU、TPU与NPU的设计权衡与关键术语

AI芯片架构深度解析:GPU、TPU与NPU的设计权衡与关键术语 最近朋友丢给我一份关于AI芯片架构的英文技术资料让我帮忙翻译成中文。原以为只是语言转换的活儿真正上手才发现最难处理的根本不是英文句子而是背后那套硬件体系知识。翻译到一半我甚至停下来补了好几篇论文和产品白皮书才敢继续动笔。这篇博文就是想把这次翻译过程中最有价值的东西沉淀下来AI芯片架构的核心类别、关键设计思路以及那些在中文技术语境里特别容易翻车、特别容易误导人的术语和概念。如果你正在入门AI芯片、做算法部署或者单纯想搞明白GPU、TPU、NPU这些名词背后到底有什么架构差异这篇内容应该能省下你不少查资料的力气。1. 这次翻译任务的来龙去脉以及原文的整体脉络1.1 朋友丢过来的那份资料讲的是什么先说背景。我在技术社区写硬件相关内容也有些年头了偶尔会接到一些翻译和拆解的邀约。这次朋友传来的是一份面向芯片设计初学者的英文综述标题大意是“AI芯片架构全景”内容覆盖从传统CPU到专用AI加速器的演进、数据流组织方式、存储层次设计、以及未来架构方向。资料不算长但信息密度极高几乎每一段都值得单独展开。资料开篇就抛出一个核心观点AI芯片的性能瓶颈早已不是晶体管的开关速度而是数据搬运。这句话放在今天的中文技术讨论里可能稀松平常但在英文原文里作者用了大量篇幅解释为什么“memory wall存储墙”才是约束AI计算的核心矛盾。这也直接决定了后面所有的架构讨论——无论是GPU的海量线程、TPU的脉动阵列还是NPU的数据流切分本质上都是在做同一件事让数据离计算单元更近让计算单元的利用率更高。1.2 翻译这类技术材料难点到底在哪如果你以为手上有份术语表就能搞定技术翻译那就太天真了。这份资料里大量使用“throughput”“latency”“bandwidth”这类基础词汇每一个都有成熟的中文译法但它们组合在一起描述具体架构时直译往往会让读者误解。我后面会专门用一节谈术语问题这里先举一个例子体会一下原文有一句“the architecture is designed to trade off programmability for peak throughput”直译是“该架构被设计成用可编程性换取峰值吞吐”看着没问题但中文读者很容易理解为“牺牲了编程灵活性”实际上作者想表达的是“这个架构放弃了通用编程能力转而追求极致算力”。这种细微差异不熟悉硬件设计逻辑的人根本看不出来。所以翻译AI芯片架构材料真正的门槛在于你得先理解这段英文描述的是哪一种设计范式再决定用什么样的中文表达。翻译不是词对词的映射而是先在大脑里建立架构模型再用中文重新描述一遍这个模型。2. 原文对三类主流AI芯片架构的拆解以及我的理解补充2.1 GPU的并行之道用海量线程吞掉延迟原文第一部分讲GPU。很多人以为GPU就是“核心多”这个理解不算错但没有触及本质。GPU架构最核心的设计思想是SIMTSingle Instruction Multiple Threads单指令多线程它和CPU的MIMD思路完全不同。CPU为了追求单线程性能把大量面积分给分支预测、乱序执行、大容量缓存本质上是靠复杂的控制逻辑把单条指令的执行效率拉满。GPU反其道而行之控制逻辑极简把面积几乎全给了ALU和寄存器堆然后用几千个线程同时执行同一条指令用并行度来弥补单线程效率的不足。原文里有一张示意图让我印象很深GPU在实际运行中调度器每周期会选一个warp通常包含32个线程发射指令。如果遇到数据依赖需要等待内存返回GPU不会停下来干等而是立刻切换去执行另一个warp。这个“切换”的开销极小因为寄存器都在片上所以GPU本质上是“用大量并行线程隐藏访存延迟”。这个设计哲学直接回答了一个经典问题为什么GPU这么擅长矩阵运算因为矩阵乘法的各个输出元素之间相互独立天然适合大规模并行而GPU就是为这种并行量身定做的。我补充一点中文资料里很少明说的内容GPU的强大不仅体现在硬件架构更体现在生态和软件栈的深度绑定。CUDA一旦成为AI框架默认的底层实现就形成了事实标准。后续的ROCm、oneAPI等生态一直在追赶但差距不只是性能更是开发习惯和工具链成熟度。架构是硬实力生态是软实力两者缺一不可。2.2 TPU的脉动阵列让数据像流水一样流过计算单元第二部分讲Google TPU重点分析了著名的Systolic Array脉动阵列。这个架构概念其实上世纪八十年代就提出了但直到TPU才真正大放异彩。传统计算阵列的最大问题是数据复用率低。每个计算单元都要从寄存器或缓存里取数取数指令和数据搬运的开销极大。脉动阵列的巧妙之处在于数据像波浪一样在相邻的计算单元之间流动每个单元只用本地寄存器保存自己的输入然后把结果传给相邻单元。整个过程里数据从阵列边缘流入像血液一样“脉动”推进计算单元之间不需要共享总线也不存在复杂的多级缓存一致性维护开销。以TPU v1为例它内部是256x256的脉动阵列65536个MAC单元权重预加载到阵列中激活数据自上而下流过阵列时每一行都会和对应权重做乘加运算部分和在阵列内部向右累积传递。这种设计让每个权重可以被多个输入数据复用极大提升了计算效率。原文给出的数据是TPU v1在28nm工艺、700MHz主频、功耗仅40W的条件下峰值算力达到95 TOPS8-bit整数。作为对比同期同工艺的GPU要做到同样算力功耗通常是其数倍。我后来查了不少关于脉动阵列的分析文章发现一个网上经常被误解的点Systolic Array并不是所有AI计算场景都高效。它最擅长的是计算访存比arithmetic intensity很高的规则运算比如矩阵乘法、卷积。一旦遇到不规则运算比如动态形状的输入、稀疏数据分布阵列里的很多单元会空转利用率直线下降。所以Google在后来的TPU版本中加入了更多向量单元和通用处理单元弥补脉动阵列的灵活性短板。2.3 NPU与数据流架构从“算得快”到“搬得少”第三部分讲NPUNeural Processing Unit实际上是一类专用AI加速器的统称代表案例是寒武纪的DianNao系列、华为昇腾的达芬奇架构。NPU和GPU最大的区别在于对数据流dataflow的组织方式不同。GPU是典型的控制流驱动架构程序指令一步一步执行数据按指令搬运进寄存器再送进ALU。NPU则采用数据流驱动整个网络层的计算被拆分成一个执行流水数据按预定路径在不同计算单元之间流动中间不需要指令介入。这有点像一个自动化工厂流水线原料进去零件从不同工位逐一加工从头到尾几乎不需要人工干预搬运。而控制流架构更像一个通用加工车间每加工一件产品都要查图纸、领料、依次操作灵活但效率低。以昇腾达芬奇架构为例AI Core内部被分成三个计算单元Cube矩阵计算、Vector向量计算、Scalar标量计算三者通过一个指令缓冲区和同步机制协作。整个流水线采用软件流水技术让多个计算任务重叠执行上一个任务在做矩阵乘法时下一个任务已经进入向量计算阶段形成类似RISC-V多级流水线的效果。这种设计的核心目标不是压榨时钟频率而是让每个计算单元在任何时刻都“有事可做”尽量降低空闲等待。数据流架构的代价也很明显灵活性差、编译器负担极重。你在NPU上运行一个模型不是直接把代码编译成汇编就行而是需要一个强大的编译器把计算图映射到硬件资源上还得精确规划每一块数据和中间结果在片上存储与外部存储之间的搬运动线。做得不好算力再高也会被数据等待拖垮。这也是为什么NPU的软件栈开发成本极高很多NPU芯片硬件参数看着漂亮实际跑模型效率却一般——通常是编译器没把数据流调度好。2.4 三类架构的横向对比与选型思路架构范式数据流组织方式典型代表核心优势主要局限GPUSIMT众核并行、线程切换隐藏延迟NVIDIA GeForce/A100AMD Instinct通用性强、生态成熟、适合训练功耗高、推理场景能效不占优TPU脉动阵列数据脉冲式流动、高复用率Google TPU全系列算力密度高、能效比突出规则运算依赖度高、灵活性一般NPU数据流计算图流水化、按数据流驱动寒武纪思元、昇腾达芬奇网络推理能效极高、定制化强编译器负担重、通用场景受限选型时最核心的指标是“你能接受的复杂度和你对算力效率的追求”。如果做通用训练框架GPU仍是首选如果做大规模推理服务NPU或TPU的能效比优势极其诱人如果追求极致性能脉动阵列路线硬要往前冲那就要做好编译器投入无限预算的准备。3. 翻译中的术语取舍那些不能直接翻的词3.1 “architecture”到底翻成架构、体系结构还是微架构这是整篇材料里最让我头疼的词。“architecture”在计算机体系结构里有多层含义。在CPU讨论中architecture常指指令集架构ISA比如x86、ARM、RISC-V但在AI芯片的语境下architecture往往指微架构层面的组织方式比如“脉动阵列架构”“数据流架构”讲的并不是指令集而是硬件的物理组织和数据通路设计。翻译这种分层术语最怕“一视同仁”。我最后定下的策略是当原文讨论指令集时译为“指令集架构”当原文讨论硬件组织方式时译为“微架构”或“硬件架构”当原文只是泛指设计思路时译成“架构”即可。译者心里必须先有一个体系结构的分层模型指令集架构在顶层面向程序员微架构在中间层面向硬件设计电路实现是最底层面向物理设计。只有先建立这个分层认知才能避免把不同层的概念混译成同一个词。3.2 易混概念一箩筐bandwidth、throughput、latency这三个词几乎在每个硬件章节都会出现但如果翻译不当很容易让读者混淆。Bandwidth带宽单位时间内能搬运的数据量单位通常为GB/s。它衡量的是“运输通道的宽度”类比高速公路的车道数和限速。Throughput吞吐率单位时间内能完成的任务量比如TOPS每秒万亿次运算。它衡量的是“实际完成的加工量”类比加工厂的日产量。Latency延迟从任务发起、到任务完成所需的单次时间单位是毫秒或纳秒。它衡量的是“单个工件从进厂到出厂的时间”和吞吐量没直接关系。一个经典的陷阱是带宽高并不等于延迟低。一条很宽但信号传输距离很长的总线可能比一条窄但离计算单元极近的缓存还要慢。在AI芯片里L1缓存的带宽可以做到TB/s以上但容量小、离ALU近HBM带宽虽高但要走到片上还得经过片间互连和存储控制器延迟比L2/L1缓存高两个数量级。翻译过程中如果只把数据率数字翻译出来而不解释背后的层级关系很容易让读者把“带宽大”误以为“跑得快”。所以我在译文里会加上“此处延迟”“此处吞吐”的限定语避免歧义。3.3 一份翻译过程中建立的术语参考表我把翻译过程中反复斟酌的术语整理了一下读者如果以后做类似内容可以直接参考英文原文常见误译我采用的译法说明systolic array收缩阵列/心跳阵列脉动阵列业内主流译法突出数据脉冲式流动dataflow architecture数据流架构数据流架构通用译法但需解释其与控制流架构的对比in-memory computing存储内计算存内计算/存算一体两种译法均可按上下文选用pipeline stall管道停滞流水线停顿术语必须带上“流水线”限定compute-bound计算受限算力受限强调受计算资源约束不是单纯“计算限制”memory-bound内存受限访存受限强调受数据搬运约束arithmetic intensity算术强度算术强度/计算访存比生僻术语需括号注释定义near-memory computing近内存计算近存计算与存算一体区分指计算靠近存储但不一定在存储内heterogeneous异质异构计算机体系结构规定的“异构”Roofline model屋顶模型屋顶模型/Roofline模型保留英文便于检索中文用括号解释这张表不是我凭空总结的而是整个翻译过程里“踩坑—查资料—定译法—复核”的真实记录。建议任何做硬件技术翻译的人都先建这么一张表再动手翻正文效率和质量都会明显提升。4. 原文之外的延伸2025年再看AI芯片架构的新变量4.1 大模型时代的计算需求训练要通用推理要极致能效原文写作的时间点大模型还没有完全爆发主要讨论的还是CNN、RNN这类网络推理加速。我翻译时明显意识到这部分内容对今天不够用于是在译者注里大幅补充了大模型时代的架构变化。大模型训练training阶段的特点是数据量大、计算密集、梯度同步频繁。它对架构的要求一是强劲的矩阵运算能力二是高带宽互连支撑多卡并行。训练场景里GPU依旧无可替代因为其通用性和生态适配度最高。NVIDIA的NVLink和InfiniBand网络本质上都是为了解决多GPU并行时的数据同步瓶颈。推理inference阶段则完全不同单次请求的时延会成为用户的真实体验指标能效直接决定部署成本。于是我们看到大量面向推理场景的架构创新量化从INT8走向INT4、FP8算子融合减少中间数据的读写KV Cache优化缓解内存带宽压力。这些都倒逼芯片架构做出调整NVIDIA的Hopper/Blackwell架构加入了Transformer Engine和FP8支持Google的TPU v5p同样针对Transformer做了大量优化。架构设计已经深度绑定算法演进这是AI芯片和传统CPU设计最大的区别之一。4.2 存算一体从论文走向商业产品绕过存储墙的激进路径原文虽然提到了存储墙问题但没有展开讲存算一体Processing-In-Memory, PIM这条技术路线。我在译文后补了大段译者注因为这几年存算一体的热度实在太高了。冯诺依曼架构的根本问题是数据搬运。算一个乘法可能需要从内存搬好几个数搬运过程消耗的能量和时间比计算本身还多。存算一体的思路简洁粗暴把计算逻辑直接放进存储单元内部让数据待在原地被计算省掉搬运的开销。目前产业界的技术路线主要有三条一是基于SRAM的存算一体宏单元优势是速度快、工艺成熟缺点是容量小、成本高二是基于DRAM的存算一体通过在存储阵列里做模拟计算密度较高但精度和复杂度都面临挑战三是基于新型非易失存储器如ReRAM、PCM、MRAM的存算一体理论上密度和功耗优势最明显但器件可靠性、成品率还没完全解决。业界已经有创业公司把存算一体芯片推向商用场景主要应用在端侧推理和AIOT设备上做常规卷积神经网络推理的能效比数据确实好看。但要进入大模型训练和复杂推理市场还有很长的路要走。翻译过程中我选择补这段内容是希望读者知道解决存储墙的路径不止架构调整一条还有材料、器件层面的激进尝试这跟芯片架构的未来路线密切相关。4.3 Chiplet与先进封装芯片设计从“造大芯片”转向“拼芯片”原文对Chiplet芯粒几乎没提但这个话题在近两年的AI芯片圈太重要了所以我也花了篇幅做延伸。传统思路是把所有功能集成到一颗大芯片上但这会遇到两个问题一是芯片面积越大良率越低成本呈指数级上升二是不同功能模块对工艺要求不同比如SRAM不需要最先进的逻辑工艺模拟电路和数字逻辑更是各有所长强行放在一颗芯片上必须互相妥协。Chiplet方案则是把大芯片拆成多个小芯粒用先进封装技术CoWoS、EMIB等或标准片间互连协议如UCIe把它们拼装在一起。AI芯片是Chiplet应用最积极的领域可以说没有先进封装就没有今天动辄上千瓦的AI加速器。NVIDIA的H100/A100采用CoWoS封装把多颗HBM堆叠在GPU旁边AMD的MI300系列更是把CPU和GPU芯粒集成在一起实现统一内存架构。芯片架构的设计边界正在从单个die延伸到一个封装系统这对后端设计和协同验证都提出了全新的要求。翻译行业资料时如果不补充这段背景读者看到“chiplet”“2.5D”“3D封装”这些词会觉得云里雾里。4.4 软件与硬件协同设计编译器正在成为架构的一部分现代AI芯片设计的另一个显著变化是编译器不再是芯片发布后的配套工具而是芯片架构定义阶段就必须协同设计的核心模块。如果你设计的计算单元足够强大但编译器无法高效地将模型映射上去最终表现出来的实际性能会大打折扣。以脉动阵列为例从拿到计算图到最终执行编译器要完成算子切分、数据布局规划、内存复用分析、流水线调度等一系列极其复杂的任务。任何一个环节不优都会造成计算单元的空转和内存带宽的浪费。所以现在很多AI芯片公司的招聘要求里硬件架构师必须懂编译原理编译器工程师也必须有体系结构基础。这跟CPU时代的生态不同那时是先有硬件再有软件AI时代软硬件必须一起定义。5. 翻译到一半我停下来查证的三件事5.1 第一件脉动阵列的cycle计算和层映射关系翻译到脉动阵列时我差点直接照着字面意思翻下去了。原文说“the computation of a matrix multiplication is mapped to the array by feeding activations from the top and weights from the left”字面意思很清楚“把激活值从顶部送入阵列权重从左侧送入阵列。”但我盯着这句话总觉得缺了点什么一个卷积层那么大一个256x256的阵列只够算一小块怎么把整个卷积层映射到阵列上我查了TPU的论文和白皮书才弄明白整个计算过程被切分成了很多个小的tile一个tile一个tile地送入阵列执行最后把部分和累加起来。每个tile基本对应阵列一次完整的脉动流水周期。原文这句话只是在描述最小执行单元实际映射至少涉及两层循环切分一是空间上的切分把大矩阵拆成多个子块二是时间上的循环一个子块算完再算下一个。这种映射关系决定了大矩阵能不能在FPGA上高效实现也是芯片设计者最关注的指标之一。我最终在译文里补充了这个上下文要不然读者看到“喂入激活值”这句话还以为把整张图丢进芯片就行完全不会意识到中间存在复杂的调度逻辑。5.2 第二件HBM带宽与计算峰值的比例关系以及防止“饿死”计算单元的关键原文在讨论访存瓶颈时提到一句话“the memory system must provide enough bandwidth to feed the compute unitsotherwise the compute units will starve。”这个“starve”直译是“挨饿”但在芯片领域准确说法是“计算单元因等待数据而空转”也就是所谓的compute-bound与memory-bound之间的平衡问题。我查资料时看到一组很有参考价值的数字以当时某款GPU为例FP16矩阵峰值算力大概是每秒数百次TOPS级别而HBM的有效带宽在TB/s量级。如果一个操作需要从显存取两个操作数、做一次乘法、存回一个结果按这样算下来算力很快就会超过带宽能供应的范围导致计算单元大部分时间都在等数据。高算力芯片成为“derated”降频运行的原因往往就是带宽供应不足。为讲清楚这个问题我专门去翻Roofline模型的论文它最核心的价值是提供了一个直观的判断标准算出机器的算术强度平衡点单位字节支撑的浮点运算数再对比目标算法的实际算术强度就立刻知道它到底是算力受限还是带宽受限。这个模型不仅是学术工具更是架构设计的第一层粗筛。把这条线索翻译进去读者才能真正理解“带宽比算力更重要”这句话在AI芯片领域的分量。5.3 第三件Chiplet互连协议和封装技术细节翻译Chiplet相关内容时我遇到了一串缩写UCIe、CoWoS、EMIB。如果不查清楚翻译出来会变成一堆字母码读者根本不知道它们在讲什么。CoWoSChip-on-Wafer-on-Substrate台积电的2.5D先进封装技术把多颗芯片裸片堆在硅中介层上再封装到基板上。优点是互连密度高、带宽大缺点是成本高、工艺复杂。EMIBEmbedded Multi-die Interconnect BridgeIntel的先进封装方案通过嵌入式桥接芯片连接多个裸片不需要做整个中介层成本相对可控。UCIeUniversal Chiplet Interconnect Express一个开放标准的芯粒间互连协议旨在让不同厂家生产的芯粒可以互相拼装目标是实现“芯片界的USB”。翻译到这部分我顺手整理了一张简表区分2.5D和3D封装的差异2.5D是多个裸片水平排列在硅中介层上3D是垂直堆叠通过TSV硅通孔上下互连。Hopper的HBM用的是2.5D而AMD的3D V-Cache走的是3D堆叠路线。这种差异会直接影响芯片内数据的传输距离和延迟是理解现代AI芯片物理架构的关键。5.4 翻译这类文章的方法论先建模型再动笔经过这次“翻到一半被迫停下来补课”的全过程我摸索出了一套适合翻译AI芯片资料的流程身边几个人试过都说比直接硬翻高效得多先通读全文画出技术脉络图不用画多精美但每个核心架构范式的落实方式、数据流走向、瓶颈环节必须在脑子里有清晰印象。建立术语对照表把高频关键词先定译法并备注适用语境防止前后文不一致。遇到底层概念先查论文/论文笔记尤其是那些带着大量数字、图表的技术段落不查资料直接翻容易闹笑话。翻译完再复核数字和单位AI芯片资料里动辄TOPS、TFLOPS、GB/s、ns数字翻译错一个性能评价直接偏差几个数量级。最后从读者视角通读一遍假装自己是一个完全不懂硬件的算法工程师看译文能否自然理解遇到“这段话得读两遍才懂”的地方多半就是译者自己都没搞清楚概念。这次翻译经历也让我重新意识到一件事做技术内容输出的价值不只是搬运信息而是在阅读、理解、重构信息的过程中帮读者过滤掉那些容易误导人的模糊地带把真正关键的架构原理和取舍逻辑讲清楚。AI芯片领域还在快速演进今天的GPU和TPU可能五年后又有新的范式迭代但理解架构设计背后的核心权衡——计算、存储、带宽、功耗、可编程性——这套思维框架不会过时。希望这篇分享能帮到正在啃AI芯片架构资料的人少走些弯路。
返回列表