クロノス・グループ、並列プログラム向けにOpenCL C++カーネル言語を用いた OpenCL 2.2暫定仕様を発表

OpenCL C++の補完・対応となるSYCL 2.2およびSPIR-V 1.1の暫定仕様を同時発表

業界を代表するハードウェア/ソフトウェア企業から構成される、オープン・コンソーシアムのクロノス・グループ(以下: クロノス)は、OpenCL™ 2.2, SYCL™ 2.2およびSPIR-V™ 1.1の暫定仕様を直ちに利用できるように公開したと発表しました。並列プログラミングの生産性の飛躍的な向上のため、OpenCL 2.2にはOpenCL C++言語によるカーネルが組み込まれています。SYCL 2.2は、OpenCL C++の有用性の最大限の活用と、ホストおよびデバイスのプログラムコードの単一ソースファイル収容を両立させています。また、SPIR-V 1.1はクロノスの定義による中間表現を拡張し、OpenCL C++カーネル言語の完全対応のためにシェーダ機能および演算処理カーネル機能をネイティブでサポートします。これらの最新仕様は、Khronos Forum(https://forums.khronos.org/)経由をはじめ、仕様の正式確定前にデベロッパ会員およびインプリメンター会員がフィードバックを投稿できるよう、http://www.khronos.orgにて暫定形式でリリースしています。

クロノスの代表で、OpenCLワーキング・グループのチェアを務めるニール・トレべットは、次のようにコメントしています。「並列プログラミングの生産性を高めるため、クロノスは本日OpenCL C++カーネル言語をクロノス定義の中間言語に対応させるSPIR-V 1.1とOpenCL 2.2の同時発表に加えて、OpenCL 2.2を活用しシングルソースC++プログラミングを実現するSYCL 2.2を発表しました。OpenCL 2.2は、デベロッパからの要望が最も高かったOpenCL C++カーネル言語をコアに取り入れています。」

OpenCL 2.2について
OpenCL 2.2では、OpenCL C++カーネル言語をC++14標準規格の静的サブセットとして定義しています。OpenCL C++には、クラス、テンプレート、ラムダ式表現、関数多重定義等、数々のコンストラクタが含まれており、ジェネリックプログラミングおよびメタプログラミングを使った並列プログラミングの生産性を高めています。

OpenCLライブラリー関数もC++言語の利点を活用することができるようになり、アトミック、イテレータ、画像、サンプラー、パイプ、デバイスキューの組込み型とアドレス空間等の機能が使えるほか、安全性の向上と未定義動作の削減も同時に実現しています。パイプストレージは、OpenCL 2.2で採用されたデバイスサイドの型で、コンパイル時に接続のサイズと型を既知とすることでカーネル間の効率的なデバイススコープ通信が可能となり、FPGAの実装に有用となります。

また、OpenCL 2.2には生成コードの最適化を向上させる機能も含まれています。特化定数の値をSPIR-Vコンパイル時にアプリケーション側から指定、 新規のクエリーによってプログラムスコープグローバルオブジェクトの非自明なコンストラクタおよびデストラクタを検知、ユーザーコールバックのプログラムリリース時での設定等が可能です。

SYCL 2.2について
SYCL 2.2は、OpenCL 2.2の機能の活用と、ホストおよびデバイスのプログラムコードの単一ソースファイル収容を両立させました。SYCLは、最小のOpenCL 1.2対応組込みデバイスから、最先端のOpenCL 2.2アクセラレータに至る、あらゆる演算デバイスの可能性を広げるC++テンプレートライブラリを、デベロッパが独自あるいは非標準のコードに頼らずに組めるよう、OpenCLのハードウェア機能をC++標準規格の方向性にマッチさせたものです。クロノスが主催するオープンソース型SYCL向けC++ 17並列STL(C++ 17 Parallel STL for SYCL)により、次のC++標準規格を共有仮想メモリ、ジェネリックポインタ、デバイスサイドキュー等のOpenCL 2.2機能に対応させることができます。

OpenCL C++およびSYCLが利用可能となることで、デベロッパは2種類のC++から選択を行えることになります。デバイスサイド・カーネルのソースコードとホストコードを分離したい場合には、C++カーネル言語が最適な選択となります。これが現在OpenCL Cで用いられている手法であり、グラフィックスソフトウェアのシェーダに幅広く採用されている手法です。SYCL、OpenMP、 C++ 17 Parallel STLで採用されているもうひとつの手法が、一般的に「シングルソース」C++と呼ばれている手法です。これは、SYCLとC++カーネル言語双方の仕様を定めることで、クロノスはデベロッパに対して最大限の選択肢を提供すると同時に、プログラムコードがこれらふたつの補完的手法で簡単に共有できるよう、2種類の仕様を整理しました。

Codeplay社のCEOであり、クロノスでSYCLワーキング・グループのチェアを務めるアンドリュー・リチャーズ氏は、次のようにコメントしています。「Codeplayは、高度なヘテロジニアス・プロセッサ・ソリューションを実現するこれらの新しいオープン規格を、引き続き支持・推進していきます。モバイル、クラウド、IoT、先進運転支援システム(ADAS)等に組込まれるコンピュータビジョン高速化処理アプリケーションには、並列ソフトウェア開発プロセス全般を簡素化するクロノスの改良オープン規格が有用です。」

SPIR-V 1.1について
SPIR-V(Standard Portable Intermediate Representation)は、並列演算とグラフィックスのネイティブ表現用クロスAPI中間言語としては、はじめてのオープン規格です。SPIR-V 1.1では、コンストラクタおよびデストラクタ対応の初期化子および終了化子関数実行モード等、OpenCL 2.2で使われるOpenCL C++カーネル言語の全機能をサポートしています。また、名前付きのバリア、サブグループ実行、プログラムスコープパイプへの対応により、カーネルプログラムの表現力も向上しています。

SPIR-V 1.0においてVulkan™グラフィックス・シェーダ用に使用可能であった特化定数は、SPIR-V 1.1によってOpenCLでも使えるようになりました。この機能により、ランタイム時に特化可能なコンパイル時間設定が組込みまれ、一連のパラメータ化OpenCLカーネルプログラムを単一SPIR-Vモジュールで表現できます。その結果、デバイスプログラムの複数変数の出力や、コンパイル設定の異なるオンザフライソースからそれらの変数を再コンパイルする必要が省け、出力プログラムのサイズやアプリケーション起動時間を大幅に縮減できます。

YetiWare社の創設者でもあり、CTOでもあるAJ ・ギヨン氏は次のようにコメントしています。「OpenCL C++は、業界全体にとっても文字通りプラス・プラスな存在です。デベロッパからの有意義なフィードバックをもとに、OpenCLワーキング・グループは OpenCL C++におけるC++ のイディオムとスタイルの維持にコミットしています。このことは、性能の最大化と高品位なコーディングの両立を望むデベロッパにとって非常に重要なことであり、当社YetiWareのOpenCLトレーニングプログラムにも即刻取り入れようと考えています。」

Khronos Groupについて
The Khronos Groupは、さまざまなプラットフォームやデバイス上で並列コンピューティング、グラフィックス、ビジョン、センサー・プロセッシング、ダイナミック・メディアのオーサリング及び高速化を可能とする、オープンな業界標準の仕様策定を行うコンソーシアムです。クロノスが仕様策定する業界標準にはVulkan™, OpenGL®, OpenGL® ES, WebGL™, OpenCL™, SPIR™, SPIR-V™, SYCL™, WebCL™, OpenVX™, EGL™, COLLADA™, glTF™があります。クロノスの会員は各仕様の策定作業に参画し、一般公開前のさまざまな過程で仕様策定に関する投票を行うことができるほか、仕様のドラフトへのアーリーアクセスならびにコンフォーマンス・テストを通して、自身のプラットフォームやアプリケーション開発の期間短縮や機能強化に役立てることができます。詳細情報はWebサイトで公開されています(www.khronos.org)。

###

Khronos, Vulkan, DevU, SPIR, SPIR-V, SYCL, WebGL, WebCL, COLLADA, OpenKODE, OpenVG, OpenVX, EGL, glTF, OpenKCAM, StreamInput, OpenWF, OpenSL ES and OpenMAX are trademarks of the Khronos Group Inc. ASTC is a trademark of ARM Holdings PLC, 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.

クロノス・グループ、OpenGL SC 2.0を発表

シェーダープログラム制御可能なセーフティ・クリティカル・グラフィックス向けAPIで、GLSLシェーダによる描画性能の向上と消費電力の削減により、高能率APIで航空・車載システムの認証コストを削減

業界を代表するハードウェア/ソフトウェア企業から構成されるオープン・コンソーシアムのクロノス・グループ(以下: クロノス)は、安全認証を必要とするシステムにプログラマブル・グラフィックスを活用可能とする「OpenGL® SC 2.0」を発表しました。OpenGL SC 2.0 は、アビオニクスシステムのFAA DO-178CおよびEASA ED-12C Level A、ならびに車載システムのISO 26262安全規格等、高信頼性表示系システム市場における、独自かつ厳しい要件に対応するために、クロノスのSafety Criticalワーキング・グループが仕様策定したものです。この発表は高信頼性システムの各メーカにとって、世界各国に広がる多くのOpenGL SC 1.0搭載製品導入実績とアビオニクス認証取得実績に加え、OpenGL SC 2.0の追加によって最高水準の安全認証の取得と先進的なプログラマブル・シェーダ・エンジンの活用を両立を可能とします。OpenGL SC 2.0およびクロノスのセーフティ・クリティカル関連仕様セットおよび関連活動の詳細は、http://www.khronos.org/safetycriticalでご参照ください。

OpenGL SC 2.0について
OpenGL SC 1.0において、OpenGL ES™ 1.0固定関数グラフィックス・パイプラインのセーフティク・リティカル・サブセットが定義されました。OpenGL SC 1.0は2005年に商業ベースでの搭載が始まり、2009年にマイナーアップデートとしてOpenGL SC 1.0.1が発表されています。OpenGL SC 2.0は、GLSLベースのプログラマブル・シェーダを含むOpenGL ES 2.0のサブセットであり、高度なグラフィックス機能の性能をさらに高め、消費電力も削減します。OpenGL SC 2.0ではOpenGL ES 2.0のデバッグ機能がすべて取り払われた一方、スケジューリングとメモリアクセスの完全性を目指し、OpenGLの堅牢性拡張をコア仕様部分に取り込みました。OpenGL SC 2.0は、アルゴリズムの決定性と試験評価性を両立させる一方、既存のOpenGL ES 2.0対応チップとの互換性を保持する設計となっており、量産型のデスクトップPC、携帯端末、組込みシステム向け半導体ソリューションへの即時搭載が可能です。

テクノロジー分野のエキスパートであり、クロノスSafety Criticalワーキング・グループのチェアを務めるエリック・ノレキは次のようにコメントしています。「OpenGL SC 2.0は、産業界で高まるセーフティ・クリティカル・テクノロジーへの要求に対応すべくクロノスが仕様策定した、セーフティ・クリティカル規格の新時代を築くものです。自動運転車や運転支援などのスマートテクノロジが日常生活にますます浸透する環境にあって、高性能グラフィックス、演算処理やコンピュータビジョンなどに向けたセーフティ・クリティカル標準規格の確立に対するクロノスの取り組みに、その一員として参画できたことを誇りに感じています。」

現在、ミュンヘンにて開催中(4月20、21日)のAviation Electronics EuropeにてOpenGL SC 2.0搭載製品の展示をご覧ください。OpenGL SC 2.0を実装した製品がすでに稼働しており、以下のデモが公開展示されています。
CoreAVI社:  Wind River VxWorks RTOSとPresagisのVAPS XT HMIグラフィックス開発ツールを使い、Curtiss Wrightの高耐久型VPX3-133 SBC(NXP QorIQ T2080)およびVPX3-716 COTSグラフィックス・モジュール上で実行されるOpenGL SC 2.0グラフィックス・ドライバーをデモ展示

Presagis社: Wind River VxWorks RTOSとPresagisのVAPS XT HMIグラフィックス開発ツールを使い、NXP QorIQ P3041クアッドコア・プロセッサおよびAMDのRadeon E8860 GPU上で実行されるOpenGL SC 2.0グラフィックス・ドライバーをデモ展示

セーフティ・クリティカル規格の今後
先進運転支援システム(ADAS)や自動運転車、新世代アビオニクスシステム等、新たに創出されるセーフティ・クリティカルの市場機会の多くにおいて、視覚演算の高速化が必須要素となります。クロノスでは、高効率グラフィックス・演算用のVulkan™等も含め、セーフティ・クリティカル関連仕様セットの仕様作成作業の権限がSafety Criticalワーキング・グループに付与されています。また、クロノスのOpenVX™ワーキング・グループも、低消費電力コンピュータビジョン処理用OpenVX™のセーフティ・クリティカル版の仕様策定作業を行っています。Safety Criticalワーキング・グループは、OpenGL SCの搭載実績をさらに高めるのみならず、セーフティ・クリティカル・システムに向けたオープン技術開発を支援するため、クロノスAPIガイドラインの策定にも目を向けています。関心をお持ちの企業はぜひクロノスに参画いただき、この開発プロセスに意見や投票という形でご参加ください。

OpenGL SC 2.0に対する産業界からのサポート
CoreAVI社のソフトウェア担当副社長、スティーブ・ヴィガー氏は次のようにコメントしています。「OpenGL SC 2.0を採用することで、航空系、車載系、セーフティ・クリティカル・システム系の各メーカは、プログラマブル・グラフィックス・パイプラインを活用した先進的GPUの電力当り性能を開花させることができます。CoreAVIは、FAA DO-178C Level AおよびISO 26262 ASIL Dを含め、最も厳しい安全認証を取得可能な業界初のOpenGL SC 2.0ドライバーを実現し、本日よりお使いいただけるようにしました。」

また、Mobica社でCTOを務めるジム・キャロル氏は、次のようにコメントしていています。「従来型のセーフティ・クリティカルなソフトウェアのドメインが、最先端のグラフィックス・テクノロジがもたらす有用性によって開花します。Mobicaは車載用UI等の最先端製品をラインアップすべく、自動車系および半導体系パートナー各社と連携しながらOpenGL SC 2.0を用いたソリューション各種に取り組んでいます。OpenGL SC 2.0に導入された改良点により、これらの技術を利用できる企業、市場セクター、そして最終的にエンドユーザの幅が大きく広がることになります。」

Presagis社でゼネラル・マネージャを務めるジャンミシェル・ブリエル氏は次のようにコメントしています。「組込みグラフィックス業界の大きな変革となるこの発表を受けて、その最前線に当社が位置していることを喜ばしく感じています。GPUをベースとしたシェーダのもつパワーを使うことで、HMIの設計面と性能面の可能性が限りなく広がります。」

Khronos Groupについて
The Khronos Groupは、さまざまなプラットフォームやデバイス上で並列コンピューティング、グラフィックス、ビジョン、センサー・プロセッシング、ダイナミック・メディアのオーサリング及び高速化を可能とする、オープンな業界標準の仕様策定を行うコンソーシアムです。クロノスが仕様策定する業界標準にはVulkan™, OpenGL®, OpenGL® ES, WebGL™, OpenCL™, SPIR™, SPIR-V™, SYCL™, WebCL™, OpenVX™, EGL™, COLLADA™, glTF™があります。クロノスの会員は各仕様の策定作業に参画し、一般公開前のさまざまな過程で仕様策定に関する投票を行うことができるほか、仕様のドラフトへのアーリーアクセスならびにコンフォーマンス・テストを通して、自身のプラットフォームやアプリケーション開発の期間短縮や機能強化に役立てることができます。詳細情報はWebサイトで公開されています(www.khronos.org)。

###

Khronos, Vulkan, DevU, SPIR, SPIR-V, SYCL, WebGL, WebCL, COLLADA, OpenKODE, OpenVG, OpenVX, EGL, glTF, OpenKCAM, StreamInput, OpenWF, OpenSL ES and OpenMAX are trademarks of the Khronos Group Inc. ASTC is a trademark of ARM Holdings PLC, 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.