CUDA4.0RCのインストールでつまづいた
CUDA4.0RCをインストールしてみた。
インストール自体は通常どおりできたがSDKのサンプルプログラムのコンパイルに失敗する。
エラーメッセージは
error: kernel launches from templates are not allowed in system files
どうやらthrust関連のヘッダファイルで問題があるらしい。
原因はよくわからないが、ヘッダファイルの場所を変えることで対処できる。
以下対処方法(の例)。このdiaryはらくがきだから、読みにくいのは仕方がない。
私はcuda toolkitのインストール先を/usr/local/cuda/...にしたので、
thrustは /usr/local/cuda/include/thrust/...のように配置された。
この場所がいけないようだ。例えば、
# cd /usr/local/cuda/include
# mv thrust ../
とthrust関連のファイルを移動するこれでthrustが
/usr/local/cuda/thrust/... と配置される。
次に、サンプルプログラムをビルドするため、common.mkを書き換える。このファイルは
SDKのインストール先/C/common/common.mkにある。
92行目を次のように変更した。
NVCCFLAGS := -I/usr/local/cuda
つまり、インクルードパスをthrustのある位置に指定。
今後、thrustを使う場合はnvccに-I/usr/local/cudaをオプションでつけなければならない。
追記:
考えてみたら、原因がtnrustのヘッダファイルの位置が悪いのか、
それともnvccのコンパイルオプションでヘッダの位置を指定していないから悪いのかを
特定していない。まあ、私の環境では現状動いているようなので調査しない。
追記2:
CUDAをアンインストールしてから、新しくインストールしたら
何も問題が起きなかった。よくわからん。