FERRAMENTAS LINUX: A Microsoft está explorando LTO + PGO para um kernel Linux mais rápido

quinta-feira, 27 de agosto de 2020

A Microsoft está explorando LTO + PGO para um kernel Linux mais rápido




Confira !!



Enquanto mais e mais fornecedores de software estão empregando otimizações de tempo de link ( LTO ) e otimizações guiadas por perfil ( PGO ) para alavancar o compilador para reduzir o desempenho, pode surpreender muitos que os engenheiros da Microsoft estão explorando LTO + PGO para o kernel Linux em seus própria busca de alcançar maior desempenho do Linux.

Usar otimizações de tempo de link no kernel do Linux não é um conceito novo, com vários fornecedores diferentes ao longo dos anos propondo patches LTO para o kernel Linux, embora eles geralmente não acabem com muito movimento. No passado, Linus Torvalds e outros não estavam convencidos do LTO'ing no kernel em parte devido ao mau estado da LTO no passado para o GCC. Mas hoje em dia, com o compilador GCC moderno (e o Clang), o LTO tende a estar em ótima forma com o openSUSE e logo o Fedora fazendo uso do LTO por padrão ao montar seus pacotes de distribuição. Também houve gente como o Clear Linux que levou isso ainda mais longe, fazendo uso do AutoFDO (Otimizações direcionadas por feedback automático) para maior desempenho de sua distribuição.

Embora LTO'ing o kernel do Linux não seja um conceito novo, não ouvimos muito sobre PGO'ing o kenrel. Com otimizações guiadas por perfil que dependem de, bem, perfis para realimentar o compilador para auxiliar em suas heurísticas de otimização, é vital que os perfis sejam precisos para uso no mundo real. Dadas as cargas de trabalho muito diversas vistas no Linux e na ampla gama de hardwares e drivers, seria uma tarefa enorme gerar perfis úteis o suficiente para PGO que pudessem ser usados ​​em grande escala e ajudassem a grande maioria dos usuários. Portanto, para PGO'ing o kernel é provavelmente mais uma base de nicho para usuários / organizações individuais que podem empregar PGO e atendê-lo para seus casos de uso precisos.

Ian Bearman, gerente de engenharia de software da Microsoft, apresentou na Linux Plumbers Conference desta semana sobre a exploração da otimização guiada por perfil do kernel do Linux.


Seu interesse PGO origina-se de uma "solicitação do cliente interno" sobre o desempenho do Linux. Então, novamente, a Microsoft trabalhando na otimização do desempenho do Linux não é uma grande surpresa nos dias de hoje, com outro engenheiro da Microsoft sendo o único a empurrar os patches FSGSBASE para frente e, finalmente, o único a agradecer por colocá-los agora no Kernel Linux 5.9.


O Redis é um dos exemplos públicos que eles têm explorado para obter os benefícios do uso do kernel PGO.

A partir do LPC2020, a Microsoft continua explorando o PGO para o kernel Linux. É interessante ver que é reconhecido que o Microsoft Windows aproveita amplamente o LTO + PGO. Na instância do Windows, eles notaram um desempenho 5 a 20% maior dessas otimizações de compilador, presumivelmente com seu próprio compilador MSVC. Mais detalhes no conjunto de slides da Linux Plumbers Conference.


Até a próxima !!

Nenhum comentário:

Postar um comentário