椿の日記

たぶんプログラムの話をします

CUDAを使ってみる

次はフォトンマッピングをしようかと思ったのですが、気分転換にCUDAを勉強してみようと思います。とりあえずv4.0のSDKをインストールしたあとにハマった点だけ簡易まとめ。

cutil

cutilはDirectXで言うところのDXUTのようなユーティリティのようです。
自分でビルドして使うらしいので、プロジェクトを開いてビルドしておきます。

Visual Studio Integration

rulesファイルのコピー

VS2010で.cuファイルをビルドするためには色々と自分で設定しなきゃならんようです。

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\extras\visual_studio_integration\NvCudaDriverApi.v4.0.rules
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\extras\visual_studio_integration\NvCudaRuntimeApi.v4.0.rules

これらのファイルを次の場所にコピーします。

C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\VCProjectDefaults
プロジェクトの設定

VS2010で新規プロジェクトを作成します。更に、

  • メインメニュー
    • プロジェクト
      • ビルドのカスタマイズ

と選択していくと、CUDA v4.0 のチェックボックスがあるので、それにチェックを入れます。

但し、これを選択すると、プロジェクトのプロパティが見れなくなります。更に、ソリューションを閉じて再度開こうとしても、

要素 <UsingTask> 内の属性 "AssemblyFile" の値 "$(CudaBuildTasksPath)" を評価した結果 "" は無効です

といったエラーがでてプロジェクトが読み込めなくなります。

プロジェクトの修正

公式フォーラムの投稿を参考に対処します。vcxprojファイルを開き、次の場所を書き換えます。

look for

  <ImportGroup Label="ExtensionSettings" />

replace with

  <ImportGroup Label="ExtensionSettings">
    <Import Project="$(VCTargetsPath)\BuildCustomizations\CUDA 4.0.props" />
  </ImportGroup>

これでプロジェクトが読み込めるようになり、CUDA周りの設定が出来るようになります。