Mesa 的 Rusticl 是一个尚未合并的 OpenCL 实现,用于使用 Rust 编程语言编写的 Mesa Gallium3D 驱动程序。最新代码现在可以通过 Khronos OpenCL 3.0 一致性测试套件!
虽然 Mesa Gallium3D “Clover” OpenCL 状态跟踪器早已存在,但它的发展一直相当停滞。今年 Red Hat 的 Karol Herbst 开始编写“Rustcl”作为 Mesa 的基于 Rust 的新 OpenCL 实现。上个月,我写了一篇关于Mesa 的令人兴奋的 Rusticl 工作,以及它的 OpenCL 3.0 兼容性目标,并且更加关注现代。
尽管尚未合并到 Mesa,但截至本周的最新 Rustic 代码现在能够成功通过 OpenCL 3.0 一致性测试套件 (CTS)。Rusticl 确实令人兴奋地具有 OpenCL 图像支持——长期以来对 Clover 状态跟踪器的抱怨——和 printf 支持,而诸如 FP16 处理等一些功能仍有待编写。
反过来,Karol Herbst 已经联系了 Khronos,希望能够证明这个开源 OpenCL 3.0 实现。更新后的 OpenCL 3.0 CTS 传递代码是待处理的 Mesa 合并请求的一部分。
Rusticl 似乎与 Mesa 很好地融合在一起,实现了现代 OpenCL!
Karol Herbst 一直在使用英特尔第 12 代显卡通过 OpenCL 3.0 CTS 测试 Rusticl 代码。在使用 Intel 的 Iris 驱动程序进行测试时,Rustic 应该适用于支持 NIR 中间表示的其他 Mesa 驱动程序。
当前形式的 Rusticl 代码刚刚超过 14k 行新代码。(尽管 Rusticl 确实依赖于外部 clc 将源代码编译为 SPIR-V。)Rusticl 还用作处理 Mesa 内部的 Rust 代码的实验。合并后,可以在构建时使用“ -Dgallium-rusticl=true -Dopencl-spirv=true -Dshader-cache=true -Dllvm=true ”启用 Rusticl 并提供符合 OpenCL ICD 的文件。
让我们希望 Rusticl 能够登陆 Mesa 22.2!在这个里程碑上向 Karol 和 Red Hat 致敬。与 Radeon ROCm 无法在大多数 Linux 发行版中很好地打包并需要额外的步骤以及英特尔的 Compute-Runtime 在这一点上没有被发行版广泛打包相比,Rusticl 有可能在 Linux 桌面上提供更多的 OpenCL 3.0 支持。这也有助于在许多较小的 Mesa Gallium3D 驱动程序上允许 OpenCL。
原创文章,作者:校长,如若转载,请注明出处:https://www.yundongfang.com/Yun157070.html