Rusticl's open driver is certified OpenCL 3.0 compliant

The developers of the Mesa project announced the certification of the rusticl driver by the Khronos organization, which successfully passed all the tests from the CTS (Kronos Conformance Test Suite) and was recognized as fully compatible with the OpenCL 3.0 specification, which defines the API and extensions of the C language for organizing cross-platform parallel computing. Obtaining a certificate makes it possible to officially declare compatibility with standards and use Khronos trademarks associated with them. The test was performed on a system with 12 generation integrated Intel GPUs using the Gallium3D Iris driver.

The driver is written in Rust and developed by Karol Herbst of Red Hat, who is involved in the development of Mesa, the Nouveau driver, and the OpenCL open stack. Rusticl acts as a counterpart to Mesa's OpenCL Clover frontend and is also developed using Mesa's Gallium interface. Clover has long been in a derelict state and rusticl is positioned as its future replacement. In addition to achieving compatibility with OpenCL 3.0, the Rusticl project differs from Clover in supporting OpenCL extensions for image processing, but does not yet support the FP16 format. Rusticl uses rust-bindgen to generate bindings for Mesa and OpenCL that allow Rust functions to be called from C code and vice versa.

The code to support the Rust language and the rusticl driver have been accepted into the Mesa mainstream and will be offered in the Mesa 22.3 release, which is expected in late November. Rust and rusticl support will be disabled by default and will require building with explicit options "-D gallium-rusticl=true -Dllvm=enabled -Drust_std=2021". When building, the rustc compiler, bindgen, LLVM, SPIRV-Tools, and the SPIRV-LLVM-Translator are required as additional dependencies.

The possibility of using the Rust language in the Mesa project has been discussed since 2020. Among the advantages of Rust support, they mention improving the security and quality of drivers by getting rid of typical problems when working with memory, as well as the ability to include third-party developments in Mesa, such as Kazan (an implementation of Vulkan on Rust). Among the shortcomings, there is a complication of the build system, an unwillingness to be tied to the cargo package system, an increase in the requirements for the build environment, and the need to include the Rust compiler in the build dependencies that are required to build key desktop components in Linux.

Additionally, work on the development of the Nouveau driver, also carried out by Carol Herbst, can be noted. Nouveau driver adds basic OpenGL support for GNU NVIDIA GeForce RTX 30xx based on Ampere microarchitecture released since May 2020. Changes related to support for new chips will be included in the Linux 6.2 kernel and Mesa 22.3.

Source: opennet.ru

Add a comment