Asahi AGX Mesa Driver se prepara para kernels de computação da Apple Silicon

Asahi Linux investe em recursos HDMI, EAS e GPU da Apple
asahi

O driver Asahi “AGX” Gallium3D que fornece suporte ao driver OpenGL de código aberto para hardware gráfico Apple M1 e M2 viu o trabalho preliminar mesclado no Mesa 23.1 para suportar shaders e kernels de computação. Então, o Asahi AGX Mesa Driver se prepara para kernels de computação da Apple Silicon.

Neste fim de semana, Alyssa Rosenzweig fundiu o suporte inicial para kernels de computação no Mesa Git. Isso tem o trabalho do lado do driver Mesa do espaço do usuário para lidar com kernels de computação, mas é claro que depende de ter o suporte necessário no driver do kernel DRM que ainda não foi transmitido para o kernel Linux. O suporte para imagens também está entre os recursos ainda a serem abordados.

Asahi AGX Mesa Driver se prepara para kernels de computação da Apple Silicon

Asahi Linux on Apple M2 MacBook Air.

De qualquer forma, é bom ver esse suporte a kernel/shader de computação se unindo no Mesa 23.1 e o trabalho acontecendo em conjunto tanto para o driver do kernel DRM escrito por Asahi Rust quanto dentro do Mesa.

Outra solicitação de mesclagem importante que está pendente é o trabalho de preparação do Linux UAPI para se preparar para a API de espaço do usuário do Linux de sincronização explícita (atualmente instável). Por sua vez, essa solicitação de mesclagem também descarta o suporte inicial ao macOS desse driver que foi usado principalmente durante a fase inicial de prototipagem.

Intel continua com mais otimizações de grande porte para o kernel Linux

Eu amo patches do kernel Linux que mencionam “massivamente”, usam pontos de exclamação ao falar sobre desempenho e/ou simplesmente mencionam grandes acelerações. Muitas vezes, esses patches saem da Intel e, na semana passada, eles enviaram outra grande série de patches de otimização de desempenho para melhorar os bits adicionais de baixo nível do kernel.

Os engenheiros da Intel classificaram um gargalo dentro do código de rede do kernel Linux e descobriram um problema de desempenho em torno da simultaneidade com a estrutura de dados dst_entry. Para ir direto ao ponto, algumas das principais conclusões dos comentários do patch:

Wangyang e Arjan relataram um gargalo no código de rede relacionado ao struct dst_entry::__refcnt. O desempenho é reduzido maciçamente quando a simultaneidade em um dst_entry aumenta.

Isso acontece quando há uma grande quantidade de conexões de ou para o mesmo endereço IP. O benchmark memtier quando executado no mesmo host que o memcached amplifica isso massivamente. Mas mesmo em conexões de rede reais, esse problema pode ser observado em uma escala obviamente menor (devido à banda de rede com limitações na minha configuração, ou seja, 1Gb).

A combinação dessas duas mudanças resulta em ganhos de desempenho em micro benchmarks e também em benchmarks memtier localhost e em rede conversando com memcached. É difícil quantificar os resultados do benchmark, pois eles dependem muito da microarquitetura e do número de operações simultâneas.

O ganho geral de ambas as alterações para o memtier localhost varia de 1,2X a 3,2X e de +2% a %5% para operações em rede em uma conexão de 1Gb.

Um micro benchmark que impõe simultaneidade maximizada mostra um ganho entre 1,2X e 4,7X!!!

Os patches estão atualmente sendo revisados e discutidos através deste thread LKML.

Acesse a versão completa
Sair da versão mobile