A implementação do OpenCL do Mesa escrita em ferrugem já passou nos testes do CTS

A nova implementação do OpenCL (rústico) desenvolvido para o projeto Mesa, escrito em Rust, passou com sucesso nos testes CTS (Kronos Conformance Test Suite) usado pelo consórcio Khronos para testar a compatibilidade com as especificações OpenCL 3.0.

Para quem não conhece »Rusticl» deve saber que foi publicado como uma nova implementação do Mesa OpenCL escrita em linguagem de programação Ferrugem.

rústico foi iniciado pelo conhecido colaborador do Mesa Karol Herbst da Red Hat, que começou como engenheiro no driver de código aberto "Nouveau" da NVIDIA enquanto estava na Red Hat, e trabalhou no suporte de TI do Clover da Mesa e em outros empreendimentos. Rusticl é uma tentativa de Herbst de aprender a linguagem de programação Rust e também de fornecer uma nova (e esperançosamente superior) implementação do OpenCL.

Rusticl é muito mais moderno focado em OpenCL em comparação com o antigo código Clover e é perceptível, porém, é que Rusticl neste momento ainda não tem suporte a imagem OpenCL, que tem sido outro problema com o Clover.

rústico depende do clc para compilar o código-fonte OpenCL no SPIR-V. O Rusticl também depende dos drivers Mesa Gallium3D compatíveis com NIR, mas todos os principais drivers já o fazem. Cabe destacar que Carol entrou em contato com a Khronos para obter a certificação oficial de compatibilidade OpenCL 3.0 em rusticl.

E agora, rusticl passou com sucesso no Kronos Conformance Test Suite para avaliar a compatibilidade com as especificações OpenCL 3.0, como neil trevett anunciou no Twitter:

A Khronos se orgulha de ter dispensado todas as taxas de adoção do MESA ao longo dos anos, e muitas implementações do MESA estão oficialmente em conformidade. Ótimo que o OpenCL 3.0 da MESA está passando no CTS! Avise-nos quando a MESA estiver pronta para executar o Contrato de Adoção da OCL 3.0 e poderemos iniciar o processo…

O teste foi feito em um sistema com GPU Intel de 12ª geração build (Alder Lake), com o qual o trabalho foi feito com o driver Iris Mesa, mas menciona-se que o projeto deve funcionar com outros drivers Mesa que usem a representação intermediária sem tipo (IR) de shaders NIR.

Rusticl atua como uma contrapartida da interface OpenCL Clover do Mesa e também é desenvolvido usando a interface Gallium do Mesa. O Clover está em estado de abandono há muito tempo e o rusticl se posiciona como seu futuro substituto. Além de alcançar a compatibilidade com OpenCL 3.0, o projeto Rusticl difere do Clover porque suporta extensões OpenCL para processamento de imagem, mas ainda não suporta o formato FP16.

Rusticl usa ferrugem-bindgen para gerar ligações para Mesa e OpenCL que permitem que funções Rust sejam chamadas de código C e vice-versa.

A possibilidade de usar a linguagem Rust no projeto Mesa vem sendo discutida desde 2020. Entre as vantagens do suporte Rust estão a melhoria da segurança e qualidade dos drivers eliminando problemas típicos ao trabalhar com memória, além da possibilidade de incluir desenvolvimentos de terceiros no Mesa, como Kazan (uma implementação Vulkan no Rust).

Entre as deficiências, há uma complicação do sistema de compilação, uma relutância em se vincular ao sistema de pacotes de carga útil, um aumento nos requisitos para o ambiente de compilação e a necessidade de incluir o compilador Rust nas dependências de compilação fornecidas. para construir os principais componentes de desktop no Linux.

Finalmente, é mencionado que o pedido de fusão do Rusticl com o Mesa ainda está pendente e nenhuma decisão foi tomada ainda sobre a inclusão do código da linguagem Rust no Mesa, mas espera-se que chegue na versão Mesa 22.2

É por isso que antes que o Rusticl seja aceito na composição principal do Mesa, uma ramificação separada pode ser usada para compilar, ao compilar, você deve especificar os parâmetros de compilação "-Dgallium-rusticl=true -Dopencl-spirv=true -Dshader -cache=true -Dllvm =true».

Se você interessado em saber mais sobre isso Sobre esta nova especificação, você pode conferir os detalhes no link a seguir.


Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: AB Internet Networks 2008 SL
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.