あかすくぱるふぇ

同人サークル「あかすくぱるふぇ」のブログです。

CUDAプログラムの最小構成とそれをVIsualStudioでコンパイルする際の注意点を示します。

ソースコードは以下の通り。ファイル名は仮にSource.cuとします。
以下のページのソースコードを一部変更したものです。
http://seesaawiki.jp/w/mikk_ni3_92/d/CUDA%ca%d402

無題
注意点は以下の通り。

・ビルドカスタマイズ
コンソールアプリケーションテンプレートから作る場合はビルドカスタマイズが必要です。
ソリューションエクスプローラーでプロジェクトを右クリック > ビルド依存関係 > ビルドのカスタマイズをクリック。
CUDA(.targets, .props)にチェックを入れます。

・ビルドツールの選択
ソリューションエクスプローラーでSource.cuを右クリック > プロパティをクリック。
構成プロパティ > 全般 > 項目の種類をCUDA C/C++に変更します。

・cutil.h問題
古いCUDAでよく使われていたcutil.hが新しいCUDAには入っていません。
CUDA SDKをmakeするとその中に入ってるとか、CudaSamplesに入っているhelper_cuda.hを代わりに使うとか色々方法はあるようですが、どうもスマートじゃない。
Toolkitに入っているcuda_runtime.hやdevice_launch_parameters.hで代用するのが正攻法かと思います。
http://saito-175.hatenablog.com/entry/2013/07/25/191519

・コンパイルできるけどエラーの赤線が出る問題
__syncthreads()などに赤線が引かれてしまう問題です。
__CUDACC__マクロをdefineすると赤線が出なくなるようですが、インテリセンスが効かなくなるので辛い。
今のところ根本的な解決策が見つかっていません。
http://www.momo86.net/amahodo/contents/cuda/entry002

今回は、下図に示すようなタブコントロールの最小構成です。
画面
ソースコードは以下の通り。
Dlg_h
Dlg_cpp
App_h
App_cpp

やっていることは主に以下の2つです。

1. メインダイアログ(CMainDlgクラス)にタブコントロールをつけ、各タブの子ウィンドウとしてCTabDlg1とCTabDlg2クラスのインスタンスを生成。

2. 選択タブが変化した場合のイベントハンドラ(OnTcnSelchangeTab1)をオーバーライドし、選択タブに応じて表示を切り替える。

↑このページのトップヘ