2010年1月15日金曜日

eclipseでCUDA

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のコントロールパネル→システム→詳細設定→環境変数 で、
  1. makeコマンドへのパス(d:¥msys¥1.0¥bin)
  2. nvccコマンドへのパス(D:¥CUDA¥bin)
  3. 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++一般→パスおよびシンボル のインクルードタブに
  1. VC++のインクルードディレクトリ(D:¥Program Files¥Microsoft Visual Studio 9.0¥VC¥include)
  2. CUDAインクルードディレクトリ
  3. CUDA SDK インクルードディレクトリ
を追加する。 
あるいはnvcc実行時に-Iオプションでインクルードパスを通しても良い。


  • ライブラリへのパスを通す
Windowsの場合kernel32.libをリンクする必要が出るので、nvcc実行時に
-L"C:¥Program Files¥Microsoft SDKs¥Windows¥v6.0A¥Lib" -lkernel32
をつける。(ようにmakefileを書くか、eclipseの方で設定する)

0 件のコメント:

コメントを投稿