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コンソールアプリケーションを作成して、以下の準備をすることで、ビルド・実行できました。
- Cのコードを書く。
- プロジェクトのプロパティ→構成プロパティ→C/C++→追加のインクルード ディレクトリの欄に「
$(INTELOCLSDKROOT)\include\
」と入力する。 - リンカー→全般→追加のライブラリ ディレクトリの欄に「
$(INTELOCLSDKROOT)\lib\x86\
」と入力する。 - 入力→追加の依存ファイルの欄に「
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があるので、それ以上追求せずにあっさりあきらめました。)
株式会社フィックスターズ『OpenCL入門』(インプレスジャパン, 改訂新版, 2012)を参考にしました。
適当なサンプルを後で紹介します。