為 Mesa 專案開發的 Rust 編寫的新 OpenCL 實作 (rusticl) 已成功通過 Khronos 聯盟用於評估與 OpenCL 3.0 規範相容性的 CTS(Kronos 一致性測試套件)測試套件。該專案由紅帽公司的 Karol Herbst 開發,他參與了 Mesa、Nouveau 驅動程式和 OpenCL 開放堆疊的開發。值得注意的是,Carol 就 rustcl 對 OpenCL 3.0 支援的官方認證事宜聯繫了 Khronos。
測試在配備第 12 代 Intel GPU (Alder Lake) 的系統上完成。這項工作是使用 Mesa Iris 驅動程式進行的,但該專案也應該與使用 NIR 著色器的無類型中間表示 (IR) 的其他 Mesa 驅動程式配合使用。將 Rusticle 與 Mesa 合併的請求仍在審查中,尚未決定是否將 Rust 程式碼包含在 Mesa 中。在 Rusticl 被主要 Mesa 組合接受之前,您可以使用單獨的分支進行構建,在編譯時您應該指定構建參數“-Dgallium-rustcl=true -Dopencl-spirv=true -Dshader-cache=true -Dllvm=真的」。
Rusticle 類似 Mesa 的 OpenCL 前端 Clover,也是使用 Mesa 提供的 Gallium 介面開發的。 Clover 股份已被廢棄很長時間,rusticl 被定位為未來的替代者。除了實作 OpenCL 3.0 相容性之外,Rusicle 專案與 Clover 的不同之處在於支援 OpenCL 擴充功能進行影像處理,但尚未支援 FP16 格式。
Rusticl 使用 rust-bindgen 為 Mesa 和 OpenCL 產生綁定,從而允許從 C 程式碼呼叫 Rust 函數,反之亦然。自 2020 年以來,Mesa 計畫一直在討論使用 Rust 語言的可能性。支援 Rust 的優點包括:由於消除了常見的記憶體問題,驅動程式的安全性和品質得到提升;以及能夠將第三方開發成果(例如 Kazan,Vulkan 的 Rust 實作)整合到 Mesa 中。缺點包括:建置系統複雜性增加、對 cargo 打包系統的依賴性降低、建置環境要求擴大,以及需要在建置關鍵桌面元件所需的建置依賴項中包含 Rust 編譯器。 Linux.
來源: opennet.ru
