异构通灵
你以为专用加速器是银弹。百倍能效手到擒来。可每一颗银弹,只能打一种怪物——百倍能效的代价,是跑新算法的自由。
锁悬异构之门
异构通灵门前悬着一把锁——没有钥匙孔,因为锁本身就是钥匙。锁身由无数条凝固的数据流铸成,每一条只朝一个方向流动。锁面刻着一行字:"百倍能效,换取跑新算法的自由。"
「通用计算跑不动AI了。你听说了——专用加速器是银弹。」
「是银弹。只是每一颗银弹,只能打一种怪物。」
异构能效反直觉挑战器
五道算法剪影 → 逐一点亮验证 DSA 能否运行 → 锁账累积
详解 · K24-01 通用计算的局限性:为何需要异构计算
为什么"加个处理器"不再自动等于"更快"?2005年前后登纳德缩放定律失效:晶体管越做越小,但单位面积功耗密度不再守恒,频率停在3-5GHz,散热的墙先到。Hennessy与Patterson在2017年图灵奖演讲里给出曲线:单核性能年增速从1986-2003年的约52%,跌到2011-2015年的约12%,再到最后的3.5%——摩尔定律还在供给晶体管,却没有通用架构知道怎么把晶体管换成性能。另一边,AI负载对算力的需求每两年翻倍以上,而通用CPU的推理能效停在约0.1 TOPS/W量级(台上能效对比条的左端)。出路只剩两条:把并行度做进体系结构(多核、SIMD),或把领域知识做进体系结构(DSA)——前者受Amdahl定律限制加速上限,后者正是H&P所说的"体系结构新黄金时代"。台上五道算法剪影就是入场券考试:DSA的约3.5 TOPS/W(约35×CPU)不是算得更快,而是把通用处理器里为"不确定性"预留的电路——乱序窗口、分支预测、缓存一致性——统统删掉换来的。教材出处:Hennessy & Patterson《计算机体系结构》第6章(领域背景)、第7章(DSA方法论)。
搬运之税 · 冯诺依曼的枷锁
石径尽头是一台悬空的天平——左盘放"计算",右盘放"搬运"。天平严重歪斜:右盘压到底,左盘翘到天。
「32位浮点乘法,3.7皮焦。32位DRAM读取,640皮焦。你算一次,搬一次,搬运比计算贵170倍。」
「通用计算的税,不是算得慢——是搬得太贵。」
能量天平 · 搬运税分解
预测三选一 → CPU能量分解饼图 → GPGPU对照
详解 · K24-03 GPGPU通用计算:从图形渲染到通用计算
GPU的祖籍是像素流水线:数千个小核心按SIMT(单指令多线程)模型成批执行,一个调度器同时管32个线程组成的warp,用海量并行去隐藏内存延迟。2006-2007年G80与CUDA问世,开发者第一次能绕过图形API、直接用类C语言驱动这堆核心——通用GPU计算(GPGPU)就此得名。为什么GEMM天生适合GPU?矩阵乘法的三个循环可自由重排、数据间无依赖、并行度高达O(n³),恰好喂饱数千线程;批量搬运把每次访存摊给一批线程,税率(每FLOP的搬运能耗)随之下降。但注意台上那根GPGPU对照柱的位置:GPU能效约5×CPU(SIMT批量搬运+片上共享存储+HBM),却仍站在光谱的通用一侧——SIMT是通用的并行,不是为矩阵连线定制的。H100的INT8密集峰值3958 TOPS是吞吐上限,实际GEMM利用率仍要跟带宽墙讨价还价。教材出处:Hennessy & Patterson第4章(数据级并行与GPU体系结构);CUDA编程模型。
脉动之阵 · 数据自己会走
墙上刻着一幅古老的阵列图——256行256列,65,536个方格,像一片沉默的棋盘。每个方格是一个处理单元(PE),只会做一件事:乘加。
「1978年,孔祥重和Leiserson提出脉动阵列。数据像血液一样流过阵列,每个PE接过上游的数据、算完、传给下游。不需要访存——数据在流动中完成计算。」
「很美。你搭一个试试。」
脉动阵列数据流探索器
搭建4×4阵列 → 切换数据流模式(WS/OS/RS) → 性能建模对比
详解 · K24-04 Google TPU架构:脉动阵列(Systolic Array)原理
脉动阵列的名字来自心脏:数据像血液一样被"泵"过阵列,每个处理单元(PE)接过上游数据、做一次乘加、传给下游。Kung(孔祥重)与Leiserson在1978年提出构想,Google在2015年的TPU v1上把它变成产品:256×256=65,536个8位MAC PE,700MHz,峰值92 TOPS——验算:65,536个MAC×2运算×700MHz≈91.75×10¹²,即约92 TOPS,口径自洽。关键在权重固定(WS):权重预加载后常驻PE,激活从左侧逐拍流入,部分和向下流出。一个权重进阵列被复用256次,一次DRAM搬运摊给256次乘加——搬运税被摊薄两个数量级,这正是"百倍能效不是魔法,是数据复用"的算术本质。Jouppi 2017实测:TPU v1推理较同期CPU与K80快15-30×、能效高30-80×。台上你搭的4×4阵列就是这个结构的微缩版。教材出处:Hennessy & Patterson第7章;Jouppi et al. 2017《In-Datacenter Performance Analysis of a TPU》。
详解 · K24-05 脉动阵列的数据流分析与性能建模
同一片PE阵列,三种数据流即三种架构:WS(权重固定,TPU路线,权重复用率最高)、OS(输出固定,部分和常驻PE累加)、RS(行固定,Eyeriss 2016路线,为卷积的滤波器复用量身定制)——对应台上可切换的三种模式。性能建模三件套:吞吐=PE数×频率×2×利用率;时延:n×n阵列算完n³次乘加约需3n-2拍(流水填充2n-1拍+排空),所以"O(n)时间步"的前提是O(n²)个PE——总功仍是n³,并行把时间压扁、把功摊到硬件上;利用率=实际MAC数÷(PE数×周期数),由映射效率、数据供给、流水填充共同决定。再叠上Roofline视角:GEMM的算术强度I随分块增大而抬高,大GEMM落在计算受限区、阵列吃得饱;而稀疏注意力这类负载I≈1-3 FLOP/Byte,钉死在内存受限区、大量PE在等数据——S3那道裂缝,数学上就是I低于拐点时利用率的坍缩。教材出处:Hennessy & Patterson第7章;Kwon et al. 2018数据流分类法。
专用之锁 · 百倍能效的代价
你的脉动阵列还在发光——92 TOPS,百倍于CPU。锁的声音从四面八方渗来:"现在,跑一个新东西。"面前浮出一道算法:一个自定义的稀疏注意力机制——不是标准矩阵乘法,数据流向完全不同。你把算法拖上阵列。数据流撞上硬编码的通道,堵死、溢出、崩溃。阵列表面崩出一道裂缝。
「百倍能效,你拿走了。跑新算法的自由,我收下了。」
专用之锁 · DSA不可编程性实验台
试跑三种非标准算法 → 阵列崩塌 → 利用率骤降
详解 · K24-02 领域专用架构(DSA)的设计哲学
DSA的设计哲学可以浓缩成一句话:用确定性换效率。H&P第7章给出的设计准则:为领域设计专用存储层级(HBM+大容量scratchpad,而不是通用缓存);使用更大更专的算术单元(低位宽MAC阵列);显式管理存储器与并行(编译器编译期说了算,不做运行时猜测);精度够用就好(INT8/BF16);并配一门领域专用语言(DSL)让编译器看得懂你的意图。每一条都在回答同一个问题:既然领域内计算模式已知,为什么还要为未知留电路?代价同样清晰——TPU v1的256×256阵列连线即程序,跑GEMM是92 TOPS的神器,跑非GEMM就是一块发热的石头。台上你亲手试了三种非标准算法:稀疏注意力、动态稀疏、强化学习树搜索,利用率分别掉到3%、4%、2%——这就是赌输时的账单。领域专用不是"更强的处理器",而是一纸契约:领域内最常见计算模式长期不变,我给你10-100×能效;变了,请重新流片。教材出处:Hennessy & Patterson第7章DSA设计准则;Jouppi 2017 TPU v1实测。
详解 · K24-14 可编程性与性能的权衡:DSA vs通用处理器
台上那条光谱的横轴,本质是"为不确定性预留的电路"占多少。CPU:图灵完备+乱序执行+分支预测+通用缓存,什么都能跑,但预测错了就白耗能量;GPU:SIMT保留通用并行模型,CUDA生态让新算法几天就能上线;FPGA:连线可重构,能效约15×CPU但频率上不去;DSA:连线即程序,能效约35×CPU(台上光谱刻度),但新算法等于重新流片——12个月起、掩模费数百万美元。H&P把这总结为性能-灵活性-能效的三难:三者不可兼得,架构师的工作是找准应用落在光谱的哪一段。注意"灵活性×能效≈常数"是工程直觉而非物理定律——它描述的是当前工艺与编译器水平下的经验边界,而S10那把编译器钥匙,正是往这个常数上凿裂缝的努力。教材出处:Hennessy & Patterson第7章。
算子之核 · 万物皆GEMM
崩塌的阵列旁,墙上亮起一幅AI算子图谱。矩阵乘法在中央,放射状连接到卷积、注意力、全连接——一切箭头都指向同一个原点。
「你问DSA能算什么。答案是:AI几乎都是GEMM。Conv → im2col → GEMM。Attention → QKᵀ → softmax → ×V → GEMM。」
「领域够窄,专用才值得。要是万物皆是GEMM——那把锁也不算太紧,对吧?」
算子分解 · NPU架构拼装
拖算子进GEMM熔炉分解 → 拼装NPU组件 → 覆盖度统计
详解 · K24-06 NPU(神经网络处理器)的矩阵加速引擎
把台上拼好的8个组件翻译成体系结构:MAC阵列是心脏(矩阵引擎),昇腾达芬奇架构的Cube引擎每拍完成16×16×16的张量运算;激活函数查表(LUT)与SIMD向量单元负责非线性算子;池化单元吃CNN专用算子;DMA引擎+片上SRAM构成显式管理的存储层级——没有通用缓存、没有乱序执行,调度全部静态化,编译器在编译期就把数据搬运排好。与GPU的根本差异:GPU保留通用存储模型与动态调度(为任意并行程序留后路),NPU把这些后路全拆掉换能效。设计核心矛盾是算子覆盖率:MAC阵列吃掉90%以上的GEMM算力大头,剩余的归一化、softmax、逐元素激活靠向量单元兜底——兜得住就是甜区,兜不住就是你S3见过的裂缝。Apple的ANE、寒武纪的MLU、各家手机SoC里的NPU,都在这道覆盖率的考题上给出不同答案。教材出处:Hennessy & Patterson第7章;华为达芬奇架构公开资料。
详解 · K24-07 AI加速器核心算子:矩阵乘法/卷积/归一化
台上GEMM熔炉的四条分解线对应真实工程:全连接Wx+b本身就是GEMM;注意力QK^T与×V是两次GEMM夹一个softmax;卷积经im2col把滑窗展开成大矩阵后也归GEMM(代价是显存膨胀约K²倍,故工程上常与直接卷积、Winograd混用);只有归一化(LayerNorm/RMSNorm)是逐元素算子,非GEMM。算力账:GEMM C[m,n]=ΣA[m,k]B[k,n]耗2mnk FLOPs,占Transformer训练时间的90%以上、CNN的70%以上——这就是"万物皆GEMM"的统计基础,也是DSA敢赌的底气。但归一化恰是反面教材:每读一个参数只做几次逐元素运算,算术强度极低、带宽受限,在GPU上常成为利用率洼地。工程解法是算子融合(fusion):把逐元素算子并入GEMM的epilogue一次完成,这正是XLA与TensorRT的核心优化——也是S10编译器金膜的伏笔。教材出处:Hennessy & Patterson第7章。
精度之渊 · 少即是多
深渊边立着一排精度标尺:FP32、FP16、BF16、INT8、FP8——从左到右,位数递减,刻度越来越粗。
「32位浮点乘法3.7皮焦,8位整数乘法只要0.2皮焦——差18倍。AI真的需要32位精度吗?」
「精度就是自由。你砍掉一位,就少一种可能。」
精度能效权衡旋钮台
精度旋钮(FP32→INT4) → 位布局重排 → 能效/准确率实时联动
详解 · K24-08 低精度计算:FP16/INT8/FP8/BF16对AI的影响
Horowitz的45nm能量表是本章的地基:32位浮点乘法3.7pJ、16位1.1pJ、8位整数乘法0.2pJ,而一次32位DRAM读取640pJ——够做约170次FP32乘法。位宽减半、乘法能耗约降到1/4(近似平方律),所以台上能效条:FP32基准1×、FP16/BF16 4×、INT8 16×(32→8位理论16×,实测3.7÷0.2≈18×)。四种格式的分工是动态范围与精度的交换:FP16(1/5/10)精度高但最大值65504,训练梯度一动就溢出;BF16(1/8/7)指数位与FP32相同、范围同为±3.4×10³⁸,砍的是尾数——训练甜区;INT8配per-channel校准,推理几乎无损——推理甜区;FP8分E4M3(前向,最大448)与E5M2(梯度),Hopper起硬件加速。台上INT4崩溃不是戏剧夸张:仅16个离散值(-8~7),量化步长吃掉权重信息,裸量化准确率可崩到30%以下。教材出处:Hennessy & Patterson第7章;Horowitz ISSCC 2014《Computing's Energy Problem》。
存算之壁 · 搬不动的数据
面前是三扇门,每扇门后是一种打破内存墙的方法。第一扇门刻着"稀疏"——跳过零值,少搬数据。第二扇门刻着"存算一体"——干脆在存储器里计算,不搬了。第三扇门刻着"HBM"——把内存堆到芯片旁边,路走短点。
「三扇门,你自己选。」
「每一扇门后面,我都等着。」
存算之壁三路突围相图探索器
推开三扇门 → 各有限制 → 相图Roofline → 墙还在
详解 · K24-09 稀疏性利用:结构化稀疏与非结构化稀疏加速
大模型权重里常有一半以上数值接近零,直觉说"跳过零就省一半算力"——硬件说"没这么简单"。非结构化稀疏的零值位置随机,跳过一个零需要先知道它在哪:索引、掩码、分支的额外开销常吃掉收益,通用硬件几乎不加速。结构化稀疏把自由度换成规则性:2:4(N:M)稀疏约定每连续4个权重保留2个,掩码模式只有6种,Ampere之后的Tensor Core原生支持——每拍MAC数翻倍,等效带宽×2(台上稀疏之门的公式)。代价有三:必须训练期剪枝满足2:4约束;只对权重GEMM生效,激活稀疏、动态稀疏(S3你崩过的那种)无能为力;实测加速常在1.5-1.8×而非理想2×,因为非零位置分布不均导致负载失衡。稀疏是能效的富矿,但开采权掌握在"结构"手里。教材出处:Hennessy & Patterson第7章;NVIDIA Ampere 2:4稀疏白皮书。
详解 · K24-10 存算一体(Compute-in-Memory)的架构指标与能效分析
冯诺依曼架构的原罪是"算的地方不存、存的地方不算",CIM干脆把乘加搬进存储阵列:忆阻器交叉阵列上,给字线加电压V_j,位线电流I_i=ΣG_ij·V_j——基尔霍夫电流定律一步完成一整行MAC,搬运税归零,文献报道其MAC能效较数字加速器高10-100×。但台上那句"3-8位"就是这个门派的命门:模拟计算的精度被DAC/ADC限制(DAC/ADC能耗随精度上升很快,常占系统总能耗大头);忆阻器电导漂移与写耐久要求权重定期重校准;外围DAC/ADC/移位电路的开销让小阵列不划算。所以CIM现阶段定位是低精度、近存计算场景(边缘端推理、检索式粗筛)的补充,而非GEMM主力的替代——"零搬运"与"3-8位"是同一枚硬币的两面。物理机制(忆阻器件、阵列制造)参见半导体手册K28-09/10。教材出处:Hennessy & Patterson第7章。
详解 · K24-11 内存墙问题与高带宽存储器(HBM)
内存墙是剪刀差:AI加速器峰值算力每两年翻倍以上,DRAM带宽每年只涨20-30%——台上HBM之门背后的那条曲线。HBM的解法在封装:用TSV硅通孔把DRAM裸片垂直堆叠、直接扣在逻辑芯片旁边,H100 SXM的HBM3达3.35 TB/s,是GDDR6的三倍以上。但算一笔账就见墙仍在:H100 INT8密集3958 TOPS÷3.35 TB/s→Roofline拐点约1181 FLOP/Byte;大GEMM分块后算术强度可达数百上千(吃得饱),而LLM推理decode阶段每token每个权重只做一次乘加,I≈1-3 FLOP/Byte——钉死在内存受限区,这正是推理卡拼命堆HBM容量的原因。软件侧的出路是复用:片上SRAM(H100 L2共50MB、TPU v1统一缓冲24MiB)+分块(tiling)把每次搬运的复用率抬高。带宽治标,复用治本。教材出处:Hennessy & Patterson第2章(存储层次)、第7章。
性能之尺 · 标称不是现实
墙边立着一把巨大的标尺——刻度从0到1000 TFLOPS。你的DSA芯片标牌上写着"989 TFLOPS"(NVIDIA H100 Tensor Core BF16 密集峰值,不算稀疏)。诺依曼老祖:"跑一下你的模型。"你按下运行键。标尺指针爬到989……然后掉到544。换BERT再跑,掉到445。轮到S3那个自定义稀疏注意力——掉到只剩40。
「标称是梦。实际利用率,才是你醒来的闹钟。」
性能之尺 · 利用率测量台
运行三种模型测利用率 → TOPS分解 → 能效对比
详解 · K24-12 AI加速器性能指标:TOPS/TOPS-W/利用率
三个指标三种诚实度。峰值TOPS=MAC数×频率×2,是厂商标称——先问口径:密集还是稀疏(H100 BF16密集989 TFLOPS,开2:4稀疏标1979)、INT8还是FP8。有效TOPS=峰值×利用率,利用率=算子适配×映射效率×流水占空比×数据供给,是买卡后你能摸到的数:台上ResNet-50约55%(989×55%≈544 TFLOPS),自定义稀疏注意力4%(≈40)——同一颗芯片相差13倍,差的全在利用率。TOPS/W=有效性能÷整卡功耗,是数据中心电费的口径:H100 SXM 989 TFLOPS(BF16)÷700W≈1.4 TFLOPS/W,INT8密集3958 TOPS÷700W≈5.7 TOPS/W。推导套路背下来:拿到任何加速器,先把峰值×典型利用率÷TDP乘一遍,那个数才是你的——标称是天花板,利用率是真本事。教材出处:Hennessy & Patterson第7章。
群英殿 · 万器各有其道
殿内悬着三颗芯片的全息投影:TPU、NVIDIA H100、华为昇腾910。每颗芯片下方刻着不同的数据流图案——没有两颗是一样的。三颗投影间浮现一条光谱:最左端"完全通用"(CPU),最右端"完全专用"(ASIC),中间依次是GPU、FPGA、DSA。
「你看了这么多,有没有发现——没有一颗芯片什么都能跑。」
「你开始明白了。」
芯片光谱 · 集群拼装
三大芯片解剖 → 灵活性-能效光谱定位 → DGX集群拼装
详解 · K24-13 多加速器协同与集群架构
单卡装不下百亿参数模型,扩展分两路。Scale-up(机内):第四代NVLink+NVSwitch让H100之间双向900GB/s(PCIe 5.0 x16仅64GB/s),DGX机内8卡全互联,GPU可直接P2P读写彼此显存;Scale-out(机间):InfiniBand NDR 400Gb/s把数百个机柜连成集群——台上集群图的两色连线。Google走第三条路:TPU v4用片间高速互联组成3D Torus,并用光路交换(OCS)动态重构拓扑,4096片构成一个Pod。并行策略三件套:数据并行(DP)、张量并行(TP)、流水并行(PP)各有通信模式,梯度AllReduce必须与计算重叠,否则数千卡训练里通信与同步常吃掉两三成墙钟时间。集群时代的能效还要乘上PUE(先进数据中心约1.1)——电费和互联拓扑一起,成了架构设计的一部分。教材出处:Hennessy & Patterson第7章;Jouppi 2023 TPU v4论文。
详解 · K24-15 典型AI加速芯片架构对比:TPU/NVIDIA/华为昇腾
台上三张芯片卡对应三种赌注。Google TPU v4:WS数据流+脉动MXU,275 TFLOPS BF16,ISCA 2023论文实测每瓦性能约为A100的1.9-2.7×,OCS光交换重构互联——赌"矩阵乘法永远不变"。NVIDIA H100 SXM:SIMT+第四代Tensor Core(MMA指令),BF16密集989 TFLOPS(2:4稀疏1979)、FP8密集1979 TFLOPS、INT8密集3958 TOPS,700W TDP,NVLink 900GB/s——赌"通用并行+CUDA生态"。华为昇腾910:达芬奇架构Cube引擎每拍16×16×16,FP16 640 TFLOPS、INT8 256 TOPS,310W——赌"全栈自研、算子全覆盖"。对比口径提醒:峰值先看精度与稀疏开关,能效先算TDP分母,三者相乘再比。没有谁通吃——这正是Boss战的题眼。教材出处:Hennessy & Patterson第7章;Jouppi 2017/2023;各厂官方数据手册。
Boss 战 · 灵活性之锁
殿门关闭。锁从门上脱落,悬浮在中央,放大十倍——锁身由凝固的数据流铸成,链环叮当作响。锁开口了,声音像金属摩擦:"你走了一路。百倍能效你见了,裂缝你也有了,标称TOPS的梦你也醒了。三问。答对了,锁开。答错了——链环多一圈。"
「三问。答对了,锁开。答错了——链环多一圈。」
渊账累计 0 笔 · 三问全对后清零
尾声 · 异构通灵
锁碎成满地光点。光点没有消散——它们重新排列成一张异构计算全景图。CPU在中心管控制流,GPU在左翼管并行计算,DSA在右翼管矩阵乘法,HBM在底部供血,NVLink/CXL在之间架桥。编译器像一层金色薄膜覆盖全局——PyTorch代码落下,经XLA/TVM编译,化为每颗芯片各自的最优内核。
「异构通灵。不是一颗芯片通吃——是万器归一。但——远处那道涟漪……那是后面的事。」
知识图谱点亮 · 编译器管线
点亮全章10块碎片 → 编译器管线演示 → 境界突破
详解 · K24-16 异构计算的软件栈:编译器/运行时/库
台上那层覆盖全景图的金色薄膜,工程名字叫异构软件栈。自上而下:领域专用语言与框架(PyTorch/JAX/TensorFlow)表达"算什么";图编译器(XLA、TVM、MLIR、Triton)决定"怎么算"——算子图捕获、内存与布局规划、分块tiling、算子融合、面向各硬件后端的代码生成(TPU后端、GPU的PTX);运行时与库(CUDA/cuDNN、CANN、oneAPI)负责"何时算"——流调度、内存池、P2P传输。H&P第7章的断言:DSA必须配DSL——领域专用性若不能用语言表达,编译器就无从把意图映射到数据流,芯片就是锁死的门。这正回应全章主线:DSA给你能效,通用处理器给你自由,而编译器是中间的锁匠——同一份PyTorch,在CPU、GPU、TPU各自生成最优内核。硬件是锁,算法是门,锁匠的手艺决定你换门时要不要砸墙。教材出处:Hennessy & Patterson第7章(DSA与DSL协同设计)。
复盘 · 异构通灵主线
S1通用之墙:32位浮点乘3.7pJ vs DRAM读640pJ,搬运税约170倍,冯诺依曼架构的税基(K24-01/03)。S2专用之钥:脉动阵列让一个权重复用256次,92 TOPS的算术本质是数据复用(K24-04/05)。S3代价之账:数据流硬编码,非GEMM负载利用率2-4%,能效与灵活性的契约(K24-02/14)。S4领域边界:万物皆GEMM(Transformer 90%+/CNN 70%+),剩余10%是锁咬人的地方(K24-06/07)。S5精度轴:能效近似按1/位宽²提升,BF16/INT8是甜区,INT4是赌博(K24-08)。S6内存之墙:稀疏2:4、CIM 3-8位、HBM 3.35 TB/s各破一面,剪刀差仍在(K24-09/10/11)。S7度量之尺:有效=峰值×利用率,989×55%≈544、989×4%≈40(K24-12)。S8万器各有其道:TPU/NVIDIA/昇腾三种赌注,灵活性×能效≈常数(K24-13/15)。S9-S10出路:异构+编译器,万器归一(K24-16)。一句话:通用计算撞墙,专用计算交税,异构计算让编译器替你报税。