很多 Mesa 項目的開發者宣布了 rusticl 控制器的認證 由 Khronos 組織,e 成功通過了所有 CTS 測試 (Kronos 一致性測試套件)並被認為完全符合 OpenCL 3.0 規範,該規範定義了 C 語言 API 和擴展以編排跨平台並行計算。
有了這個,就有可能獲得一個證書,允許正式聲明與標準的兼容性並使用與它們相關的 Khronos 商標。
該驅動程序使用 Rust 編寫,由 Red Hat 的 Karol Herbst 開發,他參與了 Mesa、Nouveau 驅動程序和開放式 OpenCL 堆棧的開發。
Rusticl 通過了所有 CTS 測試
Rusticl 剛剛成為 Mesa 中的第一個 Rust 代碼,OpenCL 實現最近合併到 Mesa 22.3 版本中,應該注意的是,測試是在集成第 12 代英特爾 GPU 的系統上使用 Gallium3D Iris 驅動程序進行的。
對於那些不知道控制器的人,Rusticl 應該知道這個 作為 Mesa 的 OpenCL Clover 接口的對應物 並且也是使用 Mesa 的 Gallium 接口開發的。 三葉草長期以來一直被忽視,而 rusticl 被定位為未來的替代品。 Rusticl項目除了實現了OpenCL 3.0的兼容性外,與Clover的不同之處在於它支持圖像處理的OpenCL擴展,但尚不支持FP16格式。
Rusticl 使用 rust-bindgen 為 Mesa 和 OpenCL 生成綁定,允許從 C 代碼調用 Rust 函數,反之亦然。 從 2020 年開始就討論了在 Mesa 項目中使用 Rust 語言的可能性。
其中 Rust 支持的優點提到提高驅動程序的安全性和質量 通過消除使用內存時的典型問題,以及 在 Mesa 中包含第三方開發的可能性,例如 Kazan(Rust 中 Vulkan 的實現)。 缺點中有構建系統的複雜性,不願意鏈接到加載包系統,對構建環境的要求增加,以及需要在構建關鍵所需的構建依賴項中包含 Rust 編譯器Linux 上的桌面組件。
支持 Rust 語言的代碼和 rusticl 控制器已被主流 Mesa 接受 並將在預計於 22.3 月下旬發布的 Mesa XNUMX 版本中提供。 默認情況下將禁用 Rust 和 Rusticl 支持,並且需要使用顯式選項進行編譯“-D 鎵-rustcl=true -Dllvm=啟用 -Drust_std=2021“。
編譯時,需要額外依賴 rustc 編譯器、bindgen、LLVM、SPIRV-Tools 和 SPIRV-LLVM-Translator。
值得一提的是,他OpenCL 3.0 API 涵蓋所有 OpenCL 版本(1.2、2.x),無需為每個版本提供單獨的規範。 OpenCL 3.0 提供了通過集成附加規範來擴展核心功能的能力,這些規範將以選項的形式重疊,而不會阻礙 OpenCL 1.2/2.X 的整體特性。
此外,規範 OpenCL 3.0 已與環境、擴展和規範保持一致 通用中間表示 SPIR-V,那也是 使用 Vulkan API。 有了它,對 SPIR-V 1.3 規範的支持也作為可選功能添加到 OpenCL 3.0 內核中。 通過使用計算內核的 SPIR-V 中間表示,添加了對子組操作的支持。
最後,同樣值得注意的是 Nouveau 驅動程序的開發工作,也是由 Carol Herbst 完成的。 Nouveau 驅動程序基於 30 年 2020 月發布的 Ampere 微架構為 GNU NVIDIA GeForce RTX 6.2xx 添加了基本的 OpenGL 支持。與新芯片支持相關的更改將包含在 Linux 22.3 和 Mesa XNUMX 內核中。
如果您有興趣了解更多,可以查閱詳情 在下面的鏈接中。