OpenCL 3.0仕様の導入

OpenGL、Vulkan、OpenCL ファミリ仕様の開発を担当する Khronos 社は、 объявил スーパーコンピューターやクラウドサーバーで使用されるマルチコアCPU、GPU、FPGA、DSP、その他の特殊チップを使用したクロスプラットフォーム並列コンピューティングを組織するためのAPIとC言語の拡張機能を定義するOpenCL 3.0仕様の開発完了についてモバイルデバイスや組み込みテクノロジーに搭載されているチップまで。 OpenCL 標準は完全にオープンであり、ライセンス料は必要ありません。 IBM、NVIDIA、Intel、AMD、Apple、ARM、Electronic Arts、Qualcomm、Texas Instruments、東芝などの企業がこの規格の策定に参加しました。

現段階では、この仕様には暫定的なステータスが割り当てられており、これは、 GitHubの。コメントが考慮されると、仕様が完成し、既存の実装の互換性をテストするための最終テスト スイートが公開されます。

OpenCL 3.0仕様の導入

最も注目すべき 特徴 OpenCL 3.0:

  • 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 サブグループを使用した操作のサポートがコンピューティング コアに追加されました。
    OpenCL 3.0仕様の導入

  • ダイレクト メモリ アクセスを備えた 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++ アプリケーションのアセンブリを組織化し、並列アプリケーションの作成を簡素化します。

    OpenCL 3.0仕様の導入

  • Vulkan API を介して OpenCL をブロードキャストするためのコンパイラが提案されています clspvOpenCL カーネルを Vulkan SPIR-V 表現とレイヤーに変換します。 clvk OpenCL API が Vulkan 上で動作できるようにします。

    OpenCL 3.0仕様の導入

出所: オープンネット.ru

コメントを追加します