インテル® インテグレーテッド・グラフィックス上のマシンラーニングを高速化する Windows® 10 May 2019 Update

同カテゴリーの次の記事

インテル® プロセッサー・グラフィックス Gen11 API 向け開発者および最適化ガイド

この記事は、インテル® デベロッパー・ゾーンに公開されている「Windows® 10 May 2019 Update for Machine Learning Acceleration on Intel® Integrated Graphics」の日本語参考訳です。


この記事の PDF 版はこちらからご利用になれます。

はじめに

2019 年 3 月に開催されたMicrosoft* Game Developers Conference (GDC) での発表 (英語) は、幅広いアプリケーション、特にゲームエンジンの Windows* Machine Learning (Windows* ML) API と Direct Machine Learning (DirectML) の採用を強調するものでした。Windows* ML API は、オペレーター/レイヤーの実行ごとに DirectML とインターフェイスすることで、グラフィックス・プロセシング・ユニット (GPU) を高速化するハードウェアの抽象化を処理します。DirectML は、マシンラーニング操作を実行するハイパフォーマンスな低レベル (低水準) API です。DirectML API は DirectX* ファミリーの一部です。GDC の発表では、インテルなどの独立系ハードウェア・ベンダー (IHV) と Microsoft* が協力して、MetaCommand と呼ばれるアーキテクチャー固有の最適化を提供することで、DirectML オペレーターのパフォーマンスの向上に取り組んでいることも紹介されました。

インテルが 2018 年 5 月に公開した記事では、DirectX* 12 DirectCompute インターフェイスを介したインテル® ハードウェア上での Windows* ML API と DirectML API の実装を紹介しています。2018 年 10 月にインテルは、Windows® 10 October 2018 Update に同梱されたインテル® グラフィックス・ドライバーで Direct3D* 12 MetaCommand をサポートする最初のバージョンを発表 (英語) しました。この発表では、DirectML 畳み込みオペレーターのデフォルトである HLSL (High-Level Shading Language) のシェーダーパスの代わりに Direct3D* 12 MetaCommand として実行することで、大幅なパフォーマンスの向上がもたらされることも示されました。

Windows® 10 May 2019 Update のリリースに伴い、インテルはインテル® グラフィックス – Windows® 10 ドライバーで最新の MetaCommand 機能のアップデートと Windows* ML パフォーマンスの向上を提供します。

Windows* ML パフォーマンスの向上

Windows® 10 May 2019 Update では、Windows* ML ランタイムのグラフレベルの最適化と、インテル® グラフィックス・ドライバーの Direct3D* 12 MetaCommand パフォーマンスの強化により、インテル® インテグレーテッド・グラフィックス上の Windows* ML API パフォーマンスが向上しています。この組み合わせにより、インテル® GPU の計算ハードウェア・エンジンの処理能力を最大限に利用して、Windows® 10 October 2018 Update (英語) と比較してパフォーマンスを大幅に向上することができます。

Windows* ML ランタイムのグラフレベルの最適化

Windows* ML ランタイムは、ONNX (Open Neural Network Exchange) モデル推論エンジンを使用してトレーニングされたモデルを評価します。この評価は、グラフのコンパイル・プロセスで構成されます。これにより、トポロジー全体のパフォーマンスに大きく影響する GPU サブミッション数やメモリー使用量などの変数が特定されます。データ駆動型分析により、インテルと Microsoft* は Windows* ML API ランタイム・グラフ・プロセッサーの特定のノードの融合に共同で取り組み、推論の評価に必要な層の数を軽減しました。その結果、GPU 実行時間とサブミッション数が劇的に減り、大幅なパフォーマンスの向上が実現しました。

MetaCommand による Windows® 10 May 2019 Update の Windows* ML API パフォーマンスの向上

Windows® 10 May 2019 Update では、 Windows* ML ランタイムのグラフレベルの最適化と MetaCommand としてサポートされる追加のオペレーターにより、Windows 10 October 2018 Update と比較して FP32 では約 3 倍(*)、FP16 では約 2 倍(*) のスピードアップを達成できます。

MetaCommand による Windows® 10 May 2019 Update の DirectML の高速化

DirectML オペレーターは、アーキテクチャー固有の最適化を使用する MetaCommand によってハードウェア・アクセラレーションを利用できます。畳み込み (FP16 と FP32) と汎用行列乗算 (GEMM) (FP32) に加えて、インテル® グラフィックス – Windows® 10 ドライバーは新たに次のオペレーターを MetaCommand としてサポートしました。

  • プーリング MetaCommand オペレーター
  • FP16 GEMM MetaCommand オペレーター

これらの新しい MetaCommand は、Resnet-50 や Inception-v1 などのいくつかの一般的な画像分類トポロジーのパフォーマンスを向上します(*)。以下のグラフは、推論ワークロードの実行に MetaCommand を使用した場合と、しない場合の各トポロジーの相対推論パフォーマンス・ゲインを示しています。

Adobe* Lightroom* の MetaCommand のケーススタディー

上記の例は、いくつかの典型的な畳み込みニューラル・ネットワーク (CNN) トポロジーに関するものですが、MetaCommand による Windows* ML の GPU アクセラレーションはさまざまなアプリケーションに利点をもたらします。Adobe* Lightroom* Classic CC 8.2 の「ディテールの強化」 (英語) 機能は、Windows* ML API を使用して RAW 画像をデモザイク処理することで画質を向上します。MetaCommand を使用することで、Lightroom* はインテル® インテグレーテッド・グラフィックス上において FP16 精度で約 9 倍のスピードアップ(*) を実現しました。

Adobe* Lightroom* のパフォーマンス

まとめ

インテル® グラフィックス – Windows® 10 ドライバーでは、DirectML オペレーターを高速化する Direct3D* 12 MetaCommand 機能が強化されています。最新のインテル® グラフィックス – Windows® 10 ドライバーを入手して、Windows* ML と DirectML アプリケーション向けの最新の MetaCommand の利点を確認してください。

PC での Windows* ML の実行に関しては、「AI on the PC: Create New Usages and Deploy them to Your PC」 (英語) を参照してください。

システム構成

パフォーマンスまたはベンチマーク・データの取得に使用されたテスト環境とシステム構成は次のとおりです。

  • プラットフォーム: インテル® Iris® Plus グラフィックス 650 搭載インテル® Core™ i7-7567U プロセッサー
  • グラフィックス・ドライバー: インテル® グラフィックス・ドライバー 26.20.100.6813
  • オペレーティング・システム: Windows® 10 May 2019 Update バージョン 18362
  • オペレーティング・システムの電源プラン: 高パフォーマンス
  • ベンチマーク・アプリケーション: Windows* ML サンプル・アプリケーションで Microsoft* の WinMLRunner (英語) ツールを使用してテストを実行。推論/秒は、アプリケーションの報告された 1000 反復の「Evaluate」時間を基に計算。
  • 事前トレーニング済みモデルは、ONNX ドキュメント (英語) から取得
  • テストの実行者: Intel, 1900 Prairie City Rd, Folsom, CA 95630
  • テストの実施日: 2019 年 5 月 3 日

法務上の注意書き

本資料は、明示されているか否かにかかわらず、また禁反言によるとよらずにかかわらず、いかなる知的財産権のライセンスも許諾するものではありません。

インテルは、明示されているか否かにかかわらず、いかなる保証もいたしません。ここにいう保証には、商品適格性、特定目的への適合性、および非侵害性の黙示の保証、ならびに履行の過程、取引の過程、または取引での使用から生じるあらゆる保証を含みますが、これらに限定されるわけではありません。

本資料には、開発中の製品、サービスおよびプロセスについての情報が含まれています。本資料に含まれる情報は予告なく変更されることがあります。最新の予測、スケジュール、仕様、ロードマップについては、インテルの担当者までお問い合わせください。

本資料で説明されている製品およびサービスには、エラッタと呼ばれる設計上の不具合が含まれている可能性があり、公表されている仕様とは異なる動作をする場合があります。現在確認済みのエラッタについては、インテルまでお問い合わせください。

(*) パフォーマンス結果は 2019 年 5 月 3 日時点のテスト結果に基づいたものであり、公開されている利用可能なすべてのセキュリティー・アップデートが適用されていない可能性があります。詳細は、システム構成を参照してください。絶対的なセキュリティーを提供できる製品はありません。性能に関するテストに使用されるソフトウェアとワークロードは、性能がインテル® マイクロプロセッサー用に最適化されていることがあります。SYSmark* や MobileMark* などの性能テストは、特定のコンピューター・システム、コンポーネント、ソフトウェア、操作、機能に基づいて行ったものです。結果はこれらの要因によって異なります。製品の購入を検討される場合は、他の製品と組み合わせた場合の本製品の性能など、ほかの情報や性能テストも参考にして、パフォーマンスを総合的に評価することをお勧めします。

コンパイラーの最適化に関する詳細は、最適化に関する注意事項を参照してください。

関連記事