FERRAMENTAS LINUX: Otimização do Glibc com Armazenamento Não Temporal para o memset Agora Beneficia os Processadores AMD

quarta-feira, 12 de junho de 2024

Otimização do Glibc com Armazenamento Não Temporal para o memset Agora Beneficia os Processadores AMD

 No mês passado, foi incorporado ao código do Git da GNU C Library (glibc) um novo parâmetro ajustável para armazenamentos não temporais para a função memset. 

Essa otimização de desempenho do memset no glibc inicialmente foi limitada a processadores Intel, uma vez que, na época, só havia sido testada e avaliada nesses CPUs. 

Agora, está provado que essa otimização também é útil para processadores AMD.

O engenheiro da Intel, Noah Goldstein, introduziu no mês passado o parâmetro ajustável "glibc.cpu.x86_memset_non_temporal_threshold" para definir o limite para armazenamento não temporal no memset. A documentação do x86_memset_non_temporal_threshold explica:

"Este parâmetro ajustável permite ao usuário definir um limite em bytes para o armazenamento não temporal no memset. Armazenamentos não temporais fornecem uma dica ao hardware para mover dados diretamente para a memória sem deslocar outros dados do cache. Este parâmetro é usado por algumas plataformas para determinar quando usar o armazenamento não temporal no memset."





O armazenamento não temporal do memset foi inicialmente limitado artificialmente apenas aos processadores Intel, uma vez que foi onde se testou e se verificou o benefício de desempenho. Afinal, foi um engenheiro da Intel que liderou essa mudança.


Contudo, na segunda-feira, foi integrado ao Git do Glibc uma extensão desse parâmetro ajustável para processadores AMD. Joe Damato, da Fastly, fez os testes e descobriu que essa otimização também é benéfica para os processadores AMD. Os benchmarks mostraram que o armazenamento não temporal no memset é vantajoso para processadores AMD em testes realizados com hardwares Zen 2, Zen 3 e Zen 4. Os dados para os interessados podem ser encontrados em uma planilha do Google Docs, que contém números detalhados para os diversos CPUs Zen da AMD, bem como para os processadores Intel.



Este commit agora no Glibc permite que esse parâmetro ajustável funcione em plataformas AMD, estendendo assim os benefícios de desempenho para uma gama maior de processadores e garantindo uma otimização mais ampla.



Esta mudança representa um avanço significativo na otimização de desempenho do Glibc, beneficiando tanto os usuários de processadores Intel quanto AMD. Com isso, o Glibc se torna ainda mais eficiente e adaptável, atendendo melhor às necessidades dos diversos usuários e desenvolvedores.



Fonte

Até a próxima !!

Nenhum comentário:

Postar um comentário