Improving performance of iterative applications through interleaved execution of approximated CUDA kernels - Freytag, Gabriel (2023)
As técnicas de computação aproximada, particularmente aquelas envolvendo precisão reduzida e mista, são amplamente estudadas na literatura para acelerar aplicações e reduzir o consumo de energia. Embora muitos pesquisadores analisem o desempenho, perda de precisão e consumo de energia de uma ampla gama de domínios de aplicação, poucos avaliam técnicas de computação aproximada em aplicações iterativas. Essas aplicações dependem do resultado dos cálculos das iterações anteriores para realizar iterações sub sequentes, tornando-as sensíveis a erros de precisão que podem se propagar e amplificar durante a execução. Além disso, monitorar a perda de precisão da execução em grandes conjuntos de dados é desafiador. Calcular a perda de precisão em tempo de execução é computacionalmente caro e se torna inviável em aplicações com um volume considerável de dados. Esta tese apresenta uma metodologia para gerar configurações de execução entrelaçadas de múltiplas versões de kernel para aplicações iterativas em GPUs. A meto dologia envolve amostrar o perfil de perda de precisão, extrair estatísticas de desempenho e perda de precisão, e gerar offline configurações de execução entrelaçadas de versões de kernel para diferentes limiares de perda de precisão. Os experimentos realizados em três aplicações iterativas de simulação física em domínios de dados tridimensionais de monstraram a capacidade da metodologia de extrair estatísticas de desempenho e perda de precisão e gerar configurações de execução entrelaçadas de versões de kernel com speedups de até 2 e redução do consumo de energia de até 60%. Para trabalhos futuros, sugerimos estudar diferentes estratégias de otimização para gerar configurações de execução entrelaçadas de versões de kernel, como o uso de redes neurais e aprendizado de máquina.