2013年12月13日金曜日

Mac OS X 10.8.5にCUDA 5.5をインストール

自宅のMacBook Proに,CUDAをインストールしてみた.
GPUがGeForce 320M 250MBなため,あまり無理なことはできないが,お試しでは十分使える.

サンプル実行の際に,
clang: error: unsupported option '-dumpspecs'
というエラーで引っかかったので,対策を書いておいた.


インストール


にしたがって,
  1. XCodeとcommandline toolsのインストール
  2. CUDAのダウンロードとインストール
  3. 環境変数の設定
  4. サンプルプログラムのビルドと実行
を実行した.

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.2
findcudalib.mkは環境変数の値を優先してくれるので,ファイルを書き換えなくてもOK.お手軽.
 ただ,他のプロジェクトでGCCの変数を使っている場合には副作用が出るおそれがあるので注意.その意味でも,nvcc, OS X, clang, and dumpspecsの対策はやめておいたほうがよいかも.

0 件のコメント:

コメントを投稿

幻の黒船カレーを追え

水野仁輔著「幻の黒船カレーを追え」を読んだ 。「 銀座ナイルレストラン物語 」( 読書記録 )を読んで、同じ著者が出しているカレーの物語、ということで本書を読んでみた。  今回の感想はややネタバレ気味なので、新鮮な気持ちで読みたい方は、この先を読む前に、本を読んでほしい。  で...