CUDA技術を利用したGPUコンピューティングの実際(前編) ―― グラフィックス分野で磨かれた並列処理技術を汎用数値計算に応用

下馬場 朋禄,伊藤 智義

tag: 組み込み 半導体

技術解説 2008年6月18日

● 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のように追加します.

zu07_01.gif
図7 cuファイルの追加

● nvccの利用にはカスタム・ビルド設定が必要

 CUDAでは,Cコンパイラ(ここではVisual Studio付属のコンパイラ)とnvccを併用するために,カスタム・ビルド設定を行う必要があります.main.cu上にカーソルを合わせて,マウスの右クリックから「プロパティ」を選択すると,図8のダイアログが立ち上がります.

zu08_01.gif
図8 nvccのコマンド・ライン設定

1)デバッグ・モード

 まず,デバッグ・モードのカスタム・ビルド設定を行ってみましょう.図8のダイアログ中の「コマンドライン」の部分に図9のデバッグ・モード用のコマンド・ライン設定を入力します.また,「出力ファイル」部分を図8のように設定します(ファイル名はオブジェクト・ファイル名に合わせて変更する).これでデバッグ・モードのカスタム・ビルド設定は完了です.

zu09_01.gif
図9 コマンド・ライン設定

コマンド・ライン中のmain.cuとmain.objは,ファイル名に合わせて変更する.
 次に,図7のCQ_CUDA_template上にカーソルを合わせて,マウスの右クリックから「プロパティ」を選択すると,図10のダイアログが表示されます.ここで,リンカの設定を行います.CUDAの機能はWindowsではDLL(Dynamic Link Library)に収められているので,そのDLLの機能を呼び出すためのライブラリ・ファイルへのパス$(CUDA_LIB_PATH);../../common/libを「追加のライブラリディレクトリ」へ追加します.

zu10_01.gif
図10 ライブラリへのパス登録

 次にこのダイアログから「入力」を選び,実際に使用するライブラリ・ファイル名を「追加の依存ファイル」の部分に入力します.ここでは,cudart.libとcutil32D.lib(デバッグ・モード用のCUDAユーティリティ・ライブラリ)を使用しています(図11)

zu11_01.gif
図11 ライブラリ・ファイル名の登録

 以上がデバッグ・モード時の設定です.

組み込みキャッチアップ

お知らせ 一覧を見る

電子書籍の最新刊! FPGAマガジン No.12『ARMコアFPGA×Linux初体験』好評発売中

FPGAマガジン No.11『性能UP! アルゴリズム×手仕上げHDL』好評発売中! PDF版もあります

PICK UP用語

EV(電気自動車)

関連記事

EnOcean

関連記事

Android

関連記事

ニュース 一覧を見る
Tech Villageブログ

渡辺のぼるのロボコン・プロモータ日記

2年ぶりのブログ更新w

2016年10月 9日

Hamana Project

Hamana-8最終打ち上げ報告(その2)

2012年6月26日