FERRAMENTAS LINUX: O LLVM fundiu no Kernel o suporte inicial para a linguagem OpenMP

sábado, 7 de outubro de 2023

O LLVM fundiu no Kernel o suporte inicial para a linguagem OpenMP

No dia 5, foi integrado ao LLVM 18 o suporte inicial para a linguagem do kernel OpenMP no Git. 

Essa iniciativa visa criar códigos de GPU portáteis de alto desempenho como uma alternativa aos ambientes proprietários, como o CUDA.

O trabalho consiste em extensões do LLVM OpenMP desenvolvidas por pesquisadores da Stony Brook University e do Lawrence Livermore National Laboratory (LLNL). O resumo desse esforço na linguagem do kernel OpenMP é descrito no artigo de pesquisa de 2023:

"Neste trabalho, introduzimos extensões para o LLVM OpenMP, transformando-o em uma linguagem de kernel portátil versátil e de alto desempenho para programação de GPU. Essas extensões possibilitam a portabilidade perfeita de programas de linguagens de kernel para programas de GPU OpenMP de alto desempenho com modificações mínimas. Para avaliar nossa extensão, implementamos um protótipo de prova de conceito que contém um subconjunto das extensões propostas. Portamos seis aplicativos de proxy e benchmark CUDA estabelecidos e avaliamos seu desempenho em plataformas AMD e NVIDIA. Comparando com versões nativas (HIP e CUDA), nossos resultados mostram que o OpenMP, aprimorado com nossas extensões, pode não apenas igualar, mas também, em alguns casos, superar o desempenho das linguagens do kernel, oferecendo assim portabilidade de desempenho com esforço mínimo dos desenvolvedores de aplicativos."

O suporte inicial para essa linguagem de kernel OpenMP foi incorporado ao LLVM Git, começando a permitir a escrita da região alvo do OpenMP no estilo SIMT, semelhante às linguagens do kernel como CUDA. Este patch inclui a cláusula ompx_bare para a diretiva de equipes de destino, desativando a globalização para variáveis locais e eliminando chamadas de função init/deinit do tempo de execução. No entanto, muitas diretivas executáveis OpenMP ainda não são suportadas nesta região.

A expectativa é que essas extensões facilitem a transição de linguagens de kernel, como CUDA, para o OpenMP de maneira portátil e entre diferentes fornecedores. Os primeiros resultados de desempenho da prova de conceito foram promissores em comparação com NVIDIA CUDA e AMD HIP. Será interessante observar como esse trabalho na linguagem do kernel OpenMP evolui com o LLVM na linha principal.






Fonte

Até a próxima !!


Nenhum comentário:

Postar um comentário