通过部分线程保护在GPGPU应用程序中实现软件弹性
Enabling Software Resilience in GPGPU Applications via Partial Thread Protection
摘要:
图形处理单元(GPU)被广泛领域中的各种应用广泛使用以加速其计算,但仍然容易受到可能容易损害应用输出的瞬时硬件故障(软错误)的影响。通过利用线程、线程束和协作线程阵列中的通用GPU应用程序分层组织,我们提出了一种识别线程弹性的方法,旨在将具有相同弹性特征的线程映射到相同的线程束。这允许接合部分复制机制以用于在扭曲级别处的错误检测/校正。通过探索12个基准测试(17个内核)从4个基准套件,我们说明了线程可以重新映射到可靠或不可靠的线程束,只有1.63%的引入开销(平均),然后通过复制到那些组的线程,真正需要它启用选择性保护。此外,我们表明,线程重新映射到不同的线程束不会牺牲应用程序的性能。我们展示了这种重新映射如何促进翘曲复制错误检测和/或纠正,并实现了平均减少20.61%和27.15%的执行周期,分别与标准的重复/三重。
英文摘要:
Graphics Processing Units (GPUs) are widely used by various applications in a broad variety of fields to accelerate their computation but remain susceptible to transient hardware faults (soft errors) that can easily compromise application output. By taking advantage of a general purpose GPU application hierarchical organization in threads, warps, and cooperative thread arrays, we propose a methodology that identifies the resilience of threads and aims to map threads with the same resilience characteristics to the same warp. This allows engaging partial replication mechanisms for error detection/correction at the warp level. By exploring 12 benchmarks (17 kernels) from 4 benchmark suites, we illustrate that threads can be remapped into reliable or unreliable warps with only 1.63% introduced overhead (on average), and then enable selective protection via replication to those groups of threads that truly need it. Furthermore, we show that thread remapping to different warps does not sacrifice application performance. We show how this remapping facilitates warp replication for error detection and/or correction and achieves an average reduction of 20.61% and 27.15% execution cycles, respectively comparing to standard duplication/triplication.
机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。