インテル® Xeon Phi™ コプロセッサー x100 が搭載されたシステムでインテル® Code Builder for OpenCL* API を実行する

同カテゴリーの次の記事

GEN アセンブリーの概要

この記事は、インテル® デベロッパー・ゾーンに公開されている「Working with Intel® Code Builder for OpenCL™ API on Systems Equipped with Intel® Xeon Phi™ x100 Coprocessor」の日本語参考訳です。


OpenCL* テクノロジーの構成変更 (http://www.isus.jp/article/intel-software-dev-products/intel-opencl/ を参照) により、インテル® SDK for OpenCL* Applications はインテル® Code Builder for OpenCL* に置き換えられました。インテル® Xeon Phi™ コプロセッサー x100では、コプロセッサー用の特定の OpenCL* ランタイムおよび Code Builder が必要になります。そのため、新しい OpenCL* 開発環境をインストールして、インテル® Xeon Phi™ コプロセッサー (開発コード名: Knights Corner) x100 上でアプリケーションをテストすることにしました。インテル® Xeon Phi™ コプロセッサー x100 カードを搭載したシステムで OpenCL* アプリケーションをビルドおよび実行する開発者の参考になるように、その手順を説明します。

ここで使用したホストシステムは RHEL 64 ビット 6.5 (カーネル 2.6.32-431) で、 2 枚のインテル® Xeon Phi™ コプロセッサーを搭載しており、インテル® C++ Composer XE 2015.0.2 (2005.2.164) をインストールしていました。

OpenCL* ランタイムのリリースノート (https://software.intel.com/en-us/articles/opencl-runtime-release-notes/ (英語) を参照) によれば、コプロセッサーを使用するには (MPSS 3.4 以降ではなく) MPSS 3.3 をインストールする必要がありました。

そこで、最新の MPSS 3.3 バージョン、OpenCL* ランタイム 14.2 (CPU + インテル® Xeon Phi™ プロセッサー)、Code Builder の順にインストールしました。

  1. https://software.intel.com/en-us/articles/intel-manycore-platform-software-stack-mpss-archive (英語) から MPSS 3.3.4 をダウンロードします。readme ファイルに従ってインストールします。MPSS サービスを開始します。

    # service mpss start
  2. http://www.isus.jp/article/visual-computing/opencl-drivers/ から OpenCL* Runtime 14.2 for Intel® CPU and Intel® Xeon Phi™ coprocessors for Linux* (64-bit) をダウンロードします。OpenCL* ランタイムは、OpenCL* アプリケーションを実行できるようにします。

    # tar zxvf opencl_runtime_14.2_x64_4.5.0.8.tgz

    サブディレクトリー pset_opencl_runtime_14.1_x64_4.5.0.8 が生成されます。

    # cd pset_opencl_runtime_14.1_x64_4.5.0.8
    # ./install.sh
  3. https://software.intel.com/en-us/articles/intel-code-builder-for-opencl-api (英語) から、Intel® Code Builder for OpenCL* API 2014 R3 for Linux* (With support for Intel® Xeon Phi™ coprocessors) をダウンロードします。Code Builder は、OpenCL* バイナリーをビルドできるようにします。

    # tar zxvf intel_code_builder_for_opencl_2014_4.6.0.178_x64.tgz

    サブディレクトリー intel_code_builder_for_opencl_2014_4.6.0.178_x64 が生成されます。

    # cd intel_code_builder_for_opencl_2014_4.6.0.178_x64
    # ./install.sh

テストのため、記事 https://software.intel.com/en-us/articles/using-the-intel-sdk-for-opencl-applications-xe-2013 (英語) から OpenCL* ソースコードをダウンロードしました。サンプルパッケージの名前は opencl-sample.zip です。この zip ファイルを Windows* で展開した後、すべてのファイルを Linux* システムに転送しました。転送したファイルには、ocl_sample.cpp、カーネル ocl_sample.cl および入力イメージ input.pgm も含まれています。

# source <installed directory>/bin/compilervar.sh intel64
# icc ocl_sample.cpp –lOpenCL –o ocl_sample.out

#./ocl_sample.out

Platform: Intel(R) OpenCL
Number of accelerators found: 2

DEVICE #0:
NAME:Intel(R) Many Integrated Core Acceleration Card
#COMPUTE UNITS:240

DEVICE #1:
NAME:Intel(R) Many Integrated Core Acceleration Card
#COMPUTE UNITS:240
OpenCL Initialization Completed
Completed reading Input Image: ‘input.pgm’
Transferring Data from Host to Device
Executing Kernel on selected devices
Transferring data from Device to Host
Completed writing Output Image: ‘output.pgm’
Completed execution! Cleaning Up.

出力イメージ output.pgm が生成されます。このイメージは、入力イメージにガウスぼかしを適用した結果です。

確認のため、すべての MPSS 3.3 バージョン (MPSS 3.3.1、MPSS 3.3.2、および MPSS 3.3.3) で上記のアプリケーションを再テストしました。上記の OpenCL* ランタイムおよびインテル® Code Builder for OpenCL* API を利用して、MPSS 3.3.4、MPSS 3.3.3、MPSS 3.3.2 および MPSS 3.3.1 でテストを正常に実行することができました。MPSS 3.3 の別のバージョンをアンインストール / インストールする場合は常に、アプリケーションを再度起動する前に、OpenCL* ランタイムを修復するか、アンインストールして再インストールする必要があることに注意してください。OpenCL* ランタイムを修復するには、OpenCL* ランタイムのインストール・ディレクトリーに移動して、./install.sh と入力し、[#2-Repair the installation] を選択します。

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

関連記事