2010年4月4日日曜日

OpenCLマスターへの道 - ATI Stream SDK 編 第五話

前回、サンプルプログラムが動いたので、今回は、プロジェクトを始めから作成してみる。


ただし、普通にやってもつまらないので、64bit CLR コンソールアプリケーションを作成してみる。


とその前に、Express Edition は、64bit 版のビルドはサポート外なので、Microsoft Visual C++ 2008 Express Edition で64ビット版のプログラムを作る方法を参考に(ありがたやありがたや~)以下のものを導入して、64bit 版をビルドできるようにした。

Microsoft Windows SDK for Windows 7 and .NET Framework 3.5 SP1
Visual C++ 2008 Express Edition And 64-Bit Targets本文中の”Updated patch for Win7 SDK:”の下の”VCE64BIT_WIN7SDK.zip”


最初、私の環境では、以下の手順を実施してもうまくいかなかった。
おそらく、Visual C++ をデフォルトのディレクトリにインストールしていなかったのが原因と思われる。
しかたがないので、Visual シリーズ(C#など)、および、Windows SDK など関係するものを全てアンインストールして、Visual Studio に関連する設定ファイルをすべて削除し、アンインストールしたものをインストールし直す、その際にインストール先をデフォルト値のままとし、再び以下の手順を繰り返したらうまくいった。



64bit 版ビルド対応化の手順は以下のようにする。
Visual C++ 2008 Express Edition with SP1 をインストール。
インストール後、Windows Update を実行し、Visual C++ を最新の状態にしておくこと。

Microsoft Windows SDK for Windows 7 and .NET Framework 3.5 SP1のページから”winsdk_web.exe”をダウンロードして実行する。画面の指示通りにインストールする。

”VCE64BIT_WIN7SDK.zip”を解凍する。
解凍したファイルの”readme.txt”を開いて読む。
”readme.txt”の手順3は、リンク先の情報をよく読むこと、OSが32bitか64bitかで手順が変わるようだ。私のマシンはVista 64bitなので手順1は行わなかった(確証なし)
手順2として、「スタート」メニューから「すべてのプログラム」-「Microsoft Windows SDK v7.0」-「Visual Studio Registration」-「Windows SDK Configuration Tool」を実行


「Installed Windows SDK Versions:」で”v7.0”を選択。
「Make Current」ボタンを押す。


成功。「OK」ボタンを押す。

次に、コマンドプロンプトを管理者権限で開く。手順は次のようにする。
「スタート」メニューから「すべてのプログラム」-「アクセサリ」-「コマンドプロンプト」を右クリックして、コンテキストメニューから「管理者として実行」を選択。

開いたコマンドプロンプトで”VCE64BIT_WIN7SDK.zip”を解凍したディレクトリに移動する。

”setup_x64.bat”を実行する。(32bit OSの場合は”setup_x86.bat”)


> setup_x64.bat

> regedit /s x64\VC_OBJECTS_PLATFORM_INFO.reg

> regedit /s x64\600dd186-2429-11d7-8bf6-00b0d03daa06.reg

> regedit /s x64\600dd187-2429-11d7-8bf6-00b0d03daa06.reg

> regedit /s x64\600dd188-2429-11d7-8bf6-00b0d03daa06.reg

> regedit /s x64\600dd189-2429-11d7-8bf6-00b0d03daa06.reg

> regedit /s x64\656d875f-2429-11d7-8bf6-00b0d03daa06.reg

> regedit /s x64\656d8760-2429-11d7-8bf6-00b0d03daa06.reg

> regedit /s x64\656d8763-2429-11d7-8bf6-00b0d03daa06.reg

> regedit /s x64\656d8766-2429-11d7-8bf6-00b0d03daa06.reg

> copy "C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\vcpackages\AMD64.VCPlatform.config" "C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\vcpackages\AMD64.VCPlatform.Express.config"
        1 個のファイルをコピーしました。

> copy "C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\vcpackages\Itanium.VCPlatform.config" "C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\vcpackages\Itanium.VCPlatform.Express.config"
        1 個のファイルをコピーしました。


Visual C++ 2008 Express Edition を起動。


「ファイル」メニューから「新規作成」-「プロジェクト」を選択。

「プロジェクトの種類」から”CLR”を選択。

「テンプレート」から”CLR コンソール アプリケーション”を選択。




「プロジェクト名」に”HelloCL”と入力し、「OK」ボタンを押す。


「ビルド」メニューの「構成マネージャ」を選択。


「プラットフォーム」で「<新規作成...>」を選択


「新しいプラットフォーム」で”Itanium”と”x64”がリストアップされていれば 64 bit ビルド対応パッチが成功している。”x64”を選択して、「OK」ボタンを押す。


変更後の画面。「閉じる」ボタンを押す。

「ビルド」メニューから「ソリューションのビルド」を選択。


こんな感じのディレクトリ構成になっていれば成功。環境によっては、多少異なるかもしれない。


というわけで、今回はここまで。