GPUとCudaWaveFieldを試す(その2)

| コメント(0) | トラックバック(0)

前回の失敗の要因

前回の失敗をT君と相談したところ,問題点はCUDAのダイナミックリンクライブラリ命名方法にあることがわかった.なんと,CUDAではdll名そのものにバージョン番号が含まれているのである(一般的にはフォルダ名にバージョン番号を入れると思うのだが・・).CWFLのビルド時には,CUDAのインポートライブラリを読み込む.この(バージョン番号を含んでいる)ライブラリ名が実行時に呼び出すdll名になる.つまり,CWFLのビルドに用いたCUDAと同じバージョンのCUDAでしかCWFLは実行できないことになる.今回インストールしようとしているのはCUDA 4.0でビルドしたCWFLなので,前回インストールしたCUDA 4.1では実行できないのである.

CWFLの配布という点からすると,これはかなりやっかいな問題である.CUDAのバージョンが変わる毎にCWFLを再ビルドして配布し,インストールしてもらう必要がある.いまのところ解決策は思いつかないので,とりあえず,CWFL配布時にはCUDAのバージョンを指定することにする.

第3日目

CUDA 4.1のアンインストール

今回はCuda4.0対応のビルド済みのCWFLを試すことにする.そのため,前回一度インストールしたCUDAのファイルをアンインストールした.CUDAはバージョンごとにインストールディレクトリが異なるので,特にアンインストールする必要はないと思われるが,念のためである.まず,CUDA Toolkit 4.1をアンインストール.次にGPU Computing SDK 4.1をアンインストールしようとしたところ,やや,「指定されたモジュールが見つかりません」というエラーが出るではないか! 一応,前回確かめておいたGPU Computing SDK 4.1のインストールポイントを調べたところ,そのまますべてのファイルが残っている.

CUDA 4.0のインストール

アンインストールのトラブルはとりあえず無視して,CUDA Toolkit Archiveに行き,4.0の関連ファイルをダウンロードした.前回と同じWindows 64bitで, 

  • CUDA Toolkit 4.0
  • GPU Computering SDK 4.0
  • Developer Drivers 4.0

である.Toolkitのインストールの種類も前回と同様「Complete」とした.

インストールポイントは,予想できる通り,4.1が4.0に代わっているだけである.つまり,

  • C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0
  • C:\ProgramData\NVIDIA Corporation\NVIDIA GPU Computing SDK 4.0

となっていた.SDK4.1のアンインストールができなかったので,PATHを調べると4.1へのPATHも残っていた.特に問題ないが,一応,手動で消しておくことにした.この段階で,C:\ProgramData\NVIDIA Corporation\NVIDIA GPU Computing SDK 4.0\C\bin\win64\Releaseに入っているビルド済みのCUDAサンプルプログラムからbandwidthTest.exeを試してみたところ,問題なく実行できた.

Visual Studioの設定

次にVisual Studioの「ツール>オプション>プロジェクトおよびソリューション>VC++ディレクトリ」のインクルードディレクトリの設定も変更する.前回の設定から4.1→4.0とするだけであり,具体的には下記のとおりにする.

  • C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include
  • C:\ProgramData\NVIDIA Corporation\NVIDIA GPU Computing SDK 4.0\CUDALibraries\common\inc

CWFLを用いたサンプルソースのコンパイルテスト

sample.bmpCWFLを用いる適当なサンプルソースをT君の研究フォルダから拾い,コンパイルを試してみた.問題なく,ビルドができる.ここまでは,前回もたどりついたところである.さらに実行を試みる.

OKである! 円形開口の回折像を計算するサンプルソースであったが,右図のとおり,問題なく計算できている.

(注) 用いたサンプルソースでは4倍拡張を行っていないため,若干だが,円状畳み込みによるエイリアシングが発生している.WFLでも4倍拡張を行わないと同じ結果になる.

トラックバック(0)

トラックバックURL: http://www.laser.ee.kansai-u.ac.jp/WaveFieldTools/mt/mt-tb.cgi/118

コメントする

このブログ記事について

このページは、松島が2012年3月21日 16:31に書いたブログ記事です。

ひとつ前のブログ記事は「GPUとCudaWaveFieldを試す(その1)」です。

次のブログ記事は「祝! 4か月連続「Applied Optics Top download 10」入り!」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。