CUDA技術を利用したGPUコンピューティングの実際(前編) ―― グラフィックス分野で磨かれた並列処理技術を汎用数値計算に応用
● Visual StudioでCUDA用プロジェクトを作成
ここでは,Visual StudioでCUDA用のプロジェクトを作成する二通りの方法を紹介します.
1)既存のプロジェクトを書き換える方法
一つ目の方法は,既存のプロジェクトを書き換えていく方法です.例えば,CUDA SDKをインストールしたディレクトリ(デフォルトではC:¥Program Files¥NVIDIA Corporation¥NVIDIA CUDA SDK)の下のprojectsディレクトリ内にtemplateプロジェクトがあるので,これを使用します.このtemplateプロジェクトを適当な場所へコピーし,コピーしたtemplateプロジェクト内のcuファイルを書き換えることで,CUDAのプログラミングを行っていきます.
今回の記事用に必要最低限のプロジェクト(CQ_CUDA_template)を作成しました.これを本誌のWebサイトからダウンロードして使用することも可能です.このプロジェクト内のmain.cuというファイルを書き換えていきます.
2)新規のプロジェクトを作成する方法
次に紹介するのは,少し手順が煩雑ですが,自分でCUDA用のプロジェクトを作成する方法です.まず,Visual Studioを起動し,メニューの「ファイル」→「新規作成」を選び,「プロジェクト」をクリックします.
「新しいプロジェクト」ダイアログが表示されるので,この中から,プロジェクトの種類を「Win32」に指定し,テンプレートを「Win32コンソールアプリケーション」にします.プロジェクト名(ここではCQ_CUDA_templateとした)を適当に付け,[OK]ボタンを押します.
次に「Win32アプリケーションウィザード」ダイアログが表示されるので,メニューの「アプリケーションの設定」を選び,「空のプロジェクト」をチェックしてください.[完了]ボタンを押せば,とりあえず,空のプロジェクトを作成できます.
CQ_CUDA_templateプロジェクトの下のCQ_CUDA_templateディレクトリにcuファイルを用意します(ここではmain.cuとした).cuファイルには,とりあえず何も書かれていなくても構いません.このmain.cuファイルを図7のように追加します.
図7 cuファイルの追加
● nvccの利用にはカスタム・ビルド設定が必要
CUDAでは,Cコンパイラ(ここではVisual Studio付属のコンパイラ)とnvccを併用するために,カスタム・ビルド設定を行う必要があります.main.cu上にカーソルを合わせて,マウスの右クリックから「プロパティ」を選択すると,図8のダイアログが立ち上がります.
1)デバッグ・モード
まず,デバッグ・モードのカスタム・ビルド設定を行ってみましょう.図8のダイアログ中の「コマンドライン」の部分に図9のデバッグ・モード用のコマンド・ライン設定を入力します.また,「出力ファイル」部分を図8のように設定します(ファイル名はオブジェクト・ファイル名に合わせて変更する).これでデバッグ・モードのカスタム・ビルド設定は完了です.
コマンド・ライン中のmain.cuとmain.objは,ファイル名に合わせて変更する.
次に,図7のCQ_CUDA_template上にカーソルを合わせて,マウスの右クリックから「プロパティ」を選択すると,図10のダイアログが表示されます.ここで,リンカの設定を行います.CUDAの機能はWindowsではDLL(Dynamic Link Library)に収められているので,そのDLLの機能を呼び出すためのライブラリ・ファイルへのパス$(CUDA_LIB_PATH);../../common/libを「追加のライブラリディレクトリ」へ追加します.
次にこのダイアログから「入力」を選び,実際に使用するライブラリ・ファイル名を「追加の依存ファイル」の部分に入力します.ここでは,cudart.libとcutil32D.lib(デバッグ・モード用のCUDAユーティリティ・ライブラリ)を使用しています(図11).
以上がデバッグ・モード時の設定です.