クロノス・グループ OpenCL™ 2.2およびSPIR-V 1.2を同時発表

OpenCLの完全仕様およびコンフォーマンス・テストをオープン・ソースに置いたOpenCL™ 2.2最終版公開に向け、市場のフィードバックを反映

世界有数のハードウェアおよびソフトウェア企業からなるオープンコンソーシアムのKhronos™ Group(以下、クロノス)は、仕様レビュー期間中にデベロッパーからの意見を取り入れた、即時利用可能な「OpenCL™ 2.2」を発表しました。クロノスとしては初めて、完成版としての仕様公開のみならずOpenCL™ 2.2の仕様及びコンフォーマンス・テストの完全版ソース・コードを、コミュニティの関与を深めるためにGitHubにて公開しました。OpenCL™ 1.2/2.0/2.1のコンフォーマンス・テストもGitHub上で公開され、クロノスは今後も同様のオープン・ソース公開を進めます。 

OpenCL™ 2.2には、デベロッパーからの要望が最も高かった、並列プログラミングの生産性を大幅に高めるための、OpenCL C++言語による新規カーネルが組み込まれています。また、クロノスはOpenCL™ 2.2公開と同時に、OpenCL C++カーネル言語をクロノスが定義した中間言語に完全対応させる、SPIR-V 1.2も公開しました。OpenCL™ 2.2の完成により、SYCL 2.2に対する補完も強化され、OpenCL™ 2.2をシングルソースのC++プログラミング活用に用いることができます。

クロノスの代表で、OpenCLワーキング・グループのチェアを兼任するNeil Trevettは、次のように述べています。「OpenCL 2.2の完成により、クロノスはC++をOpenCL規格の第1級言語とする約束を果たしました。これにより、OpenCLのワーキング・グループは引き続きSYCLに取り組み、シングルソースのC++並列プログラミングの力をISO C++規格に収束させ、組込み系コンピュータ・ビジョン及び推論機能等、さらなるOpenCLの新規市場や市場機会の開拓に取り組むことができます。また、クロノスのVulkan APIへの収束や活用にも取り組んでおり、高度なグラフィックスと演算処理を単独のAPIに統合する動きも進んでいます。」

クロノスは、トロント大学Fields Institute(カナダ、トロント)の後援で開催されたIWOCL 2017 Conferenceにおいて、これらの新機能を発表しました。このカンファレンスでは、チュートリアル4編、19種のテクニカル・セッション、クロノスによるパネル・ディスカッション、ポスター展示、デモ展示、夕食会、交流イベント等が参加者に提供されました。IWOCLには、クロノスおよびクロノス会員の各企業が主要協賛社となっています。OpenCL™ 2.2およびSPIR-V 1.2の新規仕様は、www.khronos.orgにて公開しています。

OpenCL™ 2.2について

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

OpenCL™ライブラリー関数もC++言語の利点を活用することができるようになり、アトミック、イテレータ、画像、サンプラー、パイプ、デバイス・キューの組込み型とアドレス空間等の機能を使えるほか、安全性の向上と未定義動作の削減も同時に実現しています。

パイプ・ストレージはOpenCL™ 2.2で採用されたデバイスサイドの型で、コンパイル時に接続のサイズと型を既知とすることでカーネル間の効率的なデバイス・スコープ通信が可能となり、FPGAの実装に有用です。 

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

SPIR-V 1.2について

SPIR-V(Standard Portable Intermediate Representation)は、並列演算とグラフィックスのネイティブ表現用クロスAPI中間言語として、はじめてのオープン規格です。SPIR-V 1.2では、OpenCL C++カーネル言語の対応に加え、ワークグループ・サイズ等の、OpenCL™ 2.2の主要チューニング・パラメータの実行カスタマイズへの対応も加わりました。

SYCL 2.2について

SYCLの採用により、OpenCL™対応端末におけるC++言語ソフトウェアの高速化を容易に開発できます。SYCLは、アクセラレータの効率的使用のための複雑な深層学習グラフを可能にする、シングルソース型のプログラミング様式に合致していることから、人工知能のフレームワーク各種に使われています。SYCL 2.2では、SYCLの仕様にOpenCL™ 2.2の機能が加わっています。

クロノスが主催するオープン・ソース型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種類の仕様を整理しました。

OpenCL™ 2.2に対する業界サポート

Imagination Technologies社でシニア・ディレクターを務めるGraham Connor氏: 「Imagination Technologiesは、ヘテロジニアス処理およびGPU演算に関する標準規格化の推進に力を入れています。業界が継続的にGPU演算プログラミングモデルの改良に取り組むことが重要であり、クロノスはこうした取り組みに関し、引き続きOpenCL 2.2およびSPIR-V 1.2の普及に努めることで中心的な役割を担っています。当社の顧客からは、常にGPUの演算能力強化が要望されており、新たに発表したPowerVRシリーズ8XTコアは、当社GPUの使用実例拡大のためにOpenCL 2.2に対応しています。」

StreamHPC社創設者でマネージング・ディレクターを務めるVincent Hindriksen氏: 「OpenCL規格にOpenCL C++言語が組み込まれたことを、大変喜ばしく思います。これは優れた成果であり、OpenCLが演算処理に継続的に使えることを世に示しました。OpenCL 2.2のコンフォーマンス・テストの開発作業と、OpenCL C++仕様の完成に対する貢献を果たした当社は現在、OpenCL 2.2を使った最初のプロジェクトや新規のカーネル言語への取り組みを開始しています。社員たちは、OpenCL Cに代わってOpenCL C++を使うことで、ソフトウェア品質の向上やメンテナンス作業の軽減、市場投入期間の短縮が可能になると確信しています。また、SPIR-Vによってコンパイラのエコシステムに明らかな好影響がもたらされ、複数の新規OpenCLカーネル言語が誕生することを期待しています。」

ウィンザー大学コンピュータサイエンス学部のRobert Kent氏: 「ウィンザー大学は、自動車技術の研究面とヘテロジニアス・コンピューティング面におけるOpenCLの活用に積極的に関与してきました。また、プログラミング目的の達成に向けたソフトウェアのビルドやテストの枠組みの開発も手掛けています。今後もアカデミック会員としてクロノスに参画することを決めており、IWOCL 2017では組織を挙げて支援できたことを誇りに感じています。」

YetiWare社創設者のAJ Guillon氏: 「機械学習にとって極めて重要な技術の両輪であるOpenCL C++およびSPIR-Vが、AIの世界的注目都市であるここトロントにて発表されたことは、理想的なことです。カナダ人の新興テクノロジー系起業家として、素晴らしい業界リーダーたちとも連携し、クロノスにおいてこれらのテクノロジー開発に対して自身が担った役割のみならず、IWOCLイベントをカナダで開催できたことを誇りに感じています。OpenCLを知らないと、テクノロジーの急成長に乗り遅れるリスクを冒すことになります。」

クロノスに関して詳しくは、www.khronos.orgをご覧ください。

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

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

###

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.