自宅のMacBook Proに,CUDAをインストールしてみた.
GPUがGeForce 320M 250MBなため,あまり無理なことはできないが,お試しでは十分使える.
サンプル実行の際に,
clang: error: unsupported option '-dumpspecs'
というエラーで引っかかったので,対策を書いておいた.
インストール
にしたがって,
- XCodeとcommandline toolsのインストール
- CUDAのダウンロードとインストール
- 環境変数の設定
- サンプルプログラムのビルドと実行
を実行した.
1から3までは,そのままで動いたが,4はエラーが出たため,少し変更が必要だった.
現象
/Developer/NVIDIA/CUDA-5.5/samples/
で
make
を実行すると"-dumpspecs"オプションはサポートしていないというエラーが出る
/Developer/NVIDIA/CUDA-5.5/bin/nvcc -ccbin g++ -I../../common/inc -m64 -Xcompiler -arch -Xcompiler x86_64 -gencode arch=compute_10,code=sm_10 -gencode arch=compute_20,code=sm_20 -gencode arch=compute_30,code=sm_30 -gencode arch=compute_35,code=\"sm_35,compute_35\" -o asyncAPI.o -c asyncAPI.cu
clang: error: unsupported option '-dumpspecs'
clang: error: no input files
make[1]: *** [asyncAPI.o] Error 1
make: *** [0_Simple/asyncAPI/Makefile.ph_build] Error 2
原因
検索してみると,下記の2つのサイトが見つかった.
よくわかっていないのだけれど,g++のバイナリが複数あり,デフォルトで参照するg++は,上記のオプションに対応していない様子.もう一方に変えればうまくいくとのこと.
対策
デフォルトでは
GCC=g++となっている環境変数GCCの値を,/usr/bin/llvm-g++-4.2に変更する.
具体的な作業としては1)か2)を実行する.おすすめは2).
1)各プロジェクトのfindcudalib.mkを下記のように編集する.
旧:GCC ?= g++
新:GCC = /usr/bin/llvm-g++-4.2
2) シェルで環境変数を宣言する.
export GCC=/usr/bin/llvm-g++-4.2findcudalib.mkは環境変数の値を優先してくれるので,ファイルを書き換えなくてもOK.お手軽.
ただ,他のプロジェクトでGCCの変数を使っている場合には副作用が出るおそれがあるので注意.その意味でも,nvcc, OS X, clang, and dumpspecsの対策はやめておいたほうがよいかも.
0 件のコメント:
コメントを投稿