新しい実装 OpenCLから(素朴)Rustで書かれたMesaプロジェクトのために開発されました。 CTSテストに合格しました (Kronos Conformance Test Suite)KhronosコンソーシアムがOpenCL3.0仕様との互換性をテストするために使用します。
»Rusticl»を知らない人は、それが次のように公開されていることを知っておく必要があります。 で書かれたMesaOpenCLの新しい実装 プログラミング言語 さび。
素朴 有名なメサのコラボレーター、カロル・ハーブストによって始められました Red Hatにいる間にNVIDIAの「Nouveau」オープンソースドライバーのエンジニアとしてスタートし、MesaのCloverITサポートやその他の取り組みに取り組んだRedHatのメンバーです。 Rusticlは、Rustプログラミング言語を学び、OpenCLの新しい(そしてできれば優れた)実装を提供するためのHerbstによる試みです。
RusticlはOpenCLに焦点を当てたはるかに現代的です 古いCloverコードと比較すると、それは注目に値しますが、この時点でRusticlはまだCloverの別の問題であるOpenCLイメージのサポートを持っていないということです。
素朴 clcに依存して、OpenCLソースコードをSPIR-Vにコンパイルします。 RusticlもNIR準拠のMesaGallium3Dドライバーに依存していますが、すべての主要なドライバーはすでに依存しています。 CarolがKhronosに連絡して、rusticlでのOpenCL3.0互換性の公式認証を取得したことに注意してください。
そして今、ニール・トレヴェットがツイッターで発表したように、rusticlはOpenCL3.0仕様との互換性を評価するためにKronosConformanceTestSuiteに合格しました。
Khronosは、長年にわたってすべてのMESA採用料金を免除したことを誇りに思っており、多くのMESA実装は公式に準拠しています。 MESAのOpenCL3.0がCTSを通過しているのは素晴らしいことです! MESAがOCL3.0採用契約を締結する準備が整い、プロセスを開始できるようになったらお知らせください…
テストは、第12世代IntelGPUを搭載したシステムで行われました。 ビルド(Alder Lake)は、Iris Mesaドライバーで作業が行われましたが、プロジェクトは、NIRシェーダーの型なし中間(IR)表現を使用する他のMesaドライバーで動作する必要があると述べられています。
Rusticlは、MesaのOpenCL Cloverインターフェースに対応するものとして機能し、MesaのGalliumインターフェースを使用して開発されています。 クローバーは長い間無視されてきた状態にあり、素朴なものはその将来の代替品として位置付けられています。 Rusticlプロジェクトは、OpenCL 3.0との互換性を実現することに加えて、画像処理用のOpenCL拡張機能をサポートしているという点で、Cloverとは異なりますが、FP16形式はまだサポートしていません。
Rusticlはrust-bindgenを使用しています MesaとOpenCLのバインディングを生成して、Rust関数をCコードから呼び出すことができます。その逆も可能です。
MesaプロジェクトでRust言語を使用する可能性については、2020年から議論されています。Rustサポートの利点の中には、メモリを操作する際の一般的な問題を排除することでドライバーのセキュリティと品質を向上させることや、開発を含める可能性について言及しています。 Kazan(RustでのVulkan実装)などのMesa上のサードパーティの
欠点の中には、ビルドシステムの複雑さ、ペイロードパッケージシステムへのバインドの不本意、ビルド環境の要件の増加、および提供されるビルド依存関係にRustコンパイラを含める必要があることがあります。 Linuxで主要なデスクトップコンポーネントを構築します。
最後に、 RusticlとMesaを統合するリクエストはまだ保留中であると言われています MesaにRust言語コードを含めるかどうかについてはまだ決定されていませんが、Mesa22.2リリースで提供される予定です。
これが、RusticlがメインのMesaコンポジションに受け入れられる前に、別のブランチを使用してビルドできる理由です。コンパイル時に、ビルドパラメーターを指定する必要があります。 "-Dgallium-rusticl = true -Dopencl-spirv = true -Dshader -cache = true -Dllvm=true»。
もしあなたが それについてもっと知りたい この新しい仕様については、詳細を確認できます 次のリンクで。