More Related Content Similar to Caffeインストール (20) More from Kenta Oono (20) Caffeインストール8. インストールスクリプト
• Ubuntu14.04へのCPU Only版Caffeのインス
トールスクリプト( AWS・Ubuntu14.04インス
タンスで確認)
• https://github.com/delta2323/JNNS2015-
tutorial/blob/master/caffe/cpu/install.sh
• 上記スクリプトをubuntuユーザーのホームディ
レクトリに置き、以下のコマンド実⾏行行すると、
caffeユーザー(パスワードはユーザー名と同
⼀一)を作成し、/opt/caffeにCaffeをcaffeユー
ザーでインストールします
• 注意:既存の環境を破壊する可能性があります。
クリーンな環境で実⾏行行してください。
インストール
$ cd
$ sudo bash ./install.sh
exampleの実⾏行行
$ su – caffe # caffeユーザーの変更更
その後「example(MNIST)の実⾏行行」を実⾏行行の
コマンドで実⾏行行
8
10. 1. 依存ライブラリのインストール
• 必要なライブラリ
• apt-getで⼊入るライブラリ群(インストールスクリプトのapt-get installの引数を参照)
• それでは⼊入らないライブラリ群(glog, gflags)
• 理理想的には、「依存ライブラリのインストール」→「Caffeのインストール」ですが、実際には
Caffeのインストール中に⾜足りないライブラリに気づいて後からライブラリを追加でインストー
ルすることになると思います(環境やバージョンによってデフォルトで⼊入っているライブラリが
異異なるため)。
• 「ライブラリが⾒見見つからないというエラーが発⽣生」→「ライブラリ名(⼤大抵はlibXXX.soという名
前)でインターネット検索索してapt-getの引数YYYを⾒見見つける」→ 「sudo apt-get install YYYを
実⾏行行」解決する場合が多いです
10
12. 2. Makefile.configの作成
Caffeの⼊入⼿手
$ cd X # X is the path to directory Caffe is installed
$ git clone https://github.com/BVLC/caffe.git
Makefile.configの作成
$ cd X/caffe
$ cp Makefile.config.example Makefile.config
Makefile.config内の以下のコメント⾏行行を有効化する
# CPU_ONLY := 1 → CPU_ONLY := 1
12
17. Mac OS 10.9以降降でのCaffeのインストール
Q. Mac OS 10.9以降降上でCaffeを簡単にインストールする⽅方法はないか?
A. GPUを使わないならば10.8とほぼ同等の⽅方法でできます
公式サイトのインストール⼿手順にある通り、Mac OS 10.9以降降でのインストール⽅方法は10.8以前とは異異なります。
その原因の⼀一つがデフォルトで使⽤用するC++ライブラリです。Mac OS 10.9ではデフォルトC++コンパイラである
Clang++はlibc++をデフォルトで⽤用いています。しかし、NVIDIAのCUDAはlibstdc++でコンパイルしたライブラリと
しかリンクできません。
回避策は⼤大きく分けて2通りあります。
1. ⼀一つ⽬目はClang++のコンパイラをlibc++からlibstdc++に変更更する⽅方法(本家サイトで紹介されている⽅方法)。
2. (GPUを使⽤用しない場合) 10.8以前の⽅方法にいくつか⼿手順を加える⽅方法。make allを⾏行行う前にMakefile.configを2箇所
修正します( (1)--libstdc++の削除(2)コメントアウトされたCPU_ONLY:=1の有効化) 。NVIDIAのライブラリを使わない
のでデフォルトのライブラリがlibc++でも問題なくCaffeをビルドできます。
17
20. CaffeコミュニティーのAMIを利利⽤用する
• AMI ID : ami-763a311e
• GPUインスタンス(g2.2xlarge or g2.8xlarge)での利利⽤用が仮定されています
• GPUインスタンスはAWSの無料料利利⽤用枠では利利⽤用できないので注意
• 参考:https://github.com/BVLC/caffe/wiki/Caffe-on-EC2-Ubuntu-14.04-Cuda-7
20
22. インストールスクリプト
• Caffeコミュニティーで2通りのコマンドレベルでのインストール⼿手順が紹介されています
• パッケージマネージャー(次スライド参照)を利利⽤用する⽅方法
• https://github.com/BVLC/caffe/wiki/Caffe-on-EC2-Ubuntu-14.04-Cuda-7
• この⽅方法で前述のCaffeコミュニティー版のAMIは作成されています
• runtime file(次スライド参照)を利利⽤用する⽅方法
• https://github.com/BVLC/caffe/wiki/Install-Caffe-on-EC2-from-scratch-(Ubuntu,-
CUDA-7,-cuDNN)
• 前スライドの1-4の全⼿手順が含まれています。
• どちらもcuDNNを利利⽤用します。cuDNNの⼊入⼿手にはNVIDIA Developer Zoneへの登録が必要です
• AWSのGPUインスタンス上で検証されているようなので、⾃自前で⽤用意したマシンで成功するかは
試してみないとわかりません。
22
23. CUDAのインストールに関して
• パッケージマネージャーでのインストールがうまくいくならばそれに越したことはありません
• CUDA Toolkit Documentation 3章に該当
• https://docs.nvidia.com/cuda/cuda-getting-started-guide-for-
linux/index.html#package-manager-installation
• パッケージマネージャーで失敗した場合、runtime fileを⽤用いてインストールを試します
• CUDA Toolkit Documentation 4章に該当
• https://docs.nvidia.com/cuda/cuda-getting-started-guide-for-linux/index.html#runfile
パッケージマネージャー
Ubuntuでいうaptitude、CentOSでいう
yum、MacOSでいうhomebrewのこと23
24. CUDAのインストールで発⽣生するエラー
• マシン・バージョン・デバイス依存が強く、エラーは網羅羅できない
• ⼤大雑把にはエラーは以下の3種類に分類できる
• CUDAのインストールに失敗する
• 明⽰示的なエラーが起こる場合と、⼀一⾒見見成功するが必要なコマンドが打てない場合がある
• CUDAインストールには成功するが、OSがGPUを認識識できない
• nvidia-smiコマンドが成功すれば⼤大丈夫な事が多い
• OSがGPUを認識識するが、CaffeからGPUを利利⽤用できない
• Caffeの適当なexampleを実⾏行行して動けばOKなことが多い
nvidia-smi:NVIDIAのGPUを管理理するツール or
そのツールで提供されているコマンドのこと
https://developer.nvidia.com/nvidia-system-
management-interface24
27. 環境変数関係
• LIBRARY_PATH / LD_LIBRARY_PATH:ライブラリの検索索パス
• LIBRARY_PATH:gccが(静的or共有)ライブラリをリンクする際の検索索パス
• LD_LIBRARY_PATH:実⾏行行時の共有ライブラリ(.so)の検索索パス
• LD_LIBRARY_PATHとLIBRARY_PATHの違い
• http://stackoverflow.com/questions/4250624/ld-library-path-vs-library-path
• ⼤大雑把な指針
• コンパイル時にライブラリが⾒見見つからないエラー → LIBRARY_PATHが怪しい
• 実⾏行行時にライブラリが⾒見見つからないエラー → LD_LIBRARY_PATHが怪しい
27
28. 共有ライブラリ関係
• ldd/ldconfig:共有ライブラリの依存関係を管理理するコマンド群
• ldd : プログラムが依存している共有ライブラリを表⽰示
• ldd /usr/bin/lsをしてみると何やっているかわかる
• ldconfig : 共有ライブラリの依存関係を解決する
• 引数なし実⾏行行で/etc/ld.so.confで指定されたディレクトリ、 /lib、/usr/libから必要な共
有ライブラリを検索索し、結果を/etc/ld.so.cacheにキャッシュする
• キャッシュしているので、リストが更更新されたらキャッシュを再⽣生成が必要
• 共有ライブラリ関係をいじってうまく動かなかったらとりあえず実⾏行行してみるとよい
• ライブラリに関するチュートリアル
• http://www.linuxmaster.jp/linux_skill/2011/03/22linux.html28
29. エラー対処例例
• プログラム実⾏行行時にプログラム(A)が共有ライブラリ(B)を⾒見見つけられないというエラー
A: error while loading shared libraries: libB.so.X: cannot open shared object file: No such file or
directory
0. lddコマンドでプログラムAが依存している共有ライブラリを調べ、確かに共有ライブラリBが⾒見見
つかっていないことを確認する
1. /etc/ld.so.cacheが更更新されていない可能性があるのでldconfigコマンドで更更新する
2. 共有ライブラリBが存在するディレクトリ(C)を調べる
以下のどちらかで対処(2-1は全ユーザーに影響を及ぼすので、まずは2-2を試すべき)
3-1. LD_LIBRARY_PATHにディレクトリへのパスCを追加する
3-2. /etc/ld.so.confにディレクトリへのパスCを追加し、ldconfigコマンドで検索索パスを更更新する
29