OpenGL、Vulkan、OpenCL ファミリ仕様の開発を担当する Khronos 社は、
現段階では、この仕様には暫定的なステータスが割り当てられており、これは、
最も注目すべき
- OpenCL 3.0 API は、バージョンごとに個別の仕様を提供することなく、OpenCL のすべてのバージョン (1.2、2.x) をカバーするようになりました。 OpenCL 3.0 は、OpenCL 1.2/2.X のモノリシックな性質をブロックすることなく、オプションの形式で階層化される追加仕様の統合を通じてコア機能を拡張する機能を提供します。
- OpenCL 1.2 に準拠する機能のみが必須と宣言されており、OpenCL 2.x 仕様で提案されているすべての機能はオプションとして分類されます。 このアプローチにより、OpenCL 3.0 と互換性のあるカスタム実装の作成が容易になり、OpenCL 3.0 を使用できるデバイスの範囲が拡大します。 たとえば、メーカーは特定の OpenCL 3.0.x 機能を実装せずに OpenCL 2 サポートを実装できます。 オプションの言語機能にアクセスするために、OpenCL 3.0 には、個々の API 要素および特別なマクロのサポートを評価できるテスト クエリのシステムが追加されました。
- 以前にリリースされた仕様との統合により、アプリケーションの OpenCL 3.0 への移行が容易になります。 OpenCL 1.2 アプリケーションは、変更を加えることなく、OpenCL 3.0 をサポートするデバイス上で実行できるようになります。 OpenCL 2.x アプリケーションも、OpenCL 3.0 環境が必要な機能を提供している限り、コードを変更する必要はありません (将来の移植性を確保するために、OpenCL 2.x アプリケーションには、OpenCL 2.x 機能のサポートを評価するテスト クエリを追加することをお勧めします)使用されています)。 OpenCL 実装を使用するドライバー開発者は、製品を OpenCL 3.0 に簡単にアップグレードして、特定の API 呼び出しのクエリ処理のみを追加し、時間の経過とともに徐々に機能を強化できます。
- OpenCL 3.0 仕様は、Vulkan API でも使用される SPIR-V 汎用中間表現の環境、拡張機能、および仕様に準拠しています。 SPIR-V 1.3 仕様のサポートは、コア OpenCL 3.0 にオプション機能として含まれています。 中間表現の使用を通じて
SPIR-V サブグループを使用した操作のサポートがコンピューティング コアに追加されました。
- ダイレクト メモリ アクセスを備えた DSP のようなチップでサポートされる、非同期 DMA 操作を実行するための拡張機能 (非同期 DMA) のサポートが追加されました。 非同期 DMA を使用すると、DMA トランザクションを使用して、計算や他のデータ転送操作と並行して、グローバル メモリとローカル メモリの間でデータを非同期に転送できます。
- C 並列プログラミング拡張機能の仕様が次のように更新されました。
バージョン3.0 そして、C++ 用の OpenCL 言語拡張機能の開発は中止され、「C++ for OpenCL」プロジェクトが優先されました。 C++ for OpenCL は、Clang/LLVM に基づくコンパイラであり、放送 C++ および OpenCL C カーネルを SPIR-V 中間表現または低レベル マシン コードに変換します。 SPIR-V は、ブロードキャストを通じて、SYCL テンプレート ライブラリを使用して C++ アプリケーションのアセンブリを組織化し、並列アプリケーションの作成を簡素化します。 - Vulkan API を介して OpenCL をブロードキャストするためのコンパイラが提案されています
clspv OpenCL カーネルを Vulkan SPIR-V 表現とレイヤーに変換します。clvk OpenCL API が Vulkan 上で動作できるようにします。
出所: オープンネット.ru