RunSAFER: A Novel Runtime Fault Detection Approach for Systolic Array Accelerators
核心贡献
RunSAFER 提出了一种轻量级、运行时、非侵入式的故障检测方法,具备以下关键特性:
基于数据流的校验机制:
RunSAFER 不依赖特定的模型结构或训练过程,可部署于通用 DNN 加速器。
它通过引入数据冗余路径和校验逻辑,对关键路径上的计算结果进行验证。
低开销运行机制:
使用“斜率检测”、“结果冗余”、“输出一致性”方式进行故障检测,适用于卷积和全连接层。
尽量减少对原始计算流程的干扰,不影响推理速度或吞吐量。
技术方法
RunSAFER 构建了一个与原始计算模块并行的检测路径,该路径复用部分输入并推导出结果范围或冗余结果,与主输出对比以检测错误:
对于矩阵乘法:利用特定列或行的累加特性来做一致性校验。
对于卷积操作:转换为 GEMM 后再进行结构性校验。
可选择性地对 accumulator、PE 输出、multiplier 结果等进行“投影式”冗余校验。
实验评估
在多个 DNN 模型上(如 AlexNet、ResNet)进行仿真评估,主要结果为:
错误检测率达 99%+,覆盖常见的瞬时错误与数据路径故障。
资源开销极低:面积开销小于5%,功耗开销小于3%,不影响主执行路径。
适用于现有主流脉动阵列架构,无需大幅修改硬件设计。
一、intro
问题背景
-
在自动驾驶、航空等安全关键场景中,深度神经网络(DNN)需要部署在硬件加速器(如 TPU)上以保证高性能和实时性。
-
TPU等采用脉动阵列(Systolic Arrays)来高效完成矩阵乘加(MAC)运算。此类架构有良好的并行性,但也高度依赖数据流动的正确性。
-
问题是:一旦某个处理元(PE)出现故障,其影响将沿着整个数据路径传播,导致多层错误积累,严重影响DNN准确性。
面临的两类故障
-
瞬时故障(Transient Faults):如宇宙射线、温度波动;
-
永久故障(Permanent Faults):如制造缺陷。
现有方法不足
A. 算法级容错(ABFT)
-
通过加入校验和等方式进行冗余计算;
-
优点:可用于运行时检测;
-
缺点:增加了硬件计算负载,不利于资源受限的系统。
B. DFT(Design for Testability)
-
如 scan chain:在设计阶段加入专用测试路径,用于测试PE间数据传输;
-
缺点:
-
无法用于实时运行中(需要中断推理);
-
检测过程复杂,测试时间长。
-
RunSAFER 方法提出
RunSAFER 结合了:
-
ABFT 的运行时检测能力;
-
DFT 中的测试模式注入思路;
提出了一种可以在应用执行期间检测故障的机制,无需中断推理或依赖额外硬件。
具体做法
-
在 TinyTPU 的 ISA(指令集)中新增自检指令;
-
重用原有硬件资源(如乘法器、累加器)进行自测试;
-
利用 TPU 上的数据路径设计,在数据流中注入小规模冗余进行验证;
-
开销极低,不会影响主数据路径。
实验效果
-
在 FPGA 平台(Xilinx Zynq)上部署 TinyTPU 并注入 RunSAFER;
-
对卡死故障(Stuck-at faults)和瞬时故障进行测试;
-
在多个神经网络分类任务上评估,结果如下:
| 项目 | 表现 |
|---|---|
| 检测率 | 超过 94%(针对SRAM-FPGA模型) |
| 检测延迟 | 固定为 3 个周期(与阵列规模无关) |
| 效率 | 比传统 scan-based 方法快 4 倍 |
| 硬件开销 | 极低(不需要额外测试模块) |
二、背景
TPU 架构核心
-
TPU 是一种专用加速器,主要用于执行深度神经网络(DNN)的大规模矩阵乘法运算。
-
其核心是一个 二维脉动阵列(Systolic Array),执行MAC(Multiply-Accumulate)运算。
-
每个 MAC 单元执行:激活值 × 权重值 + 累加(在一个周期内完成)。
-
存储和数据流结构
-
权重常驻(Weight Stationary, WS)策略:
-
权重矩阵保存在 MAC 的寄存器中;
-
激活值按行从左到右流入阵列;
-
计算结果按列向下传播到累加器。
-
好处是减少数据传输、提高并行度,适合执行大规模矩阵乘法。
-

最低0.47元/天 解锁文章
3万+

被折叠的 条评论
为什么被折叠?



