Para aqueles que se perguntam, a NVIDIA ainda está buscando um alocador genérico de memória de dispositivo Unix, discutido há anos e um sucessor em potencial de empresas como o Generic Buffer Manager (GBM). Agora eles têm uma implementação de seu alocador proposto trabalhando para o driver NVIDIA (Nouveau) de código aberto, embora ainda haja muito trabalho pela frente. Portanto, a NVIDIA ainda trabalha em um alocador genérico.
Todos os anos, na X.Org Developers ‘Conference (XDC), eles apresentam conceitos e trabalham em uma nova API de memória de dispositivos. Isso porque estão insatisfeitos com a semântica do GBM e que inicialmente é um dos obstáculos para o driver Linux da NVIDIA no suporte aos compositores Wayland, com muitos deles adaptados ao GBM, enquanto o design inicial do suporte Wayland da NVIDIA tem sido em torno do EGLStreams. Porém, eles querem esse novo alocador hipotético API.
A NVIDIA tem como objetivo uma API melhor do que o GBM, foi projetada para ser de vários fornecedores/drivers, independente de API e várias outras melhorias em relação ao status quo. No entanto, não há muita informação sobre isso desde o final de 2017. Porém, na semana passada no XDC2019 houve finalmente uma atualização de James Jones da NVIDIA.
NVIDIA ainda trabalha em um alocador genérico
Os engenheiros da NVIDIA implementaram seu alocador de prova de conceito atual no driver Nouveau. Com esse novo alocador e usando modificadores e outros recursos, eles conseguiram ver melhor desempenho em algumas cargas de trabalho.
James Jones relatou que o desempenho foi 50 a 300% melhor quando não descomprimido. Mas para um kmscube modificado que se comporta como uma área de trabalho composta, o ganho do fluxo de trabalho foi cerca de 80% melhor no geral.
Olhando para o futuro
A NVIDIA está procurando uma revisão no layout do modificador de formato, analisando e mesclando o código Mesa, escrevendo uma extensão para o suporte ao modificador de formato de transição e integrando esse código aos protocolos/compositores e bibliotecas de Wayland. Eles também estão trabalhando na implementação desse alocador genérico em seu driver proprietário, com esta implementação de fonte aberta da NVIDIA provando ser um sucesso.
No entanto, ainda existem vários problemas de design aberto com este alocador genérico, conforme descrito neste deck de slides em PDF de XDC2019. Para encurtar a história, a NVIDIA ainda está perseguindo esse novo design de alocador. Assim, talvez em 2020 possa finalmente estar pronta para uma adoção mais ampla se outros fornecedores de drivers se unirem a ela. Os bits em relação ao kernel para a implementação do Nouveau podem ser encontrados através desta árvore do GitHub junto com o código do Mesa.
Fonte: Phoronix