Análise de desempenho, custo energético e acurácia de um módulo de um modelo numérico de previsão meteorológica usando precisão reduzida - Sudo, Marcelo Augusto [UNIFESP] (2025)
A Computação Aproximada é um paradigma utilizado por pesquisadores da área de Ciência da Computação que permite reduzir ou simplificar a precisão com que os dados são processados e armazenados, aceitando perdas de acurácia ou precisão dentro de limites toleráveis. A redução de precisão e precisão mista são as técnicas existentes mais estudadas de acordo com uma recente Revisão Sistemática da Literatura. Em complemento a esse fato, a NVIDIA lançou GPUs que possuem uma arquitetura denominada Tensor Core, com o objetivo de acelerar algumas classes de algoritmos, como a multiplicação de matrizes, e que utiliza os citados conceitos. Este estudo tem como objetivo demonstrar a aplicação da técnica de precisão reduzida em computação científica através de um modelo numérico chamado MPAS, mais especificamente em sua rotina de microfísica das nuvens chamada WSM6. Estudos prévios da técnica foram experimentados em algoritmos de multiplicação de matrizes e de estêncil, para então aplicar os conhecimentos adquiridos no modelo numérico de previsão meteorológica mencionado. A análise inicial relaciona os ganhos de desempenho e de energia obtidos em relação às possíveis perdas de acurácia. Os resultados desta fase da pesquisa mostraram que foi possível obter uma aceleração de 16.60× com um algoritmo otimizado de multiplicação de matrizes presente na função intrínseca matmul usando dados de ponto flutuante de 16 bits (FP16) com Tensor Core em GPU, comparado com uma versão ingênua do mesmo algoritmo, usando ponto flutuante de 64 bits (FP64) em CPU, além de um ganho energético de 57%. Para esta mesma aplicação, a perda de acurácia no resultado final foi de 10−26 a 10−1, aproximadamente. Para o algoritmo de estêncil, foi possível obter um ganho de 1.60× apenas reduzindo a precisão das variáveis de 64 bits para uma versão com ponto flutuante de 16 bits, e ganho energético de 40%, com perda de precisão de 0 a 10−9, para 300 iterações. Na etapa pricipal da pesquisa, os resultados mostraram que a eficiência energética (GFLOPS/W) aumenta à medida que a precisão diminui em intervalos de previsão entre 1 e 24 horas. Os testes de desempenho indicam uma aceleração de apenas 1.15× usando uma CPU tradicional (FP64 a FP32) com um único núcleo executando uma thread. No entanto, para GPUs, há uma significativa aceleração de 109.28× ao usar FP16 em GPU em comparação com FP64 na CPU. A precisão foi avaliada usando o Erro Quadrático Médio (EQM) e diferença máxima para variáveis específicas (qv, qc, qi, qr, qs, qg) intimamente relacionadas à microfísica. As diferenças mais significativas foram observados na variável qv, com EQM variando de 10−11 a 10−6 e diferenças máximas de 10−3 a 10−2. A média do erro dos mínimos quadrados para todas variáveis seguiu tendência semelhante, com valores em torno 10−5. A conclusão que se chega a partir desses estudos é que foi possível obter um ganho de desempenho com uma perda aceitável de acurácia, para o modelo numérico estudado, viabilizando a investigação da aplicação de técnicas em outros modelos numéricos, assim como em GPUs mais atualizadas com variação de compiladores.