Mesa 用 rust 编写的 OpenCL 实现已经通过了 CTS 测试

新的实施 来自 OpenCL (质朴的) 为 Mesa 项目开发,用 Rust 编写, 已成功通过 CTS 测试 (Kronos 一致性测试套件)被 Khronos 联盟用于测试与 OpenCL 3.0 规范的兼容性。

对于那些不知道»Rusticl»的人,他们应该知道它已作为 一个新的 Mesa OpenCL 实现,用 编程语言 锈。

质朴的 由著名的 Mesa 合作者 Karol Herbst 创立 Red Hat 的一位工程师,他在 Red Hat 时最初是 NVIDIA 的“Nouveau”开源驱动程序的工程师,并从事 Mesa 的 Clover IT 支持和其他工作。 Rusticl 是 Herbst 尝试学习 Rust 编程语言并提供一种新的(并且希望是更好的)OpenCL 实现的尝试。

Rustic 更加现代,专注于 OpenCL 与旧的 Clover 代码相比,虽然很明显,但 Rusticl 在这一点上仍然没有 OpenCL 图像支持,这是 Clover 的另一个问题。

质朴的 依赖 clc 将 OpenCL 源代码编译成 SPIR-V。 Rusticl 还依赖于符合 NIR 的 Mesa Gallium3D 驱动程序,但所有主要驱动程序都已经这样做了。 需要注意的是,Carol 联系了 Khronos 以获得 rustic 中 OpenCL 3.0 兼容性的官方认证。

现在,正如 neil trevett 在 Twitter 上宣布的那样,rustic 已成功通过 Kronos 一致性测试套件来评估与 OpenCL 3.0 规范的兼容性:

Khronos 很自豪多年来免除了所有 MESA 采用费用,并且许多 MESA 实现正式合规。 太好了,MESA 的 OpenCL 3.0 正在通过 CTS! 让我们知道 MESA 何时准备好执行 OCL 3.0 采用协议,我们可以开始这个过程……

测试是在配备第 12 代 Intel GPU 的系统上完成的 build (Alder Lake),使用 Iris Mesa 驱动程序完成了工作,但提到该项目应该与使用 NIR 着色器的无类型中间 (IR) 表示的其他 Mesa 驱动程序一起使用。

Rusticl 作为 Mesa 的 OpenCL Clover 接口的对应物,也是使用 Mesa 的 Gallium 接口开发的。 Clover长期以来一直处于被忽视的状态,而rustic则被定位为未来的替代品。 除了实现 OpenCL 3.0 兼容性之外,Rusticl 项目与 Clover 的不同之处在于它支持用于图像处理的 OpenCL 扩展,但尚不支持 FP16 格式。

Rusticl 使用 rust-bindgen 为 Mesa 和 OpenCL 生成绑定,允许从 C 代码调用 Rust 函数,反之亦然。

自 2020 年以来一直在讨论在 Mesa 项目中使用 Rust 语言的可能性。在 Rust 支持的优势中,他们提到通过消除使用内存时的典型问题来提高驱动程序的安全性和质量,以及包括开发的可能性Mesa 上的第三方,例如 Kazan(Rust 上的 Vulkan 实现)。

缺点包括构建系统复杂,不愿意绑定payload包系统,对构建环境的要求增加,需要在提供的构建依赖中包含Rust编译器。在 Linux 上构建关键桌面组件。

最后, 提到将 Rusticl 与 Mesa 合并的请求仍在等待中 并且尚未决定是否将 Rust 语言代码包含在 Mesa 中,但预计将在 Mesa 22.2 版本中发布

这就是为什么在 Rusticl 被接纳到主 Mesa 组合之前,可以使用单独的分支来构建,编译时必须指定构建参数 "-Dgallium-rusticl=true -Dopencl-spirv=true -Dshader -cache=true -DLLvm =真»。

如果你是 有兴趣了解更多 关于这个新规范,您可以查看详细信息 在下面的链接中。


发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责资料:AB Internet Networks 2008 SL
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。