SwapCodes: Error Codes for Hardware-Software Cooperative GPU Pipeline Error Detection
SwapCodes: Error Codes for Hardware-Software Cooperative GPU Pipeline Error Detection
复制标题
SwapCodes:软硬件协同 GPU 管道错误检测的错误代码
DOI:
--
复制
发表时间:
2018
期刊:
影响因子:
--
通讯作者:
S. Keckler
中科院分区:
文献类型:
--
作者:
Michael B. Sullivan;S. Hari;B. Zimmer;Timothy Tsai;S. Keckler
Intra-thread instruction duplication offers straightforward and effective pipeline error detection for data-intensive processors. However, software-enforced instruction duplication uses explicit checking instructions, roughly doubles program register usage, and doubles the arithmetic operation count per thread, potentially leading to severe slowdowns. This paper investigates SwapCodes, a family of software-hardware cooperative mechanisms to accelerate intra-thread duplication in GPUs. SwapCodes leverages the register file ECC hardware to detect pipeline errors without sacrificing the ability of ECC to detect and correct storage errors. By implicitly checking for pipeline errors on each register read, SwapCodes avoids the overheads of instruction checking without adding new hardware error checkers or buffers. We describe a family of SwapCodes implementations that successively eliminate the sources of inefficiency in intra-thread duplication with different complexities and error detection and correction trade-offs. We apply SwapCodes to protect a GPU-based processor against pipeline errors, and demonstrate that it is able to detect more than 99.3% of pipeline errors while improving performance and system efficiency relative to software-enforced duplication—the most performant SwapCodes organization incurs just 15% average slowdown over the un-duplicated program.