GPUの中を覗く!Visual StudioでCUDAをデバッグ
CUDAを利用したGPU側の処理をデバッグしようと思ったのですが、古い環境での記事しか見つからなかったのでメモしておきます。
と言っても私の環境も最新ではなく、window7, Visual Studio 2010, CUDA Toolkit v5.0, Nsight Visual Studio Edition 3.1で実行しました。
CUDAが利用できるグラフィックボードかどうかチェック
まずはここからCUDAを利用できるグラフィックボードかどうかチェックして下さい。
グラフィックボードの確認はコンピューターのプロパティからデバイスマネージャーを開き、ディスプレイアダプタで確認して下さい。
Nsight Visual Studio Editionをインストール
Nsight Visual Studio Editionはここからダウンロードできます。
まずは右上のlog inを押してユーザー登録後、ログインして下さい。
ログインできたら、中央下にある"Download it now!"のすぐ下にある"Free Nsight Visual Studio Edition Registered Developer Account Required"
を押してデベロッパーアカウントを登録する必要があります。この登録は申請してから少し時間が経って承認されます。私は5分くらいで承認メールが届きました。
承認されたら"Download it now!"を押してSTEPに従ってNsight Visual Studio Editionをインストールして下さい。
Visual StudioからCUDAで書かれたプログラムを実行
準備が出来たらVisual Studioを起動し、ファイル/メニュー/新規作成/プロジェクトを押してNVIDIAのCUDA用プロジェクトを作成して下さい。
いつも通りにとりあえずデバッグ
既にサンプルプログラムが用意されているのでビルドしてデバッグ実行したら
CPU側の処理は普通にデバッグ実行できると思います。
下図では__global__ void addKernel()関数の中がGPU側で処理されるのですが、
この中にブレークポイントを設置しようとしてもスコープ外に外されてしまい変数の値を確認できません。