O driver aberto do Rusticl é certificado em conformidade com OpenCL 3.0

Os desenvolvedores do projeto Mesa anunciaram a certificação pela organização Khronos do driver rústico, que passou com sucesso em todos os testes do conjunto CTS (Kronos Conformance Test Suite) e é reconhecido como totalmente compatível com a especificação OpenCL 3.0, que define APIs e extensões da linguagem C para organizar a computação paralela multiplataforma. A obtenção de um certificado permite declarar oficialmente a conformidade com os padrões e usar as marcas registradas Khronos associadas. O teste foi realizado em um sistema com GPUs Intel integradas de 12ª geração usando o driver Gallium3D Iris.

O driver foi escrito em Rust e desenvolvido por Karol Herbst da Red Hat, que está envolvido no desenvolvimento do Mesa, do driver Nouveau e da pilha aberta OpenCL. Rusticle atua como um análogo do frontend OpenCL Clover do Mesa e também é desenvolvido usando a interface Gallium fornecida no Mesa. O trevo está abandonado há muito tempo e o rústico se posiciona como seu futuro substituto. Além de alcançar compatibilidade com OpenCL 3.0, o projeto Rusticle difere do Clover no suporte a extensões OpenCL para processamento de imagens, mas ainda não suporta o formato FP16. Para gerar ligações para Mesa e OpenCL, permitindo chamar funções Rust a partir do código C e vice-versa, Rust-bindgen é usado no Rusticle.

O código de suporte à linguagem Rust e o driver rústico foram aceitos no mainstream do Mesa e serão oferecidos na versão Mesa 22.3, prevista para o final de novembro. O suporte a ferrugem e rústico será desabilitado por padrão e exigirá uma compilação com as opções "-D gallium-rusticl=true -Dllvm=enabled -Drust_std=2021" explicitamente especificadas. Ao compilar, você precisará do compilador Rustc, do gerador de ligação bindgen, do LLVM, do SPIRV-Tools e do SPIRV-LLVM-Translator como dependências adicionais.

A possibilidade de utilização da linguagem Rust no projeto Mesa é discutida desde 2020. Entre as vantagens do suporte Rust, cita-se o aumento da segurança e qualidade dos drivers devido à eliminação de problemas típicos ao trabalhar com memória, bem como a possibilidade de incluir desenvolvimentos de terceiros no Mesa, como Kazan (uma implementação do Vulkan em ferrugem). As desvantagens incluem maior complexidade do sistema de construção, relutância em se vincular ao sistema de pacotes de carga, requisitos expandidos para o ambiente de construção e a necessidade de incluir o compilador Rust nas dependências de construção necessárias para construir os principais componentes de desktop no Linux.

Adicionalmente, podemos destacar o trabalho de desenvolvimento do driver Nouveau, também realizado por Carol Herbst. O driver Nouveau adicionou suporte OpenGL básico para GNU NVIDIA GeForce RTX 30xx baseado na microarquitetura Ampere, lançada desde maio de 2020. Mudanças relacionadas ao suporte a novos chips serão incluídas no kernel Linux 6.2 e no Mesa 22.3.

Fonte: opennet.ru

Adicionar um comentário