[ C++で開発 ]

OpenCL開発環境
Windows 7/64bit、Visual C++ 2010 Express

開発環境

今回環境構築に必要としたものは以下です。

  1. Visual C++ 2010 Express
  2. Windows SDK for Windows 7 and .NET Framework 4
  3. ATI Stream SDK v.2.2

コンパイラには、無償のVisual C++ 2010 Expressを使用しました。ただし、Windows 7/64bit版では、グラフィックスドライバが64bit版となるので、コンパイラも64bit対応が必要ですが、Expressには64bitコンパイラがないので、別途Windows SDK for Windows 7 and .NET Framework 4をインストールします。

インストール

Visual C++ 2010のインストール

特に特記することはなく、普通にインストールしました。

Windows SDK for Windows 7 and .NET Framework 4のインストール

特に特記することはなく、普通にインストールしました。なお、インストールにあたっては、Webインストールではなく、ISOファイル形式でダウンロードし、インストールしました。

ATI Stream SDK v.2.2

以下のファイルをダウンロードしました。

インストールでトラブルが発生しました。原因はmfc80.dll/mfc80u.dllのバージョン互換性の問題で、KB961894の解決手段を適用して回避しました。

トラブルの詳細
  1. ati-stream-sdk-v2.2-vista-win7-64.exe をダウンロード
  2. 1. のファイルを実行し、解凍先はデフォルト(C:\ATI\...)を指定
  3. ATIロゴのスプラッシュが表示後、「ATI-Catalystインストールマネージャ-バージョン:03.00.0755」ダイアログの「ようこそ」が表示される。言語サポート欄は[日本語]で、[次へ]ボタンをクリックし、「インストール操作の選択」で、[インストール]アイコンをクリックしたら、画面が消えて、何もおきない
  4. C:\ATI\Support\streamsdk_2-2_win764\Setup.exeを実行したところ、3. と同じ結果となる
  5. 4. を数回これを繰り返したら、タスクバーに「PCの問題を解決」ポップアップが登場した。「アクションセンター」に「Microsoft Visual Studioの問題を解決する」という項目がある。[メッセージの詳細の表示]ボタンをクリックすると、「KB961894:Mfc80.dllまたはMfc80u.dllモジュールを更新する製品をインストールすると、アプリケーションがクラッシュする」へのリンクが紹介されている。
  6. 問題点は、mfc80.dll/mfc80u.dllのバージョン互換性の問題とのことである。
    もともとMfc80.dll/Mfc80u.dllのバージョン8.0.50727.870を搭載する環境に、Microsoft SQL Server 2008などのMfc80.dll/Mfc80u.dllの新しいバージョン(8.0.50727.3078)を伴うソフトウェアをインストールする。その後、VIsual Studio 2005のランタイムを使用するアプリケーションを実行すると、アクセス違反でクラッシュする。
  7. 解決方法は、KB961894 - VC++ Post 2005 SP1 Redistributable を適用することなので、これをダウンロード・インストールし、4. の手順を実行したところ、インストールが開始された。

開発環境の設定

Visual C++ で新規プロジェクトを作成するときに、以下の設定を行います。

  1. インクルードディレクトリに以下を追加
    $(ATISTREAMSDKROOT)\include
    プロジェクトのプロパティを開き、左上の[構成(C):]欄を[すべての構成]に変更し、左側ペインで構成プロパティ-VC++ディレクトリを選択し、右側ペインでインクルードディレクトリを選択、右端のドロップダウンボタンをクリックし、<編集...>を選択、ディレクトリを追記します。
  2. ライブラリディレクトリに以下を追加
    $(ATISTREAMSDKROOT)\lib\x86_64 (注:64bit版のとき)
    設定方法は1.と同様です。右側ペインでライブラリディレクトリを選択します。
  3. ライブラリに以下を追加
    OpenCL.lib
    プロジェクトのプロパティを開き、左上の[構成(C):]欄を[すべての構成]に変更し、左側ペインでリンカー-入力を選択し、右側ペインで追加の依存ファイルを選択、右端のドロップダウンボタンをクリックし、<編集...>を選択、ディレクトリを追記します。
  4. プラットフォームツールセットを変更 (注:64bit版のとき)
    プロジェクトのプロパティを開き、左上の[構成(C):]欄を[すべての構成]に変更し、左側ペインで構成プロパティ-全般を選択し、右側ペインでプラットフォームツールセットを選択、右端のドロップダウンボタンをクリックし、Windows7.1SDKを選択します。
  5. ソリューションプラットフォームを変更 (注:64bit版のとき)
    プロジェクトのプロパティを開き、右上の[構成マネージャ(O)...]ボタンを押すと「構成マネージャ」ダイアログが表示されるので、左上[アクティブソリューションプラットフォーム(P):]欄で[<新規作成...>]を選択する。「新しいソリューションプラットフォーム」ダイアログが表示されるので、[新しいプラットフォームを入力または選択してください(P):]欄で、[x64]を選択し、[設定のコピー元(S):]欄は[Win32]のまま、[新しいプロジェクトプラットフォームを作成する(C)]欄のチェックは付けたまま、[OK]を押します。

毎回設定するのは面倒なので、プロジェクトテンプレートを作れればよいのですが、ノウハウがなくあきらめ。


This page is written by Toru TAKAHASHI.(torutk atmark 02.246.ne.jp)