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 接口開發的。 三葉草長期處於被忽視的狀態,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. 權利:您可以隨時限制,恢復和刪除您的信息。