クロノス・グループ、SYCL 1.2.1を発表

機械学習、TensorFlowアクセラレーション、C ++ 17アライメントのサポートを強化

世界有数のハードウェアおよびソフトウェア企業からなるオープン・コンソーシアムのKhronos™ Group(以下、クロノス)は、SYCL™1.2.1仕様を承認し、公開したと発表しました。 OpenCL™対応SYCLは、標準的な最新C ++を使用して、ヘテロジニアスなプロセッサ用コードを「シングルソース」スタイルで記述可能とします。マルチベンダー対応のSYCL 1.2.1は、どなたでも無償で使用できます。SYCLオープンソース・コンフォーマンス・テストおよびアドプター・プログラムに関する詳細は、www.khronos.org/syclをご参照ください。

OpenCL 1.2に基づくSYCL 1.2.1は、クロノスの会員企業が2年半にわたって取り組んだ、重要な更新作業です。新しい仕様には、3つの個別の実装から得られた重要な経験と、TensorFlowなどの機械学習フレームワークの開発者からのフィードバックが組み込まれています。これは、元のCUDAアクセラレータ・バックエンドと同時にSYCLをサポートします。

クロノスで、SYCLワーキング・グループのチェアを務めるMichael Wong氏は次のように述べています。「これはSYCLの重要なバージョンアップです。機械学習をサポートし、現代のC ++に対応する意思と一致する拡張されたエコシステムを備えています。 SYCLは、ヘテロジニアスなサポートに向けてC ++の推進を引き続き支援しています。私たちは、機械学習と安全クリティカルサポートを重視し、将来のISO C ++との継続的な連携を重視する、SYCLロードマップを迅速に進めることを目的としています」

SYCLシングル・ソース・プログラミングは、アプリケーションのホストコードとカーネルコードを同じソースファイルに、型安全な方法で、クロスプラットフォームの非同期タスク・グラフの単純さで含めることができます。 SYCLには、テンプレートと汎用のラムダ関数が含まれており、より高度なアプリケーションソフトウェアを幅広い範囲において、OpenCL 1.2で最適化されたカーネルコードでコーディングすることができます。開発者は、OpenCL CまたはC ++よりも高いレベルでプログラムを作成できますが、OpenCL、C / C ++ライブラリ、OpenCV™やOpenMP™などのフレームワークとのシームレスな統合により、常に低レベルのコードにアクセスできます。

SYCLは、最新C ++用の極めて汎用的なドメイン固有の埋め込み言語(DSEL)ですが、OpenCLインプリメンテーションとの独自の相互運用性により、開発者は既存のOpenCL C / C ++やビルトイン・カーネルで簡単にプログラムすることができます。 SYCLは、Khronos cl2.hpp C ++ラッパーを置き換えて、非同期タスク・グラフなどのSYCLの概念を有効にし、プログラマーが面倒なホスト・デバイス転送コード作成作業を軽減することができます。さらに、SYCLは、単純なエラー処理と、ホストとデバイス間の効率的な計算と通信のオーバーラップを提供します。

OpenCLとの相互運用性だけでなく、SYCLはOpenGL®、Vulkan®、OpenVX™、DirectXをはじめ、企業各社のAPIとも、メモリコピーのオーバーヘッドなしで相互運用可能です。 SYCL 1.2.1は、様々なハードウェアベンダーのOpenCL 1.2インプリメンテーションで、さまざまな既存のC ++コンパイラやレイヤーと連携して動作するように実装できます。 SYCLは、Khronos SPIR™1.2ポータブル・バイナリ・フォーマットをベースにしており、OpenCL 2.2、SPIR-V™、Vulkanなど、将来のOpenCL機能を長期的にサポートする目的で、Khronos OpenCLおよびSPIRワーキング・グループによる継続的な作業を活用しています。

SYCL 1.2.1はC ++ 11の機能をベースにしており、C ++ 14とC ++ 17を追加サポートしているため、ISO C ++ 17の並列STLプログラムをOpenCLデバイスで高速化できます。この取り組みをサポートするために、Khronosは、OpenCLデバイス上で動作するSYCL上でParallel STLをサポートする、オープンソースプロジェクトを支援しています。このプロジェクトは、https://github.com/KhronosGroup/SyclParallelSTLで行われています。SYCLは、単一ソースの最新のC ++の能力をOpenCLとSPIRの世界に提供しますが、KhronosのVulkan、OpenVX、NNEF、ISO C ++(SG1、SG6、SG12、SG14)などの他の標準とのコンバージェンスも準備します。

SYCL.techは、SYCLの方向性と開発に関するコミュニティのフィードバックをより多く提供し、開発におけるプロジェクトの共有を可能にし、標準の進捗状況を更新するためのWebフォーラムです。 SYCLエコシステムは、今年ComputeCPPTriSYCLを含む複数の実装により、2017年はまず増すその影響力を高めています。

SYCL 1.2.1に対する業界サポート

ザイリンクスのプリンシパルソフトウェアエンジニアで、SYCL仕様のエディタをはじめ、SO C ++委員のメンバー、オープンソースのSYCL実装であるtriSYCLのテクニカルリーダーを務めるRonan Keryell氏は、次のように述べています。「SYCLは、ヘテロジニアスなコンピューティングを採用する新しいシステムレベルの方法を、組み込み世界にもたらします。 MPSoCチップは、CPU、GPU、FPGA、特定のアクセラレータを同じチップ上に搭載した、大規模な複雑なシステムであり、ソフトウェアエンジニアを真の課題としています。 SYCLを使用すると、単一ソースのC ++ 17プログラミングが、ホストとアクセラレータの両方の世界を統一し、プログラミングをよりスムーズかつより一般的なものにすることができます。これにより、既存のテンプレート化されたC ++ライブラリとフレームワーク(Eigen、TensorFlow)の移植可能な展開が可能です」 

SYCLを実装したComputeCppの開発者で、CodeplayのCEOを務めるAndrew Richards氏は、次のように述べています。「SYCL仕様の公開以降、特に機械学習ではSYCLの使用が多く見られましたが、C ++ 17とParallel STLのリリースでISO C ++の開発がさらに進んでいます。 SYCLを、このようなすべての経験で更新できることは素晴らしいことです。これにより、C ++開発者は、GPU、FPGA、およびさまざまな新しい機械学習アクセラレータをより簡単に使用できるようになります。 SYCLと標準C ++をサポートしています」

Khronos Group(クロノス・グループ)について

The Khronos Groupは、さまざまなプラットフォームやデバイス上で並列コンピューティング、グラフィックス、ビジョン、センサー・プロセッシング、ダイナミック・メディアのオーサリング及び高速化を可能とする、オープンな業界標準の仕様策定を行うコンソーシアムです。クロノスが仕様策定する業界標準にはVulkan®, OpenGL®, OpenGL® ES, OpenGL® SC, WebGL™, SPIR-V™, OpenCL™, SYCL™, OpenVX™, NNEF™, COLLADA™, OpenXR™, glTF™などがあります。クロノスの会員は各仕様の策定作業に参画し、一般公開前のさまざまな過程で仕様策定に関する投票を行うことができるほか、仕様のドラフトへのアーリーアクセスならびにコンフォーマンス・テストを通して、

###

Vulkan is a registered trademark of The Khronos Group. Khronos, OpenXR, DevU, SPIR, SPIR-V, SYCL, WebGL, WebCL, COLLADA, OpenKODE, OpenVG, OpenVX, EGL, glTF, OpenKCAM, StreamInput, OpenWF, OpenSL ES, NNEF and OpenMAX are trademarks of the Khronos Group Inc. OpenCL is a trademark of Apple Inc. and OpenGL is a registered trademark and the OpenGL ES and OpenGL SC logos are trademarks of Silicon Graphics International used under license by Khronos. All other product names, trademarks, and/or company names are used solely for identification and belong to their respective owners.