Rusticl 的开放式驱动程序经认证符合 OpenCL 3.0 标准

Mesa 项目的开发者宣布了 Khronos 组织对 rusticl 驱动程序的认证,该驱动程序成功通过了 CTS(Kronos Conformance Test Suite)的所有测试,并被认为完全兼容 OpenCL 3.0 规范,该规范定义了 API 和用于组织跨平台并行计算的 C 语言的扩展。 获得证书可以正式声明与标准的兼容性并使用与它们相关的 Khronos 商标。 该测试是在具有第 12 代集成 Intel GPU 的系统上使用 Gallium3D Iris 驱动程序进行的。

该驱动程序使用 Rust 编写,由 Red Hat 的 Karol Herbst 开发,他参与了 Mesa、Nouveau 驱动程序和 OpenCL 开放堆栈的开发。 Rusticl 作为 Mesa 的 OpenCL Clover 前端的对应物,也是使用 Mesa 的 Gallium 接口开发的。 Clover 长期以来一直处于废弃状态,而 rusticl 被定位为未来的替代品。 除了实现与 OpenCL 3.0 的兼容之外,Rusticl 项目与 Clover 的不同之处在于支持图像处理的 OpenCL 扩展,但尚不支持 FP16 格式。 Rusticl 使用 rust-bindgen 为 Mesa 和 OpenCL 生成绑定,允许从 C 代码调用 Rust 函数,反之亦然。

支持 Rust 语言的代码和 rusticl 驱动程序已被 Mesa 主流接受,并将在预计于 22.3 月下旬发布的 Mesa 2021 版本中提供。 默认情况下将禁用 Rust 和 rusticl 支持,并且需要使用显式选项“-D gallium-rusticl=true -Dllvm=enabled -Drust_std=XNUMX”进行构建。 构建时,需要 rustc 编译器、bindgen、LLVM、SPIRV-Tools 和 SPIRV-LLVM-Translator 作为附加依赖项。

从 2020 年开始就讨论了在 Mesa 项目中使用 Rust 语言的可能性。 在 Rust 支持的优势中,他们提到通过摆脱使用内存时的典型问题来提高驱动程序的安全性和质量,以及在 Mesa 中包含第三方开发的能力,例如 Kazan(Vulkan 在锈)。 缺点包括构建系统的复杂性,不愿绑定到货物包系统,对构建环境的要求增加,以及需要在所需的构建依赖项中包含 Rust 编译器在 Linux 中构建关键桌面组件。

此外,还可以注意到同样由 Carol Herbst 进行的 Nouveau 驱动程序的开发工作。 Nouveau 驱动程序基于 30 年 2020 月发布的 Ampere 微架构,为 GNU NVIDIA GeForce RTX 6.2xx 添加了基本的 OpenGL 支持。 与支持新芯片相关的更改将包含在 Linux 22.3 内核和 Mesa XNUMX 中。

来源: opennet.ru

添加评论