[论文解读] Exploiting the Tradeoff between Program Accuracy and Soft-error Resiliency Overhead for Machine Learning Workloads
本文提出了一种跨层弹性架构,将机器学习代码划分为关键区域(影响正确性)和非关键区域(仅影响准确性),对关键代码应用强硬件冗余执行(HaRE),对非关键代码应用轻量级软硬件弹性(SHR)。该方法在保持软错误覆盖的同时,相比全量HaRE实现平均32%的性能提升,且与非弹性执行相比仅增加约1.1倍的开销。
To protect multicores from soft-error perturbations, resiliency schemes have been developed with high coverage but high power and performance overheads. Emerging safety-critical machine learning applications are increasingly being deployed on these platforms. Moreover, these systems are exposed to harsh environments, such as unmanned aerial vehicles (UAVs) and self-driving cars. Due to the unique structure and computational behavior of such applications, research has been done on relaxing their accuracy for performance benefits. We observe that not all transient errors affect program correctness, some errors only affect program accuracy, i.e., the program completes with certain acceptable deviations from error free outcome. This paper illustrates the idea of cross-layer soft-error resilience using machine learning workloads, where program accuracy is introduced as a tradeoff to deliver resilient yet efficient execution on futuristic large-scale multicores.
研究动机与目标
- 为应对在无人机和自动驾驶汽车等恶劣环境中部署的安全关键型机器学习系统中软错误日益增长的挑战。
- 降低现有软错误弹性方案在多核系统中带来的高性能和高功耗开销。
- 探索在不牺牲软错误覆盖或程序正确性的情况下,程序准确性与弹性开销之间的权衡。
- 通过基于代码区域对程序结果影响的分类,实现高效、可靠的机器学习工作负载执行。
提出的方法
- 根据代码区域对程序结果的影响,将其划分为关键区域(影响正确性)和非关键区域(仅影响准确性)。
- 对关键代码区域应用硬件冗余执行(HaRE),以确保在软错误下仍能保持正确性。
- 对非关键代码区域应用轻量级软硬件弹性(SHR)方案,以最小化性能开销。
- 采用跨层架构,协调硬件与软件,动态选择每个代码区域的弹性策略。
- 采用配置选择机制,根据环境中的错误率和可接受的准确性损失阈值调整弹性策略。
- 在多种机器学习基准测试(如CNN-ALEXNET、MLP-MNIST)上,评估不同错误率和准确性阈值下的方法表现。
实验结果
研究问题
- RQ1机器学习工作负载中的非关键代码区域是否可以使用轻量级弹性方案进行保护,而不会影响程序正确性?
- RQ2通过仅对关键代码区域应用强弹性机制,性能开销最多可降低多少?
- RQ3在不同机器学习基准和错误率下,准确性损失与性能提升之间的权衡关系如何变化?
- RQ4在给定的准确性阈值和环境错误条件下,哪些代码区域配置能实现最优的性能增益?
主要发现
- 所提出的跨层弹性(CL)架构将平均性能开销从~1.63×(HaRE)降低至~1.1×,相比非弹性执行。
- CL在所评估的机器学习基准上相比HaRE实现了平均32%的性能提升。
- 在0.1%错误率和10%准确性阈值下,CNN-ALEXNET通过将91%的执行时间分类为非关键区域,实现了37%的性能提升。
- 当错误率增加至0.5%时,性能提升下降至26%,因为需要将更多代码区域分类为关键区域以维持准确性。
- 将输出层定义为非关键区域会导致在0.1%错误率下所有基准测试的准确性损失超过10%,凸显其敏感性。
- 该方法在保持软错误覆盖并确保程序正确性的前提下,通过战略性弹性分区实现了显著的性能增益。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。