Ubuntu 16.04 で Caffe をビルドする際の依存関係を解決する方法

Ubuntu 16.04 で Caffe をビルドする際の依存関係を解決する方法

Ubuntu 16.04 の Git チェックアウトから Caffe をビルドしようとしています。

gcc5 の回避策を見つけて hf5 の問題を解決しましたが、現在は行き詰まっています。

依存関係のほとんどは解決しましたが、次の依存関係が残っています。

/usr/bin/ld: warning: libcudart.so.6.5, needed by
/usr/lib/libcaffe.so, not found (try using -rpath or -rpath-link)
/usr/bin/ld: warning: libcublas.so.6.5, needed by
/usr/lib/libcaffe.so, not found (try using -rpath or -rpath-link)
/usr/bin/ld: warning: libcurand.so.6.5, needed by
/usr/lib/libcaffe.so, not found (try using -rpath or -rpath-link)
/usr/bin/ld: warning: libboost_system.so.1.55.0, needed b
/usr/lib/libcaffe.so, may conflict with libboost_system.so.1.58.0
/usr/bin/ld: warning: libboost_thread.so.1.55.0, needed by
/usr/lib/libcaffe.so, not found (try using -rpath or -rpath-link)
/usr/bin/ld: warning: libboost_python-py27.so.1.55.0, needed by
/usr/lib/libcaffe.so, not found (try using -rpath or -rpath-link)

ubuntu 16.04 には boost 1.58 が同梱されており、リポジトリにはまだ 1.55 パッケージがありません。他の boost パッケージを壊さずに、どこで見つけてインストールすればよいか、また、どのようにインストールすればよいか知っている人はいませんか?

また、libcu*ファイルをどこから入手すればよいのかわかりません。

誰かこの問題を回避する方法を考え出した人はいますか? あるいは、この苦痛を軽減するカフェのスナップ パッケージを作成する予定の人はいますか?

編集: 私がこれを実行しているマシンは、Intel 4600 を搭載した Optimus の NVIDIA Corporation GK107GLM [Quadro K1100M] (rev a1) を搭載した Dell Precison M3800 です。

編集: エラー メッセージには -rpath が示されていますが、これを利用する方法について何か提案はありますか?

編集: 今朝 (2016 年 5 月 18 日)、Caffe ソースに対して git pull を実行したところ、Caffe が boost ライブラリの 1.58 バージョンと 7.5 cuda ライブラリに移行したため、システムにインストールされているものを使用しているようです。ただし、これはまだ安定しておらず、コンパイルは警告やエラーのページとともに失敗します。これが修正の始まりであることを願います...

アップデート:

user.dzからのアドバイスに従って、バンドルされたcudaツールを使用しました

apt-get install nvidia-cuda-toolkit 

これはうまくいきました。難しい部分は乗り越えられました! @user.dz さん、ありがとうございます :)

caffe のビルドにはまだ大量のコンパイル エラーがありましたが、これらは Google で検索して回避策の投稿を見つけることで修正できましたが、多すぎて一覧にできません。

これにより、caffe を正常にコンパイルできるようになりました (boost からの警告が多数ありましたが)。これでこの質問への回答は得られたと思います。皆さん、特に user.dz さん、ありがとうございました。

余談として:

私は今、pycaffeをビルドしようとして行き詰まっています。libboost_python3見つかりません。パッケージはインストールされていますが、.so バージョンはなく、.a のみのようです。サポートされていない再配置エラーのため、ビルドが失敗します。何かアイデアはありますか? これについて新しい質問を開始し、リンクを投稿します。

pycaffe がビルドできるようになりました。ちょっとしたシンボリックリンクで修正しました :)

sudo ln -s /usr/lib/x86_64-linux-gnu/libboost_python-py35.so /usr/lib/x86_64-linux-gnu/libboost_python3.so

答え1

  1. それは絶対的なパッケージのようですが、なぜ検索にリストされないのでしょうかパッケージ以下から入手できます:

    http://archive.ubuntu.com/ubuntu/pool/multiverse/n/nvidia-cuda-toolkit/

    それ以外の場合は、古いリリースのリポジトリを探すこともできます。

    http://old-releases.ubuntu.com/ubuntu/pool/universe/n/nvidia-cuda-toolkit/

  2. それらを抽出し、必要な共有オブジェクト(ライブラリ)をコピーします。/usr/local/lib/

Boost ライブラリでも同じことができます。これらのライブラリはバージョン管理されているため、同じシステムに多数配置できます。簡単にインストールできる唯一の制限はパッケージ化で、同じ名前で配置されています。

同じシステムで複数のバージョンが必要であり、広範囲に適用可能であると思われる場合は、バグレポートを提出してください。

答え2

Xenialのlibcudartのライブラリバージョンは7.5代わりにこれらをターゲットにしてみてはいかがでしょうか (libcublas と libcurand についても同様)?

Boostがバージョンアップしました.58. また、(ブート開発者ではない方は、このソルトを受け取ってください)libboost-system-devに加えてインストールする必要がある場合もあります。libboost-thread および libboost-python についても同様です。libbost-system

パッケージを 16.04 に合わせて変更しておらず、代わりにそれらのパッケージ バージョンを持っていると思われる trusty をターゲットにしている可能性が非常に高いです。

関連情報