eclipseでCUDA開発する時の設定
Linux
Makefileの設定以外基本的には通常のC/C++と同じ。NVIDIA SDKのmakefile,common.mk等を流用する場合は必要ファイルまるごとコピーして、その後Makefileのtarget等を変更する。Fedora12の場合、nvccに--compiler-bindirオプション等でgcc34、g++34が呼ばれるようにしないといけない。
便利な設定
ウインドウ→設定→C/C++→ファイルタイプ に.cuをC++ソースファイルとして追加
- CUDA独自の修飾子で"syntax error"を出さないようにする
cuda_runtime.hをインクルードするか、
あるいは
#ifdef __CDT_PARSER__
#define __global__
#define __device__
#endif
などと書いておく
現時点では対処法無し。
Eclipse + CUDA on Windows
windows版eclipseでもmakeコマンドが使えればMakefileにコンパイラやフラグの設定を書くだけで、Linuxの場合とほぼ同様にコンパイルできる(素直にVS使った方が良いという話もあるが)。なのでまずMingWをインストールしておく。幸いnvccはwindows版でもLinux版と同じようなオプションが利用できるのでifdef等で簡単に切り替えることもできる。
Windowsのコントロールパネル→システム→詳細設定→環境変数 で、
- 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
となる。
インクルードパスを通す。ここで必要なインクルードパスはCUDAとVC++のヘッダファイルへのパスである。(mingwではない)
プロジェクトで右クリックし、 C/C++一般→パスおよびシンボル のインクルードタブに
- VC++のインクルードディレクトリ(D:¥Program Files¥Microsoft Visual Studio 9.0¥VC¥include)
- CUDAインクルードディレクトリ
- CUDA SDK インクルードディレクトリ
を追加する。
あるいはnvcc実行時に-Iオプションでインクルードパスを通しても良い。
Windowsの場合kernel32.libをリンクする必要が出るので、nvcc実行時に
-L"C:¥Program Files¥Microsoft SDKs¥Windows¥v6.0A¥Lib" -lkernel32
をつける。(ようにmakefileを書くか、eclipseの方で設定する)