[论文解读] ELZAR: Triple Modular Redundancy using Intel Advanced Vector Extensions Technical Report
ELZAR 是一个编译器框架,利用 Intel AVX 指令通过在 AVX 寄存器之间复制数据而非指令来实现容错的三重模块化冗余。尽管利用了 SIMD 并行性,由于缺少用于控制流和内存访问的 AVX 指令,性能开销仍然很高,只有在未来 AVX 扩展中加入关键改进(如向量化的 gather/scatter 指令和标志切换比较)时,估计开销才能降低至 48%。
Instruction-Level Redundancy (ILR) is a well-known approach to tolerate transient CPU faults. It replicates instructions in a program and inserts periodic checks to detect and correct CPU faults using majority voting, which essentially requires three copies of each instruction and leads to high performance overheads. As SIMD technology can operate simultaneously on several copies of the data, it appears to be a good candidate for decreasing these overheads. To verify this hypothesis, we propose Elzar, a compiler framework that transforms unmodified multithreaded applications to support triple modular redundancy using Intel AVX extensions for vectorization. Our experience with several benchmark suites and real-world case-studies yields mixed results: while SIMD may be beneficial for some workloads, e.g., CPU-intensive ones with many floating-point operations, it exhibits higher overhead than ILR in many applications we tested. We study the sources of overheads and discuss possible improvements to Intel AVX that would lead to better performance.
研究动机与目标
- 调查像 Intel AVX 这样的 SIMD 指令是否能降低指令级冗余(ILR)在瞬态故障容错中的性能开销。
- 评估使用 AVX 寄存器复制数据以实现基于多数投票的故障检测与纠正的可行性。
- 识别在将当前 AVX 指令集应用于 ILR 时的主要性能瓶颈。
- 提出对 AVX 的硬件扩展,以显著降低 ELZAR 的性能开销。
提出的方法
- 使用 LLVM 作为编译器后端,将未经修改的多线程应用程序转换为基于 AVX 的三重模块化冗余。
- 将数据复制到四个 256 位 AVX 寄存器中,以支持多数投票实现故障检测与纠正。
- 使用现有 AVX 指令(如 vperm、vblend)实现包装函数,模拟控制流和内存访问操作。
- 提出将加载/存储检查操作卸载到 FPGA,以减少 CPU 开销。
- 通过将 ELZAR 与一个‘减速版’原生版本进行比较来评估性能,后者包含模拟 ELZAR 开销的虚拟内联汇编代码。
- 通过建模所提议的 AVX 扩展(如向量化的 gather/scatter 指令和标志切换比较)来估算未来性能提升。
实验结果
研究问题
- RQ1基于 AVX 的数据复制能否在瞬态故障容错中实现比传统 ILR 更低的性能开销?
- RQ2在使用当前 AVX 指令集实现 ILR 时,主要性能瓶颈是什么?
- RQ3通过扩展 AVX 以增加内存访问和控制流的新指令,能实现多大程度的性能提升?
- RQ4ELZAR 中将检查操作卸载到 FPGA 能在多大程度上减少 CPU 开销?
- RQ5哪些具体的 AVX 指令集扩展最能有效降低 ELZAR 的性能开销?
主要发现
- ELZAR 通过在四个 AVX 寄存器之间复制数据实现容错,利用多数投票机制检测并纠正瞬态 CPU 故障。
- 尽管利用了 SIMD 并行性,当前 AVX 缺少用于控制流和内存访问的关键指令,导致性能开销很高。
- 在当前 AVX 下,ELZAR 的性能开销显著高于预期,许多基准测试的平均开销超过 100%。
- 若采用所提议的 AVX 扩展(如向量化的 gather/scatter 指令和标志切换比较),ELZAR 的开销估计可降至 48%。
- 在实验中,字符串匹配基准测试的运行速度甚至快于原生版本,可能是因为‘减速版’原生版本中出现了非预期的内联优化。
- 研究结论认为,简单而有针对性的 AVX 指令集扩展,可使基于 SIMD 的 ILR 成为传统 ILR 的可行替代方案。
更好的研究,从现在开始
从论文设计到论文写作,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。