インテル® グラフィックス・テクノロジーへ計算をオフロードするための入門ガイド

同カテゴリーの次の記事

Python* プロファイル

この記事は、インテル® デベロッパー・ゾーンに公開されている「Getting Started with compute offload to Intel(R) Graphics Technology」の日本語参考訳です。


概要

インテル® C++ コンパイラー 15.0 から、汎用計算カーネルをプロセッサー・グラフィックスへオフロードする機能が提供されています。この機能は、プロセッサー・グラフィックスのシリコンを汎用計算に使用することを可能にします。第 1 の目的は、利用可能な計算パワーを有効活用するため、CPU コアと GPU 実行ユニットの両方の計算機能を利用することです。

ターゲット・ハードウェアと OS 要件:

Windows® 32 ビットと 64 ビットをサポート。Microsoft® Windows® 7 上での計算オフロード機能は、アクティブなディスプレイ (ロックされていないスクリーン) でのみ動作します。この制限は DirectX® 9 によるものですが、DirectX® 11 以降では緩和されています (Microsoft® Windows® 8、Microsoft® Windows® 8.1、および Microsoft® Windows® 10)。インテル® C++ コンパイラー 17.0 for Windows® は、第 6 世代インテル® Core™ プロセッサーに搭載される統合グラフィックスへの計算オフロードをサポートします。

Linux* ドライバーのバージョンによる OS サポート
ドライバーのバージョン ハードウェア・プラットフォーム OS プラットフォーム (64 ビット)
16.3.2 (インテル® C++ コンパイラー 16.0 では非推奨で、インテル® C++ コンパイラー 17.0 では廃止されています)
  1. インテル® Xeon® プロセッサー E3-1285 v3 および E3-1285L v3 (インテル® C226 チップセット) (インテル® HD グラフィックス P4700)
  2. 第 4 世代インテル® Core™ プロセッサー (インテル® Iris™ Pro グラフィックス、インテル® Iris™ グラフィックス、またはインテル® HD グラフィックス 4200+ シリーズ)
  3. 第 3 世代インテル® Core™ プロセッサー (インテル® HD グラフィックス 4000/2500)
  1. Ubuntu* 12.04 (Linux* カーネルバージョン: 第 3 世代インテル® Core™ プロセッサー 向けの 3.2.0-41 と第 4 世代インテル® Core™ プロセッサー向けの 3.8.0-23)
  2. SUSE* Linux* Enterprise Server 11 SP3 (Linux* カーネルバージョン: 第 3 世代および第 4 世代インテル® Core™ プロセッサー向けの 3.0.76-11)
16.4.4
  • 第 5 世代インテル® Core™ プロセッサー (インテル® Iris™ グラフィックス、またはインテル® HD グラフィックス 5500/6000/6100)。
  • 第 4 世代インテル® Core™ プロセッサー (インテル® Iris™ Pro グラフィックス、インテル® Iris™ グラフィックス、またはインテル® HD グラフィックス 4200+ シリーズ) 。チップセットの互換性はインテル® Core™ プロセッサーでは通常問題となりません。
  • インテル® Xeon® プロセッサー E3 v3 ファミリー (インテル® HD グラフィックス P4700)
  • インテル® Xeon® プロセッサー E3 v4 ファミリー (インテル® Iris™ Pro グラフィックス P6300)

チップセットの制限:

  • チップセットはプロセッサー・グラフィックスが有効にされている必要があります。データシートを確認してください。
  • インテル® Xeon® プロセッサーは、インテル® C226 チップセットを必要とします。

注意:

  • 第 4 世代インテル® Core™ プロセッサー以前の製品はサポートされていません。
  • インテル® Celeron® プロセッサー、インテル® Pentium® プロセッサーおよびインテル® Atom™ プロセッサーはサポートされていません。
  1. Community Enterprise Operating System (CentOS*) 7.1 (64 ビット・アーキテクチャー)
  2. Red Hat* Enterprise Linux* (RHEL) 7.1 (64 ビット・アーキテクチャー)
オープンソース・メディア・カーネル・ランタイム
  • インテル® Xeon® プロセッサー E3-1285 v3 および E3-1285L v3 (インテル® C226 チップセット) (インテル® HD グラフィックス P4700)
  • 第 6 世代インテル® Core™ プロセッサー (インテル® Iris™ グラフィックス、またはインテル® HD グラフィックス)
  • 第 5 世代インテル® Core™ プロセッサー (インテル® Iris™ グラフィックス、またはインテル® HD グラフィックス 5500/6000/6100)
  • 第 4 世代インテル® Core™ プロセッサー (インテル® Iris™ Pro グラフィックス、インテル® Iris™ グラフィックス、またはインテル® HD グラフィックス 4200+ シリーズ)
  • 第 3 世代インテル® Core™ プロセッサー (インテル® HD グラフィックス 4000/2500)
  • Community Enterprise Operating System (CentOS*) 7.0 (64 ビット・アーキテクチャー)
  • Community Enterprise Operating System (CentOS*) 7.1 (64 ビット・アーキテクチャー)
  • Red Hat* Enterprise Linux* (RHEL) 7.0 (64 ビット・アーキテクチャー)
  • Red Hat* Enterprise Linux* (RHEL) 7.1 (64 ビット・アーキテクチャー)

その他の Linux* ディストリビューションでは、オープンソース・イントール・ガイド (英語) に記載される手順に従ってください。主な要件は、カーネルバージョン 3.19.2、libdrm 2.4.56、libva 0.38.0 および libpciaccess 0.13.1 です。

ホスト OS の要件:

Windows® 32 ビットと 64 ビット、Linux 64 ビット。

ターゲットシステムの環境要件:

Windows®:

  1. インテル® C++ コンパイラー 15.0 以降のバージョン – インテル® Parallel Studio XE 2015 以降やインテル® System Studio 2015 以降の製品登録後、インテル® ソフトウェア開発製品レジストレーション・センター からコンパイラーをダウンロードすることができます。
  2. インテル® HD グラフィックス・ドライバー – http://downloadcenter.intel.com (英語) から適切なドライバーをダウンロードしてください。
  3. Binutils パッケージ – http://software.intel.com/en-us/articles/open-source-downloads (英語) から binutils パッケージをダウンロードしてインストールしてください。ld.exe へのパスを “PATH” 環境変数に追加します。プロセッサー・グラフィックスへのオフロード領域は ELF フォーマットであるため、ヘテロジニアス・アプリケーションをビルドおよびリンクするには、binutils が必要になります。
    注意: Binutils 以外の Unix* コマンドツール環境 (MKStoolkit など) がインストールされている場合、リンクに失敗することがあります。Binutils の ld.exe コマンドが起動されていることを確認してください。

Linux*:

  1. インテル® C++ コンパイラー 15.0 以降。
  2. インテル® HD グラフィックス・ドライバー、またはオープンソース・メディア・カーネル・ランタイム。
  3. 「video」グループの権限を持つアカウントで、Linux* マシンにログインします。

インテル® Parallel Studio XE 2015 以降やインテル® System Studio 2015 以降の製品登録後、インテル® ソフトウェア開発製品レジストレーション・センター から必要なツールをダウンロードできます。個々のドライバーバージョンの OS サポートの詳細については、インテル® ソフトウェア開発製品レジストレーション・センターのドライバー・インストール・ガイドをご覧ください。

Ubuntu* 12.04 では、インテル® HD グラフィックス・ドライバーのインストールは、igfxcmrt64.so ファイルを /usr/lib/x86_64-linux-gnu にコピーします。リンカーは実行時にこのパスのライブラリーを検索しません (詳細は、https://wiki.ubuntu.com/MultiarchSpec (英語) をご覧ください)。ld (リンカー) の検索リストにこのディレクトリーを追加するため、次の手順に従ってください。

  1. /usr/lib/x86_64-linux-gnu を LD_LIBRARY_PATH に追加する:
    export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH
  2. リンカーがライブラリーを検索できるようにするため、/etc/ld.so.conf.d/x86_64-linux-gnu.conf ファイルに /usr/lib/x86_64-linux-gnu パスを追加します。

オープンソース・メディア・カーネル・ランタイムのインストール・ガイドとビルドスクリプトは、https://software.intel.com/articles/open-source-downloads (英語) の「Required for use of offload with Open Source Media Kernel Runtime for Intel® HD Graphics」からダウンロードできます。

ターゲット環境のテストとビルド:

Windows®:

インテル® C++ コンパイラー 15.0 以降をインストールし、サンプルフォルダーにある gfx_samples.zip を書き込み可能なディレクトリーに展開します。この zip ファイルは、プロセッサー・グラフィックスへの計算オフロードを行ういくつかのサンプルコードを含んでいます。それらのコードをビルドして実行できれば、環境は正しく設定されていると言えます。

Linux*:

インテル® C++ コンパイラー 15.0 以降をインストールし、サンプルフォルダーにある gfx_samples.tar.gz を任意のディレクトリーに展開します。この zip ファイルは、プロセッサー・グラフィックスへの計算オフロードを行ういくつかのサンプルコードを含んでいます。それらのコードをビルドして実行できれば、環境は正しく設定されていると言えます。

その他の関連記事 (英語):

  1. How to offload computation to Intel(R) Graphics Technology 
  2. Code generation options for Intel(R) Graphics Technology
  3. Using Intel(R) C++ Compiler with Intel(R) Processor Graphics
  4. Unlocking the compute power of Intel(R) Graphics Technology to boost the performance of a Black Scholes program
  5. Compute offload to Intel(R) Graphics Technology when X server is up and running on a Linux machine
  6. error : cannot open source file “windows.h” in gfx_samples.zip shipped with Intel(R) C++ Compiler 15.0 Beta Update 2 when built with VS2012 IDE
  7. Avoid frequency drop in GPU cores when executing applications in Heterogeneous mode
  8. Tuning tips for compute offload to Intel(R) Processor Graphics
  9. Offloading Asian Options Pricing Algorithm to Intel(R) Processor Graphics

Microsoft、DirectX、および Windows は、米国 Microsoft Corporation の、米国およびその他の国における登録商標または商標です。

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

関連記事