Visual Studio + Intel SDK for OpenCL

IntelのCPUおよびHD GraphicsでOpenCLを利用するためのIntel SDK for OpenCL Applicationsの新版(2013)が出ました。

Windows上でのOpenCL開発には、Visual Studioを使うのが簡単です。手元のVisual Studioで試したところ、

Visual Studio 2010 Professional
高価なのが問題のVisual Studio 2010 Professionalが最も簡単でした。Visual Studio 2010 Professionalをインストールした後でSDKをインストールすると、OpenCL専用のプロジェクトを作成できるようになり、そのプロジェクトの中でCのコードを書いて、そのままビルド・実行することができました。
Visual Studio Express 2012 for Windows Desktop
無料で使えるVisual Studio Express 2012 for Windows Desktopはちょっと面倒でした。Visual Studio Express 2012 for Windows Desktopをインストールした後でSDKをインストールするときには、「Integrate with Visual Studio 2012 Software」は無効にした方がよいようです。デフォルトは有効ですが、そのままではSDKをインストールできませんでした。OpenCL専用のプロジェクトは作れませんが、ふつうのWin32コンソールアプリケーションを作成して、以下の準備をすることで、ビルド・実行できました。

  1. Cのコードを書く。
  2. プロジェクトのプロパティ→構成プロパティ→C/C++→追加のインクルード ディレクトリの欄に「$(INTELOCLSDKROOT)\include\」と入力する。
  3. リンカー→全般→追加のライブラリ ディレクトリの欄に「$(INTELOCLSDKROOT)\lib\x86\」と入力する。
  4. 入力→追加の依存ファイルの欄に「OpenCL.lib」と入力する。

ちなみに、Intel SDKではなくCUDA Toolkitを使う場合、追加のインクルード ディレクトリは「$(CUDA_PATH)include」、追加のライブラリ ディレクトリは「$(CUDA_PATH)lib\Win32」などになります。

Visual C++ 2010 Express
無料で使えるVisual C++ 2010 Expressはだめでした。上述のExpress 2012と同様にSDKをインストールしてプロジェクトのプロパティを設定しても、ビルドすることができませんでした。(SP1が入っていなかったのが原因かもしれませんが、SP1を入れようとしてもエラーが発生してだめでした。2012があるので、それ以上追求せずにあっさりあきらめました。)

4844331728株式会社フィックスターズ『OpenCL入門』(インプレスジャパン, 改訂新版, 2012)を参考にしました。

適当なサンプルを後で紹介します。