CUDAその2 /cuda by example サンプルコードを動かす

CUDA by exampleベースでこのblogでは学習を進めていく予定である。

しかしながら、CUDA by exampleはいろいろと厄介なところがあるため、ちょっと補足したり掘り下げたりしながら進めていく。本のために作られたマクロやヘッダファイルがポイポイ出てくるため、配布されているサンプルコードをまるっとダウンロードしないと、そのままでは使い物にならない。

写経スタイルでのオベンキョーが好きな自分にはいささか面倒だが、まぁこれも楽しもう。

 

ということで、

CUDA By Example | NVIDIA Developer

からまずサンプルコードをダウンロードしてくる。

とりあえずテンプレートの動作確認のためにごく簡単なコードを書く。

新しいプロジェクトを作成して、Installed>templates>NVIDIA>CUDA 8.0 runtimeを選択。適当に名前を付けて保存。

すると、Externalにヘッダファイルがいろいろ入って、Kernel.cuとかいうソースの存在するプロジェクトが出来るはずである。

今回はサンプルコードを打ち込むのが目的なので、中身はとりあえず削除。サンプルコード3-1,3-2を打ち込む。コンパイルして実行。うむ、動く。

 

ここで、3-3を打ち込んで同様に実行しようとすると、今度はコンパイルエラー。

"book.hとかいうヘッダファイルは知りません"とか、"HANDLE_ERRORとかいうマクロ知りません"と言われてしまう。ヘッダはどうやら、ダウンロードしたファイル、cuda_by_example\common内にあるようで、ソリューションのプロパティ、

Configuration properties>VC++ directories>include directories 

内へ、先のcommonフォルダのパスを追記。

サンプルコード3-3が通るようになった。