打开网易新闻 查看精彩图片

2024年Intel技术巡演的一份材料,把自家Gen 4 NPU的底裤扒了个干净。不是参数对比,不是跑分炫技,而是一张执行流程图——从Query向量生成到最终输出,Multi-Head Attention(多头注意力,Transformer核心操作)在异构引擎之间来回倒腾了6次。

这个数据点本身不值钱。值钱的是它暴露了一个被架构师们刻意淡化的真相:异构设计的代价不在单个算子,而在边界 crossing 的摩擦成本。每次数据从MAC阵列(矩阵乘法单元)流向SHAVE DSP(通用向量处理器),都要经过共享的Scratchpad、MMU、DMA,像快递中转站一样层层分拣。

双域架构:灵活性的税单

双域架构:灵活性的税单

Gen 4 NPU的 compute fabric 由两种引擎拼接而成。MAC阵列负责稠密线性代数,是Transformer推理的现金牛;SHAVE DSP打杂,处理那些固定功能单元吃不下的操作。两者共享一套内存子系统——Scratchpad、Cache、MMU、DMA——这种设计让Intel能覆盖更宽的算子集,但也把"数据该放哪"的决策复杂度甩给了运行时。

Intel的材料用MHA当解剖样本,不是偶然。这个操作的数学表述干净得很:Q/K/V投影 → 相似度打分 → SoftMax归一化 → 加权聚合 → 拼接输出。但映射到硅片上,它裂变成一串引擎切换的接力赛。Linear投影在MAC阵列上跑,SoftMax得交给DSP,矩阵乘法回MAC,最后的拼接又可能触发一次跨域搬运。

每一次切换都是一笔隐性开销:数据序列化进共享内存、地址翻译、DMA调度、再反序列化到目标引擎的寄存器堆。Intel没有公布具体纳秒数,但执行流程图的箭头密度说明了一切——图越忙,延迟越难看。

SoftMax:那个被迫流浪的算子

SoftMax:那个被迫流浪的算子

MHA里的SoftMax是个典型的问题儿童。数学上它是对注意力分数做指数归一化,工程上它需要逐行求和、取指数、再除法——向量操作,不是矩阵乘法。MAC阵列的脉动结构(systolic array)对这种不规则访问模式极其不友好,于是它被流放到SHAVE DSP。

流放本身不是问题。问题是流放路上的物流成本。

相似度分数矩阵在MAC阵列里生成,形状是[batch, heads, seq, seq]。要SoftMax它,得先把这块数据从MAC的本地累加器缓冲,经Scratchpad,搬到DSP的向量寄存器。SoftMax完,权重矩阵又要反向 journey,去跟Value矩阵做第二次乘法。Intel的流程图显示,仅MHA这一个操作,Q/K/V三条支路就触发了多次跨域数据移动

更隐蔽的是内存带宽的对冲。Scratchpad作为共享中转站,同时服务6个Neural Compute Engine(每个含1 MAC阵列+2 SHAVE DSP)。当多个引擎并发请求数据搬运,MMU的页表遍历和DMA的通道仲裁会变成新的瓶颈。Intel的材料提到Gen 4支持"concurrent execution of independent subgraphs",但没说的是——子图独立性越强,跨域同步的复杂度越高。

执行流程图的诚实

执行流程图的诚实

半导体厂商的公开材料通常有两种:营销部的PPT,和工程师的内部wiki。2024 Tech Tour这份材料罕见地介于两者之间——它展示了足够的实现细节,让专业人士能 reconstruct 数据流,又回避了具体的功耗/延迟数字。

这种选择性披露本身就是一种信号。如果跨域搬运的代价可以忽略,Intel会把它写进宣传页;正因为不可忽略,才需要用"flexibility"和"coverage"来转移注意力

对比苹果的Neural Engine(固定功能为主,异构度低)和Qualcomm的Hexagon(DSP-centric,矩阵单元较晚加入),Intel Gen 4的路线是"全都要"——MAC阵列堆算力,DSP保灵活性,共享内存当胶水。这种设计的天花板不在峰值TOPS,而在有效算力 = 峰值算力 × 数据本地化率。流程图里那些密集的跨域箭头,正在啃食这个乘数。

一个未被回答的问题是:当模型结构从标准Transformer向MoE(混合专家)、Mamba(状态空间模型)演进,算子多样性只会增加。Intel的架构师是否已经在Gen 5里收紧引擎边界,还是继续用更大的Scratchpad和更宽的DMA来掩盖延迟?