クロノス・グループ、ニューラル・ネットワーク変換用NNEF 1.0を発表

世界有数のハードウェアおよびソフトウェア企業からなるオープン・コンソーシアムのKhronos™ Group(以下、クロノス)は、トレーニング・フレームワークと推論エンジン間の、トレーニング・ニューラルネットワークの普遍的な交換の暫定仕様である、ニューラル・ネットワーク変換フォーマット(NNEF™)1.0を発表しました。NNEFは、ニューラル・ネットワーク・トレーニング・ツールと推論エンジンの豊富な組み合わせを、さまざまなデバイスやプラットフォームのアプリケーションで使用可能とし、マシン学習の展開におけるフラグメンテーションを軽減します。今回、NNEF 1.0を暫定仕様として発表することで、仕様が確定する前に業界からのフィードバックを組み込むことができるほか、クロノスはNNEF GitHubリポジトリでのコメントとフィードバックを歓迎します。

NNEFは、データ科学者とエンジニアがトレーニング・ネットワークを、選択したトレーニング・フレームワークから、さまざまな推論エンジンに簡単に転送可能とすることを目指しています。機器メーカーが信頼し、安定かつ柔軟で拡張可能な標準仕様は、最新機器にニューラル・ネットワークを広範囲に応用させるために重要であり、NNEFには個別のトレーニング・ニューラルネットワークの構造、動作及びパラメータの詳細をカプセル化し、それを生成するために使用されるツールと、それを実行するために使用される推論エンジンが含まれます。

クロノスで、NNEFワークグループのチェアを務めるPeter McGuinness氏は、次のように述べています。「機械学習の分野は、現場で活躍している多くのグループの活力の恩恵を受けていますが、一般的な基準が不足しています。クロノスはこの業界のニーズを受け止め、ニューラル・ネットワークの交換に関するNNEFの普遍的な標準について1年以上活動してきました。これはニューラル・ネットワークにとって、PDFが果たしたのと同等の役割を果たすものでしょう」

NNEFは、Torch、Caffe、TensorFlow、Theano、Chainer、Caffe2、PyTorch、MXNetなどのツールやエンジン間で、確実にエクスポートおよびインポートできるよう設計されています。NNEF 1.0暫定仕様は、豊富な機能セットを備えた、幅広いユースケースとネットワークタイプ、Pythonから構文要素を借用し、正確さを高める要素を追加するスケーラブルな設計に対応しています。NNEFには、高度なネットワーク最適化の機会を提供する、カスタム複合オペレーションの定義が含まれています。将来の作業は、このアーキテクチャを基にして予測可能な方法で構築されるため、NNEFは急速に変化する機械学習の分野を追跡し展開する、安定したプラットフォームを提供することになります。

Khronosは、NNEF構文パーサー/バリデーター、TensorFlowなどのフレームワークからのサンプル・エクスポーターを含む、一連のオープンソース・プロジェクトを開始し、NNEFを独自のワークフローに役立てるための機械学習コミュニティの参加を歓迎します。さらに、NNEFはクロノスのOpenVX™ワーキング・グループと緊密に連携し、NNEFファイルの処理を可能にしています。OpenVX Neural Networkの拡張により、OpenVX 1.2はクロスビジョンの推論エンジンとして機能し、コンピュータビジョンと深い学習の操作を1つのグラフにまとめることができます。

業界からの支援メッセージ

AImotiveで、ハードウェア・エンジニアリング部門責任者を務めるMarton Feher氏

「AImotiveは、新しい標準の旗振り役としてだけでなく、AI ResearchのViktor Gyenesを仕様エディタとする、NNEFの開発と初期展開における重要なプレーヤーであることを誇りに思っています。私たちは、自律運転のためのハードウェアとソフトウェアの両方の技術を早期に採用してきたため、ニューラル・ネットワークの中立交換フォーマットの重要性を十分に認識しています。開発フレームワークの数が増え、実行プラットフォームの範囲が拡大し、多様化するにつれて、ネットワークトポロジーとウェイトをある環境から別の環境に自由に移動する能力は、革新とサプライヤー選択の自由にとって不可欠です」

AMDで、Radeon Technologies Group システム・エンジニアリング部門でCTOを務めるGreg Stoner氏

「ディープ・ラーニングを、研究室からリッチな顧客主導のアプリケーションに移行するにあたり、ディープ・ラーニングの入れ替えソリューションを推進する立場として、クロノス・グループがNNEF仕様を発表し、OpenVX上に構築されたトレーニング・フレームワークと推論エンジン間のニューラル・ネットワークを、容易に動かすことができることを嬉しく思っています」

ArmでMachine Learningソフトウェア担当技術ディレクターを務めるRobert Elliott氏

「ニューラル・ネットワーク・モデル交換のためのフォーマットの標準化は、さまざまなフレームワーク、ツール、推論エンジン間のネットワークと演算子の移植性と最適化を改善するための、重要なステップです。Armは、NNEFの開発をサポートし、フレームワークとツール開発者がARM®エコシステムで利用可能な幅広いプロセッサとアクセラレータで実行および検証されるモデルを作成できるようにします」

Qualcomm Technologiesで技術担当バイス・プレジデントを務めるJeff Gehlhaar氏

「ニューラル・ネットワーク処理が、クラウドからモバイル機器や最新機器に移行するにつれて、これらのモデルの統一された表現の必要性が増すと共に、Qualcomm Technologiesといった企業各社がこれらをデバイス上で実行するための最適なプラットフォームの提供に注力するようになります。クロノスの会員として、Qualcomm Technologiesは、統合がこの分野での成長に寄与し、クラウドからデバイスのマイグレーションが主流となる、クロノスのニューラル・ネットワーク変換といったニューラル・ネットワーク・モデルを支援します」

VeriSiliconで、最高戦略責任者、シニア・バイス・プレジデント兼知的財産部門Gmを務めるWeijin Dai氏

「NNEFとOpenVXの統合により、OpenVX対応のGPUであるVision and Neural Netの処理IP上で、幅広いトレーニング・フレームワークからニューラル・ネットワークを導入するための迅速なパスが実現します。すべてのパフォーマンス層で専用のVeriSilicon IP用に最適化された共通の交換フォーマットと、ランタイムの推論を使用することで、顧客は選択したトレーニング・フレームワークに関係なく、瞬時に最適なパフォーマンスを達成できます」

NNEF 1.0のドキュメンテーション・プロジェクトと仕様は、Khronosレジストリで入手いただけます。NNEFのオープンソースツールとプロジェクトは、Khronos NNEF Toolsリポジトリにあります。視覚の加速と推論のためのOpenVXランタイムAPIの詳細は、こちらをご参照ください。

また、NNEFがフラット・オペレーションと複合オペレーションを処理するための柔軟性を提供する方法の詳細については、こちらをご参照ください。

https://www.khronos.org/blog/nnef-design-philosophy-network-structure-and-target-use-cases

クロノス・グループの詳細は、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.

クロノス・グループ、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.