Abstract:
Unidades de Processamento Gráfico (GPUs) oferecem grande desempenho computacional para processamento paralelo de dados e contam com ferramentas de desenvolvimento que dão suporte à programação e utilização desses dispositivos em aplicações de propósito geral. Portanto, GPUs são utilizadas em diversos tipos de aplicações e têm despertado o interesse de programadores para utilizá-las também em aplicações que requerem alto grau de confiabilidade, tais como aplicações automotivas, médicas e espaciais. Porém, GPUs são circuitos integrados construídos com as mais modernas tecnologias de circuitos nanométricos, apresentando altíssima densidade de transistores em sua estrutura e operando a altas frequências de clock, o que torna GPUs sensíveis a falhas induzidas por partículas de radiação. Deste modo, é imprescindível que técnicas de tolerância a falhas sejam aplicadas para detecção e correção de falhas induzidas por radiação sempre que GPUs forem utilizadas em aplicações críticas. Este trabalho apresenta uma abordagem de tolerância a falhas baseada em técnicas em software de baixo nível para detectar Single Event Upsets (SEUs) nos registradores de GPUs, o que inclui os registradores do bancos de registradores de dados, de endereço e de predicado, e os registradores de pipeline. As técnicas foram aplicadas sobre quatro algoritmos de estudo de caso, os quais foram executados em uma GPU de propósito geral (GPGPU) baseada na arquitetura NVIDIA G80. Campanhas de injeção de falhas foram feitas em simulação a nível de transferência entre registradores (RTL) nos bancos de registradores e no pipeline. Como caso de uso, foram utilizados quatro algoritmos, em suas versões originais e protegidas. Os resultados mostram uma redução em erros de até 100% e custos de tempo de execução e de ocupação de memória de até 77% e 115% superiores aos valores obtidos das aplicações originais, respectivamente.
Graphics Processing Units (GPUs) provide high computational performance for parallel data processing and count with development tools that support the programming and use of these devices in general purpose applications. Therefore, GPUs are used in many types of applications and have attracted developers to use them in applications that require high degrees of reliability, such as automotive, medical and space applications. However, GPUs are integrated circuits built with the most modern nanometric circuitry, presenting very high transistors density in their structure and operating at high clock frequencies, which makes GPUs sensitive to faults induced by radiation particles. Therefore, it is indispensable that faulttolerance techniques be applied for detecting and correcting radiation-induced faults whenever GPUs are used in critical applications. This work presents a fault tolerance approach based on low-level software techniques to detect Single Event Upsets (SEUs) in GPUs registers, which include vector, address, and predicate register files, and the pipeline registers. The techniques were applied to four case-study algorithms, which were executed on a General Purpose GPU (GPGPU) based on the NVIDIA G80 architecture. Fault injection campaigns at Register Transfer Level (RTL) simulation is performed on the register files and on the pipeline. As case-study, four algorithms were used, in their original and hardened versions. Results show reduction in errors up to 100%, and costs of overheads in execution time and program memory footprint up to 77% and 115% superior than original values, respectively.