インテル® SDK for OpenCL* Applications 入門

同カテゴリーの次の記事

インテル® アーキテクチャー向けの OpenCL* ドライバーとランライム

この記事はインテル® デベロッパー・ゾーンに公開されている「Getting Started with Intel® SDK for OpenCL™ Applications」の参考訳です。

このガイドは、以下で入手可能なインテル® SDK for OpenCL* Applications を使用して、OpenCL* アプリケーションを作成、ビルド、デバッグそして解析を行うための簡単な手順を説明しています。

インテル® Media Server Studio は、Windows* と Andorid* 向けのモバイルとデスクトップ・クライアント・システム向けに統合開発環境を提供します。Linux* システム やほかのサーバーと組込み構成向けの OpenCL* アプリケーションをターゲットとする場合、追加のインテル® SDK for OpenCL* Applications (https://www.isus.jp/article/intel-software-dev-products/intel-opencl/) のオプションも利用できます。

インテル® SDK for OpenCL* Applications について

インテル® SDK for OpenCL* Applications は、インテル® プロセッサー・グラフィックスを搭載するインテル® アーキテクチャー・プロセッサーをターゲットとする、OpenCL* アプリケーションの開発を可能にするソフトウェア・ツール・スイートです。

インテル® SDK for OpenCL* Applications は、次の機能をサポートします。

  • OpenCL* C カーネルコードのコンパイルと解析
  • OpenCL* C カーネルコードのデバッグ
  • Microsoft* Visual Studio* と Eclipse* IDE との統合
  • Android* 向けのリモート開発とコンパイル

どのインテル® SDK for OpenCL* Applications バージョンを使用すべきか

ターゲット・オペレーティング・システムとハードウェアによって、インテル® Media Server Studio やほかのバージョンのインテル® SDK for OpenCL* Applications を選択する必要があります。

インテル® Media Server Studio に含まれるインテル® SDK for OpenCL* Applications は、次の機能を提供します。

  • ビルド、デバッグおよび解析ツール:
    • Microsoft* Visual Studio* と Eclipse* との統合
    • OpenCL* C カーネル開発フレームワーク
    • OpenCL* 2.0 開発環境
    • OpenCL* API デバッグとトレース
    • Android* 向けのリモート開発
    • プレビューの OpenCL* 解析機能
  • 最新の標準規格をサポート:
    • OpenCL* 1.2 と 2.0
    • SPIR* 1.2
  • オペレーティング・システムとデバイス間の移植性:
    • インテル® プロセッサーとインテル® プロセッサー・グラフィックスのサポート
    • Windows* ホスト開発環境
    • Android* と Windows* ターゲット
  • グラフィックス計算とインテル® アーキテクチャーの最適化:
    • 新しいインテル® Core™ M プロセッサー、第 5 世代と第 6 世代インテル® Core™ プロセッサー
    • インテル® Atom™ プロセッサー
    • 共有仮想メモリーによるオンダイ・ヘテロジニアス・コンピューティング

完全な機能リストは、インテル® SDK for OpenCL* Applications リリースノート (英語) をご覧ください。

Linux* OS 向けに OpenCL* をサポートするインテル® プロセッサー・グラフィックスなど、構成に関する詳しい情報が必要ですか? インテル® Media Server Studio に同梱されるインテル® SDK for OpenCL* Applications を使用します。その他の構成については、https://www.isus.jp/article/intel-software-dev-products-support/intel-opencl-support/ をご覧ください。

必要条件

Code Builder のコンポーネントが正しく動作するには、次のコンポーネントがインストールされている必要があります。

  • インテル® プロセッサー・グラフィックスの OpenCL* サポートを利用する場合、第 3 世代インテル® Core™ プロセッサー、インテル® Atom™ プロセッサー (開発コード名 Bay Trail) 以上が必要
  • インテル® グラフィックス・ドライバー 15.33 以降
  • 仮想環境では、インテル® プロセッサー・グラフィックス上で OpenCL* を利用できません。古いバージョンのインテル® プロセッサーの場合と同様に、CPU デバイス用の OpenCL* ランタイム 15.1 を手動で事前にインストールする必要があります。サポートされているハードウェアの一覧は、OpenCL* ランタイム・リリースノート (英語) をご覧ください。
  • Android* 向け開発の場合、OpenCL*対応のインテルベースの Android* システムが必要です。または、Android* エミュレーションで OpenCL* CPU for Android* を使用することもできます。
  • オプション: Microsoft* Visual Studio* 2010、2012、2013、または Eclipse* (Keppler 以降)

製品のインストールの詳細については、リリースノート (英語) の「Installation Guidelines」をご覧ください。

インテル® Code Builder for OpenCL* API ツールの導入

インテル® SDK for OpenCL* Applications を使用する最も簡単な方法は、Visual Studio* プラグイン (インテル® Code Builder for OpenCL* API) を使用することです。

OpenCL* プラットフォームの確認

OpenCL* Code Builder をインストールしたら、次の手順に従って、システムで OpenCL* プラットフォームが利用可能かどうか確認します。

  1. Visual Studio* を起動します。
  2. [CODE-BUILDER] > [Platform Info…] を選択します。

[Platform Info] ウィンドウが開き、利用可能なプラットフォームとハードウェアのプロパティーのリストが表示されます。

OpenCL* カーネルのビルド

次に、Visual Studio* プラグインを使用してOpenCL* カーネルをビルドします。

ここでは、プラグインをテストするため OpenCL* サンプルコードで公開されているサンプルを使用します。

サンプル・アプリケーションをビルドするには、次の操作を行います。

  1. OpenCL* プラットフォーム機能ビューアーのサンプル (英語) または任意のコードサンプルをダウンロードします。
  2. ダウンロードしたファイルを任意のフォルダーに展開します。
  3. 使用する Visual Studio* バージョンのソリューション・ファイルを選択します。
  4. [ビルド] > [ソリューションのビルド] を選択します。

ビルドに成功すると、次のようなメッセージが出力されます。

ビルドに失敗すると、エラーメッセージが出力されます。次に例を示します。

独自の OpenCL* カーネルを作成することもできます。
Visual Studio* 環境で Code Builder プラグインを使用して、カーネルを開発するための詳しい情報は、開発者ガイド (英語) をご覧ください。

OpenCL* アプリケーションのデバッグと解析

Microsoft* Visual Studio* IDE 向けのインテル® Code Builder for OpenCL* API プラグインの API デバッグ機能を使用して、OpenCL* アプリケーションをデバッグできます。

OpenCL* アプリケーションの API 呼び出しをデバッグするには、次の手順に従って、API デバッガーを有効にする必要があります。

  1. Visual Studio* を起動します。
  2. [CODE BUILDER] > [OpenCL Debugger] > [Options] > [API Debugger] を選択します。
  3. [Enable OpenCL API Debugger] をチェックします。

これで、アプリケーションの OpenCL* API 呼び出しにブレークポイントを設定し、[F5] キーを押してデバッグを開始できます。

API デバッガーは、API 呼び出しのさまざまなビューを提供します。ビューを開くには、[CODE BUILDER] > [OpenCL Debugger] を選択します。

API デバッガーの各ビューについては、OpenCL* Code Builder 開発者ガイド (英語) の次のトピックを参照してください。

  • トレースビュー
  • オブジェクト・ツリー・ビュー
  • プロパティー・ビュー
  • コマンドキュー・ビュー
  • プロブレムビュー
  • イメージビュー
  • データビュー
  • メモリートレース

OpenCL* Code Builder プラグインの機能の一覧と使用法はインテル® SDK for OpenCL* Applications – 開発者ガイド (英語) を参照してください。

OpenCL* アプリケーションを解析する

アプリケーションのデバッグが完了したら、パフォーマンス改善のため、次の手順に従って解析データを収集します。

  1. [CODE BUILDER] > [OpenCL Application Analysis] > [New Analysis Session…] を選択します
  2. 解析するアプリケーションとアプリケーションの領域を選択します。
  3. [Process Launch] チェックボックスの [Start Automatically] をチェックし、[Launch] をクリックします。
    アプリケーションが起動され、Code Builder はデータの収集を開始します。
  4. アプリケーションが実行を完了すると、[Analyze Sessions Explorer] ウィンドウに新しい解析セッションが表示され、Visual Studio* に結果が表示されます。

解析結果ビューには、解析ホームページと解析結果を確認するいくつかの手順を含む解析プログレスバーがあります。

すべての解析情報は、レポートメニューから参照できます。

ドキュメントとリソース

インテル® Code Builder for OpenCL* API の導入には、次のドキュメントとウェブ記事を参照してください。

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

関連記事

  • 私の OpenCL* SDK はどこへ行ってしまったのか?私の OpenCL* SDK はどこへ行ってしまったのか? この記事は、インテル® デベロッパー・ゾーンに公開されている「Where Did My OpenCL™ SDK Go?」の参考訳です。 4 年前、私は異種システムの並列プログラミング標準である OpenCL* のインテル初のサポートを世界に向けて発表する機会に恵まれました。当時の "What-If" […]
  • インテル® アーキテクチャー向けの OpenCL* ドライバーとランライムインテル® アーキテクチャー向けの OpenCL* ドライバーとランライム この記事は、インテル® デベロッパー・ゾーンに公開されている「Drivers and Runtimes for Intel® Architecture」の日本語参考訳です。 OpenCL* ドライバーとランタイムは、次の製品に含まれます: インテル® SDK for OpenCL* […]
  • インテル® SDK for OpenCL™ Applications 2014 ベータ版インテル® SDK for OpenCL™ Applications 2014 ベータ版 インテル® SDK for OpenCL™ Applications 2014 は、OpenCL API 向けの総合開発プラットフォームです。 Windows* と新たに Android* OS 向けに OpenCL をサポート OpenCL 1.2 の完全なプロファイルをサポート インテル® Iris™ […]
  • Intel® OpenCL SDK 1.1 の導入Intel® OpenCL SDK 1.1 の導入 インテルより初めての製品版となる Intel® OpenCL SDK 1.1 が 2011年 6月にリリースされました。この記事では、すでに OpenCL プログラムを開発している開発者、あるいは OpenCL について多少の知識を持つユーザーを対象に、Intel® OpenCL SDK 1.1 […]
  • GEN アセンブリーの概要GEN アセンブリーの概要 この記事は、インテル® デベロッパー・ゾーンに公開されている「Introduction to GEN Assembly」の日本語参考訳です。 この記事の PDF 版はこちらからご利用になれます。 目次 はじめに 単純な OpenCL* カーネルのアセンブリー アセンブリー命令の読み方 参考文献 […]