Linux
Makefileの設定以外基本的には通常のC/C++と同じ。NVIDIA SDKのmakefile,common.mk等を流用する場合は必要ファイルまるごとコピーして、その後Makefileのtarget等を変更する。Fedora12の場合、nvccに--compiler-bindirオプション等でgcc34、g++34が呼ばれるようにしないといけない。
便利な設定
- ファイルタイプの追加
- CUDA独自の修飾子で"syntax error"を出さないようにする
あるいは
#ifdef __CDT_PARSER__
#define __global__
#define __device__
#endif
などと書いておく
- カーネル呼び出しの三重ブラケット
Eclipse + CUDA on Windows
windows版eclipseでもmakeコマンドが使えればMakefileにコンパイラやフラグの設定を書くだけで、Linuxの場合とほぼ同様にコンパイルできる(素直にVS使った方が良いという話もあるが)。なのでまずMingWをインストールしておく。幸いnvccはwindows版でもLinux版と同じようなオプションが利用できるのでifdef等で簡単に切り替えることもできる。
- 実行ファイルへパスを通す
- makeコマンドへのパス(d:¥msys¥1.0¥bin)
- nvccコマンドへのパス(D:¥CUDA¥bin)
- cl.exeコマンドへのパス(D:¥Program Files¥Microsoft Visual Studio 9.0¥VC¥bin)
PATH=D:¥msys¥1.0¥bin;D:¥CUDA¥bin;D:¥Program Files¥Microsoft Visual Studio 9.0¥VC¥binとなる。
- インクルードパスの追加
プロジェクトで右クリックし、 C/C++一般→パスおよびシンボル のインクルードタブに
- VC++のインクルードディレクトリ(D:¥Program Files¥Microsoft Visual Studio 9.0¥VC¥include)
- CUDAインクルードディレクトリ
- CUDA SDK インクルードディレクトリ
あるいはnvcc実行時に-Iオプションでインクルードパスを通しても良い。
- ライブラリへのパスを通す
-L"C:¥Program Files¥Microsoft SDKs¥Windows¥v6.0A¥Lib" -lkernel32
をつける。(ようにmakefileを書くか、eclipseの方で設定する)
0 件のコメント:
コメントを投稿