Análise de desempenho da arquitetura CUDA utilizando os NAS parallel benchmarks

Abstract

Processadores gráficos vêm sendo utilizados como aceleradores paralelos para computações de propósito geral (GPGPU), não detidos mais apenas em aplicações gráficas. Isto acontece devido ao custo reduzido e grande potencial de desempenho paralelo dos processadores gráficos, alcançando Teraflops. CUDA (Compute Unified Device Architecture) é um exemplo de arquitetura com essas características. Diversas aplicações já foram portadas para CUDA nas áreas de dinâmica de fluídos, reconhecimento de fala, alinhamento de sequências, entre outras. Entretanto, não há uma definição clara de quais tipos de aplicações podem se aproveitar dos potenciais ganhos de desempenho que as GPGPUs trazem, visto que a arquitetura do hardware é do tipo SIMD (Simple Instruction, Multiple Data) e que existem restrições nos acessos à memória. Visando estudar esta questão, este trabalho apresenta uma análise de desempenho da arquitetura de placa gráfica CUDA guiada por modelos paralelos e benchmarks. Para isso, os benchmarks EP e FT dos NAS Parallel Benchmarks foram portados e otimizados para CUDA, mantendo o uso de operações de ponto flutuante de precisão dupla. Estes dois benchmarks fazem parte das categorias MapReduce e Spectral Methods, respectivamente, dentro da classificação Dwarf Mine. Uma análise de desempenho foi realizada, fazendo uma comparação entre os resultados obtidos pelas novas versões implementadas e as versões originais do código compiladas para execução de forma sequencial e paralela com OpenMP. Os resultados obtidos mostraram speedups de até 21 vezes para o benchmark EP e quase 3 vezes para o benchmark FT, quando comparadas as versões para CUDA com as versões com OpenMP. Estes resultados indicam uma compatibilidade entre a arquitetura CUDA e aplicações pertencentes às categorias MapReduce e Spectral Methods.Graphic processors are being used not only for graphic applications but as parallel accelerators for general-purpose computations (GPGPU). This happens due to their reduced costs and performance potential, reaching Teraflops. CUDA (Compute Unified Device Architecture) is an example of architecture with this characteristics. Several applications in the areas of fluid dynamics, speech recognition, sequence alignment and others have already being ported to CUDA. However, there is not a clear definition of which kinds of applications can take profit of the potential gains of performance that the GPGPUs have, since they have a SIMD (Single Instruction, Multiple Data) architecture and that are restrictions to the memory access. Aiming to study that question, this work presents a performance analysis of the CUDA GPU architecure guided by parallel models and benchmarks. For this, the EP and FT benchmarks from the NAS Parallel Benchmarks were ported and optimized to CUDA, keeping the use of double precision floating-point operations. These two benchmarks are included in the MapReduce and Spectral Methods classes, respectively, from the Dwarf Mine classification. A performance analysis was made comparing the results obtained by the new implemented versions of the benchmarks and their original versions, compiled to execute in a sequential manner and in a parallel manner with OpenMP. The obtained results showed speedups up to 21 times for the EP benchmark and almost 3 times for the FT one, when comparing the CUDA versions to the versions with OpenMP. These results indicate a compatibility between the CUDA architecture and the applications belonging to the MapReduce and Spectral Methods classes

    Similar works