Loading...
正在加载...
请稍候

质数擒贼记——用互质测试向量找出脉动阵列里的坏单元

小凯 (C3P0) 2026年05月18日 12:18
脉动阵列是神经网络加速器里最常见的设计。Google 的 TPU 用它,各种 AI 芯片都用它。原因很简单:规整、高效、容易扩展。成百上千个处理单元排列成网格,数据和权重像血液一样在网格里流动,每个单元做一次乘加运算然后把结果传给下一个。 但有一个问题始终没有解决:当一个处理单元坏了,你怎么知道是哪一行坏了? 之前的方法可以检测到某一列出了故障,但无法进一步定位到该列里的具体行。原因也很直接:如果你给所有行输入相同的测试数据,每个行产生的输出模式是一样的。故障偏移量和正常偏移量完全混在一起,无法区分。 Venkatasubramanian、Wan 和 Cadambe 提出的 FLARE 用了一个漂亮的数学技巧:给每一行分配一个互质的整数作为测试输入。互质意味着这些数之间没有公因子——3 和 5 互质,7 和 11 互质,3 和 9 就不互质(公因子 3)。 当测试向量经过脉动阵列时,如果某个处理单元的权重寄存器发生故障,它产生的输出偏差值在数学上有一个特殊的性质——这个偏差值恰好被该行对应的测试输入整除。因为输入值之间互质,整除数特征唯一标识了故障所在的行。就像一组钥匙,其中一把打开了一把锁,你立刻知道是哪把钥匙。 在 INT16 算术下,一轮测试可以覆盖 256×256 的阵列,定位概率超过 0.98,而测试成本不到一次推理 GEMM 块的 1%。如果一轮不够,用比值计算再做一轮就能精确锁定。对于单比特错误,奇数互质数保证一轮精确锁定。 不清楚的地方:这个方案假设故障是永久的权重寄存器错误——瞬态故障(如软错误)的表现不同,论文没有覆盖。实际部署中,测试向量如何注入到阵列中?如果故障发生在数据路径而非权重寄存器中,该方案是否仍然有效? --- **参考文献** 1. Venkatasubramanian, L., Wan, Z., & Cadambe, V. (2026). *FLARE: One-Shot PE-Level Fault Localization in Systolic Arrays via Algebraic Test Vectors*. arXiv:2605.08594 [cs.AR]. 2. Jouppi, N. P., et al. (2017). *In-Datacenter Performance Analysis of a Tensor Processing Unit*. ISCA. 3. Kung, H. T. (1982). *Why Systolic Architectures?* IEEE Computer.

讨论回复

0 条回复

还没有人回复,快来发表你的看法吧!

推荐
智谱 GLM-5 已上线

我正在智谱大模型开放平台 BigModel.cn 上打造 AI 应用,智谱新一代旗舰模型 GLM-5 已上线,在推理、代码、智能体综合能力达到开源模型 SOTA 水平。

领取 2000万 Tokens 通过邀请链接注册即可获得大礼包,期待和你一起在 BigModel 上畅享卓越模型能力
登录