Avanço Rusticl

O avanço do Rusticl no OpenCL para drivers Gallium3D

O Rusticl, implementação de OpenCL escrita em Rust, continua a evoluir em 2024, com suporte ao OpenCL 3.0 nos drivers Zink e Asahi, além de novas extensões. O suporte à Memória Virtual Compartilhada está em desenvolvimento.

Logo do Mesa drivers

Na X.Org Developers‘ Conference (XDC 2024) realizada em Montreal, Karol Herbst, da Red Hat, apresentou o progresso contínuo do Rusticl, uma implementação de OpenCL escrita em Rust, integrada ao Mesa para drivers Gallium3D.

Crescimento do Rusticl em 2024

OpenCL 3.0.11 lançado com duas novas extensões

O Rusticl continua avançando e já oferece uma implementação compatível com o OpenCL 3.0 nos drivers Zink e Asahi, com o último sendo ativado por padrão na versão Mesa 24.3. Isso proporciona aos dispositivos Apple Silicon M1/M2 suporte nativo ao OpenCL. O driver V3D, utilizado em dispositivos como o Raspberry Pi, também está sendo trabalhado para integrar suporte ao Rusticl.

Novos recursos e extensões do Rusticl

Karol Herbst detalhou durante sua apresentação vários novos recursos do OpenCL que foram implementados recentemente. Entre eles, destacam-se:

  • Imagens de leitura e escrita em OpenCL C
  • Suporte ao compartilhamento OpenCL e OpenGL (cl_khr_gl_sharing)
  • Tamanho sugerido de trabalho local (cl_khr_suggested_local_work_size)

Outros recursos como variantes de kernel e despachos maiores estão agora disponíveis, além de várias reformulações e correções de bugs no núcleo do Rusticl.

Projetos em andamento

O desenvolvimento continua para implementar mais funcionalidades, como:

  • Suporte a imagens de profundidade (cl_khr_depth_images)
  • Compartilhamento de imagens MSAA (cl_khr_gl_msaa_sharing)
  • Extensão de endereço de dispositivo de buffer (cl_ext_buffer_device_address)

Suporte à memória virtual compartilhada (SVM)

Um dos pontos mais empolgantes em desenvolvimento é o suporte à Memória Virtual Compartilhada (SVM). Essa funcionalidade está sendo trabalhada com foco nos drivers Intel Iris e AMD RadeonSI, visando uma operação eficiente em vários drivers de hardware. No entanto, o suporte à memória de múltiplos dispositivos (multi-GPU) ainda precisa de ajustes, pois está atualmente com falhas.

Além disso, os drivers Etnaviv para gráficos Vivante e Freedreno para Qualcomm Adreno também estão recebendo melhorias para suportar o Rusticl.

Aqueles interessados no progresso do Rusticl podem acessar a atualização completa apresentada por Karol Herbst, incluindo os slides em PDF disponíveis online.