El controlador abierto de Rusticl está certificado como compatible con OpenCL 3.0

Los desarrolladores del proyecto Mesa anunciaron que el controlador rusticl ha sido certificado por Khronos. Ha superado con éxito todas las pruebas del Kronos Conformance Test Suite (CTS) y se considera totalmente compatible con la especificación OpenCL 3.0, que define las API y las extensiones del lenguaje C para la computación paralela multiplataforma. Esta certificación permite a Khronos declarar oficialmente su conformidad con los estándares y utilizar las marcas registradas asociadas. La verificación se realizó en un sistema con GPU integradas Intel de 12.ª generación y el controlador Gallium3D Iris.

El controlador está escrito en Rust y desarrollado por Karol Herbst de Red Hat, quien participa en el desarrollo de Mesa, el controlador Nouveau y la pila OpenCL de código abierto. Rusticl funciona como un análogo de Clover, el frontend OpenCL de Mesa, y también se desarrolla utilizando la interfaz Gallium de Mesa. Clover lleva tiempo abandonado, y rusticl se posiciona como su futuro sustituto. Además de ser compatible con OpenCL 3.0, Rusticl se diferencia de Clover en que admite extensiones OpenCL para el procesamiento de imágenes, pero aún no admite el formato FP16. Rusticl utiliza rust-bindgen para generar enlaces para Mesa y OpenCL, lo que permite llamar a funciones de Rust desde código C y viceversa.

El código de soporte del lenguaje Rust y el controlador rusticl se han incorporado al núcleo de Mesa y se lanzarán en Mesa 22.3, previsto para finales de noviembre. La compatibilidad con Rust y rusticl estará deshabilitada por defecto y requerirá opciones de compilación explícitas como "-D gallium-rusticl=true -Dllvm=enabled -Drust_std=2021". Otras dependencias de compilación incluyen el compilador rustc, bindgen, LLVM, SPIRV-Tools y SPIRV-LLVM-Translator.

La posibilidad de usar el lenguaje Rust en el proyecto Mesa se viene debatiendo desde 2020. Entre las ventajas de la compatibilidad con Rust, se citan la mejora de la seguridad y la calidad de los controladores al eliminar problemas comunes de memoria, así como la posibilidad de incorporar desarrollos de terceros en Mesa, como Kazan (una implementación de Vulkan en Rust). Las desventajas incluyen una mayor complejidad del sistema de compilación, la reticencia a depender del sistema de empaquetado de carga, mayores requisitos del entorno de compilación y la necesidad de incluir el compilador de Rust en las dependencias de compilación necesarias para compilar componentes clave de escritorio en Linux.

Además, cabe destacar el trabajo de Carol Herbst en el controlador Nouveau. Este controlador añade compatibilidad básica con OpenGL para las GPU NVIDIA GeForce RTX 30xx basadas en la microarquitectura Ampere, lanzadas desde mayo de 2020. Los cambios relacionados con la compatibilidad con estos nuevos chips se incluirán en el kernel de Linux 6.2 y Mesa 22.3.

Fuente: opennet.ru

Añadir un comentario