Declarative Resilience: A Holistic Soft-Error Resilient Multicore Architecture that Trades off Program Accuracy for Efficiency

Declarative Resilience: A Holistic Soft-Error Resilient Multicore Architecture that Trades off Program Accuracy for Efficiency
复制标题

声明式弹性:一种整体软错误弹性多核架构,以程序准确性换取效率

DOI:
10.1145/3210559
复制
发表时间:
2018
影响因子:
2
通讯作者:
Khan, Omer
Khan, Omer
中科院分区:
计算机科学3区
文献类型:
--
作者:
Omar, Hamza;Shi, Qingchuan;Ahmad, Masab;Dogan, Halit;Khan, Omer

文献摘要

相似文献

为了保护多核免受软错误扰动,研究人员探索了各种提供高软错误覆盖率的弹性方案。然而,这些方案会带来较高的性能和能源开销。我们观察到,并非所有的软错误扰动都会影响程序的正确性,有些软错误只会影响程序的准确性,即程序完成时会与无错误结果存在某些可接受的偏差。因此,通过权衡弹性开销和程序准确性来提高处理器效率是切实可行的。本文提出了声明式弹性的想法,即对对程序正确性至关重要的代码区域(关键代码)选择性地应用强弹性方案,并对容易因软错误而导致程序准确性偏差的代码区域(非关键代码)应用轻量级弹性方案。在应用程序级别,根据其对程序结果的影响来识别关键和非关键代码。跨层架构可实现高效的弹性和整体软错误覆盖。在非关键代码执行期间发生软错误的最坏情况下,只有程序准确性会受到影响。对于一组机器学习和图形分析基准,声明式弹性比最先进的系统降低了性能开销,该系统对从 ~ 1.43× 到 ~ 1.2× 的所有程序代码区域应用了强大的弹性。
To protect multicores from soft-error perturbations, research has explored various resiliency schemes that provide high soft-error coverage. However, these schemes incur high performance and energy overheads. We observe that not all soft-error perturbations affect program correctness, and some soft-errors only affect program accuracy, i.e., the program completes with certain acceptable deviations from error free outcome. Thus, it is practical to improve processor efficiency by trading off resiliency overheads with program accuracy. This article proposes the idea of declarative resilience that selectively applies strong resiliency schemes for code regions that are crucial for program correctness (crucial code) and lightweight resiliency for code regions that are susceptible to program accuracy deviations as a result of soft-errors (non-crucial code). At the application level, crucial and non-crucial code is identified based on its impact on the program outcome. A cross-layer architecture enables efficient resilience along with holistic soft-error coverage. Only program accuracy is compromised in the worst-case scenario of a soft-error strike during non-crucial code execution. For a set of machine-learning and graph analytic benchmarks, declarative resilience reduces performance overhead over a state-of-the-art system that applies strong resiliency for all program code regions from ∼ 1.43× to ∼ 1.2×.