Rusticl agora é certificado e suporta OpenCL 3.0

Ferrugem-2

O controlador Rusticl da Mesa passou com sucesso nos testes Conformance Test Suite (CTS)

Os desenvolvedores do projeto Mesa anunciaram a certificação do controlador rusticl pela organização Khronos, quee passou com sucesso em todos os testes CTS (Kronos Conformance Test Suite) e foi reconhecido como totalmente compatível com a especificação OpenCL 3.0, que define as APIs e extensões da linguagem C para orquestrar a computação paralela de plataforma cruzada.

Com isso, foi possível obter um certificado que permite declarar oficialmente a compatibilidade com os padrões e usar as marcas Khronos associadas a eles.

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 OpenCL aberta.

Rusticl passa em todos os testes CTS

Rusticl acaba de se tornar o primeiro código Rust dentro do Mesa, com uma implementação OpenCL recentemente incorporada ao lançamento do Mesa 22.3, e deve-se observar que o teste foi realizado em um sistema com uma GPU Intel de 12ª geração integrada usando o driver Gallium3D Iris.

Para quem desconhece o controller, a Rusticl deve saber que este atua como uma contraparte da interface OpenCL Clover da Mesa e também é desenvolvido usando a interface Gallium do Mesa. O trevo há muito foi negligenciado e o rusticl está posicionado como seu futuro substituto. Além de obter compatibilidade com OpenCL 3.0, o projeto Rusticl difere do Clover por oferecer suporte a extensões OpenCL para processamento de imagem, mas ainda não oferece suporte ao formato FP16.

Rusticl usa rust-bindgen para gerar ligações para Mesa e OpenCL que permitem que funções Rust sejam chamadas a partir do código C e vice-versa. A possibilidade de usar a linguagem Rust no projeto Mesa é discutida desde 2020.

Entre as as vantagens do suporte Rust mencionam a melhoria da segurança e da qualidade dos drivers eliminando problemas típicos ao trabalhar com memória, bem como o Possibilidade de incluir desenvolvimentos de terceiros no Mesa, como Kazan (uma implementação do Vulkan em Rust). Entre as deficiências, há uma complicação do sistema de compilação, falta de vontade de vincular ao sistema de pacotes de carga, aumento dos requisitos para o ambiente de compilação e a necessidade de incluir o compilador Rust nas dependências de compilação necessárias para criar a chave componentes de desktop no Linux.

O código para suportar a linguagem Rust e o controlador rusticl foi aceito no mainstream Mesa e será oferecido na versão Mesa 22.3, prevista para o final de novembro. O suporte a Rust e Rusticl será desabilitado por padrão e exigirá compilação com opções explícitas "-D gálio-rusticl=verdadeiro -Dllvm=ativado -Drust_std=2021".

Ao compilar, o compilador rustc, bindgen, LLVM, SPIRV-Tools e SPIRV-LLVM-Translator são necessários como dependências adicionais.

Deve-se mencionar que eleA API OpenCL 3.0 abrange todas as versões OpenCL (1.2, 2.x), sem fornecer especificações separadas para cada versão. O OpenCL 3.0 oferece a capacidade de estender a funcionalidade principal por meio da integração de especificações adicionais que se sobrepõem na forma de opções sem bloquear a natureza monolítica do OpenCL 1.2/2.X.

Além disso, a especificação OpenCL 3.0 foi alinhado com o ambiente, extensões e especificações de a representação intermediária genérica SPIR-V, que também usa a API Vulkan. Com ele, o suporte para a especificação SPIR-V 1.3 também foi adicionado ao kernel OpenCL 3.0 como um recurso opcional. Usando a representação intermediária SPIR-V para kernels computacionais, foi adicionado suporte para operações com subgrupos.

Por fim, vale destacar também o trabalho de desenvolvimento do driver Nouveau, também feito por Carol Herbst. O driver Nouveau adiciona suporte OpenGL básico para GNU NVIDIA GeForce RTX 30xx com base na microarquitetura Ampere lançada desde maio de 2020. Alterações relacionadas ao novo suporte de chip serão incluídas no kernel Linux 6.2 e Mesa 22.3.

Se você estiver interessado em saber mais sobre isso, você pode consultar 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: Miguel Ángel Gatón
  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.