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

Los desarrolladores del proyecto Mesa anunciaron la certificación por parte de la organización Khronos del controlador rusticl, que pasó con éxito todas las pruebas del conjunto CTS (Kronos Conformance Test Suite) y es reconocido como totalmente compatible con la especificación OpenCL 3.0, que define API y Extensiones del lenguaje C para organizar la computación paralela multiplataforma. Obtener un certificado le permite declarar oficialmente el cumplimiento de los estándares y utilizar las marcas registradas Khronos asociadas. La prueba se realizó en un sistema con GPU Intel integradas de 12 generación utilizando 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 abierta OpenCL. Rusticle actúa como un análogo de la interfaz OpenCL de Mesa, Clover, y también se desarrolla utilizando la interfaz Gallium proporcionada en Mesa. Clover lleva mucho tiempo abandonado y rusticl se posiciona como su futuro sustituto. Además de lograr compatibilidad con OpenCL 3.0, el proyecto Rusticle se diferencia de Clover en que admite extensiones OpenCL para el procesamiento de imágenes, pero aún no es compatible con el formato FP16. Para generar enlaces para Mesa y OpenCL, lo que le permite llamar a funciones de Rust desde código C y viceversa, se utiliza Rust-bindgen en Rusticle.

El código de soporte del lenguaje Rust y el controlador rusticl han sido aceptados en la corriente principal de Mesa y se ofrecerán en la versión Mesa 22.3, prevista para finales de noviembre. La compatibilidad con Rust y Rusticl estará deshabilitada de forma predeterminada y requerirá una compilación con las opciones "-D galium-rusticl=true -Dllvm=enabled -Drust_std=2021" especificadas explícitamente. Al compilar, necesitará el compilador rustc, el generador de enlaces bindgen, LLVM, SPIRV-Tools y SPIRV-LLVM-Translator como dependencias adicionales.

La posibilidad de utilizar el lenguaje Rust en el proyecto Mesa se discute desde 2020. Entre las ventajas del soporte de Rust se menciona una mayor seguridad y calidad de los drivers al eliminar problemas típicos al trabajar con memoria, así como la posibilidad de incluir desarrollos de terceros en Mesa, como Kazan (una implementación de Vulkan en Óxido). Las desventajas incluyen una mayor complejidad del sistema de compilación, la renuencia a vincularse al sistema de paquetes de carga, requisitos ampliados para el entorno de compilación y la necesidad de incluir el compilador Rust en las dependencias de compilación necesarias para crear componentes clave de escritorio en Linux.

Además, cabe destacar el trabajo de desarrollo del driver Nouveau, también realizado por Carol Herbst. El controlador Nouveau ha agregado soporte básico de OpenGL para GNU NVIDIA GeForce RTX 30xx basado en la microarquitectura Ampere, lanzado desde mayo de 2020. Los cambios relacionados con la compatibilidad con nuevos chips se incluirán en el kernel Linux 6.2 y Mesa 22.3.

Fuente: opennet.ru

Añadir un comentario