FERRAMENTAS LINUX: O desenvolvedor da AMDGPU propõe arquivos de registro de matrizes para o LLVM - ajudaria o desempenho

terça-feira, 9 de outubro de 2018

O desenvolvedor da AMDGPU propõe arquivos de registro de matrizes para o LLVM - ajudaria o desempenho


Confira !!



Uma das áreas dentro da pilha de drivers gráficos Linux Linux de código aberto que poderia se beneficiar de algumas melhorias / otimizações adicionais é o back-end do compilador AMDGPU LLVM. Uma das maneiras fáceis de ver que o código do LLVM da AMDGPU poderia ser melhorado são os benchmarks da Vulkan quando comparados ao compilador proprietário da AMD e ainda há algumas vitórias significativas com o código de compilação de shader mais maduro, mas de código fechado. Felizmente, algumas melhorias podem estar a caminho. 

Pelo menos uma das áreas a serem exploradas pelos desenvolvedores da AMD que poderiam ajudar com o back-end da AMDGPU LLVM está em um novo conceito chamado Array Register Files. Nicolai Hähnle, um desenvolvedor de código aberto de longa data da AMD, que muitas vezes se concentra na pilha de computação LLVM, propôs essa adição de infraestrutura para a pilha LLVM que ajudaria nesse back-end. 

Ele quer melhorar a infraestrutura da LLVM em torno da classe register / register física da geração de código para representar os arquivos de registro regulares de forma mais eficiente, o que ajudaria no caso das GPUs modernas da AMD terem uma tonelada de registros. Há também algumas características sobre os registros da GPU da AMD, como a ordenação de registros e a indexação indireta que também fazem diferença, ao contrário de muitos outros alvos. 

Nicolai acredita que a configuração atual do LLVM em torno de registros não é muito eficiente em seu caso em tempo de compilação e também leva a um impacto no desempenho em tempo de execução se não modelar adequadamente as propriedades de seus arquivos de registro. 

Mais detalhes técnicos podem ser encontrados na lista LLVM-dev . O código no Array Register Files não foi iniciado ainda, mas ele está atualmente avaliando o feedback; É bom ver que eles estão, pelo menos, continuando a explorar áreas de otimização em seu back-end do compilador LLVM, com isso sendo usado pelos drivers AMDVLK, RADV e RadeonSI. 

Do feedback até agora, também parece que o Array Register Files também ajudaria no trabalho de paralelismo do SimpleV que está sendo desenvolvido para o RISC-V.



Fonte


Até a próxima !!

Nenhum comentário:

Postar um comentário