問題タブ [nvidia-docker]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
146 参照

tensorflow - デーモンからのエラー応答: nvidia_driver_375.66 を取得: そのようなボリュームはありません: nvidia_driver_375.66

docker で tensorflow が GPU を使用できないというトラブルシューティングを進めました。nvidia ドライバーの DSO ファイルが 375.66 であり、現在のバージョン 375.26 と互換性がないことがわかりました。だから私は dir を削除しました/var/lib/nvidia-docker/volumes/nvidia_driver/367.66。しかし、コンテナを閉じると、再度実行することはできません。

nvidiaドライバー、cuda、nvidia-dockerを何度も再インストールします。コンテナーを起動すると、常にエラーが表示されます。 Error response from daemon: get nvidia_driver_375.66: no such volume: nvidia_driver_375.66

私は何をすべきか?

0 投票する
1 に答える
2526 参照

docker - 実行する GPU を動的に決定する - NVIDIA docker の TF

モデルのキューがありますが、GPU が 2 つあるため、並行して実行できるのは 2 つだけです。そのために、コードの最初で、 を使用してどの GPU が利用可能かを判断しようとしますGPUtil--runtime=nvidia関連するかもしれませんが、このコードは、フラグを使用して起動された docker コンテナー内で実行されます。

どの GPU で実行するかを決定するコードは、次のようになります。

さて、この方法で 2 つのスクリプトを起動しました (最初のスクリプトが GPU を占有するまで少し遅れました) が、両方とも同じ GPU を使用しようとしました!

さらに問題を調査しました。手動で を設定しos.environ['CUDA_VISIBLE_DEVICES'] = '1'、モデルを実行させました。トレーニングだったので、出力を確認しnvidia-smiたところ、次のようになりました

1そして、可視デバイスを に設定している間、実際には 0 で実行されていることに気付きました

繰り返しますが、私の使命は、実行を開始する各モデルが使用する GPU を自分で決定する複数のモデルをキューに入れることです。

を調べましallow_soft_placement=Trueたが、両方の GPU にメモリが割り当てられたので、プロセスを停止しました。

要するに、トレーニング スクリプトが 1 つの GPU のみを使用し、無料の GPU を選択するようにするにはどうすればよいでしょうか?

0 投票する
2 に答える
5351 参照

docker - docker with tensorflow gpu - ImportError: libcublas.so.9.0: 共有オブジェクト ファイルを開けません: そのようなファイルやディレクトリはありません

Nvidia GPU を使用して tensorflow で docker を実行しようとしていますが、コンテナーを実行すると次のエラーが発生します。

Docker-compose

私のドッカー構成ファイルは次のようになります。

ご覧のとおり、ホスト cuda を docker コンテナーにマップするボリュームを用意しようとしましたが、これは役に立ちませんでした。

私は正常に実行できますnvidia-docker run --rm nvidia/cuda nvidia-smi

バージョン

クーダ

cat /usr/local/cuda/version.txt は CUDA バージョン 9.0.176 を示します

nvcc -V

nvcc -V nvcc: NVIDIA (R) Cuda コンパイラ ドライバ Copyright (c) 2005-2017 NVIDIA Corporation Build on Fri_Sep__1_21:08:03_CDT_2017 Cuda コンパイル ツール、リリース 9.0、V9.0.176

nvidia-docker バージョン

NVIDIA Docker: 2.0.3 クライアント: バージョン: 17.12.1-ce

API バージョン: 1.35

Go バージョン: go1.9.4

Git コミット: 7390fc6 ビルド: 2018 年 2 月 27 日火曜日 22:17:40

OS/アーチ: linux/amd64

サーバー: エンジン: バージョン: 17.12.1-ce

API バージョン: 1.35 (最小バージョン 1.12)

Go バージョン: go1.9.4

Git コミット: 7390fc6

ビルド: 2018 年 2 月 27 日 (火) 22:16:13

OS/アーチ: linux/amd64

実験的: false

テンソルフロー

1.5、pip 経由で GPU をサポート

Docker とホストの Tensorflow を使用したテスト

ホスト上で実行すると、次のように動作します。

コンテナを実行

nvidia-docker run -d --name testtfgpu -p 8888:8888 -p 6006:6006 gcr.io/tensorflow/tensorflow:latest-gpu

ログイン

nvidia-docker exec -it testtfgpu bash

Tensorflow のバージョンをテストする

pip show tensorflow-gpuショー:

pip show tensorflow-gpu Name: tensorflow-gpu Version: 1.6.0 Summary: TensorFlow helps the tensors flow Home-page: https://www.tensorflow.org/ Author: Google Inc. Author-email: opensource@google.com License: Apache 2.0 Location: /usr/local/lib/python2.7/dist-packages Requires: astor, protobuf, gast, tensorboard, six, wheel, absl-py, backports.weakref, termcolor, enum34, numpy, grpcio, mock

パイソン 2

python -c "import tensorflow as tf; print(tf.GIT_VERSION, tf.VERSION)"

結果:

パイソン3

python3 -c "import tensorflow as tf; print(tf.GIT_VERSION, tf.VERSION)"

結果:

0 投票する
0 に答える
1269 参照

docker - nvidia-docker コンテナーで GPU を使用してコードを実行できませんでした。(毎晩-gpu-py3)

docker とは何か、使い方は独学で学んでいます。私はdockerを初めて使用するので、ここでいくつかの基本を学びたいと思っています。

nvidia-docker (インストール ガイドに従って) と tensorflow/tensorflow:nightly-gpu-py3 ( nightly-gpu、GPU (CUDA) コンテナーを開始) をコンピューターにインストールしました。

  • Docker: NVIDIA Docker 2.0.3、バージョン: 17.12.1-ce
  • ホスト OS: Ubuntu 16.04 デスクトップ
  • ホスト アーチ: amd64

私の問題

cifar10_multi_gpu_train ( tensorflowを使用して Python で記述) と単純なモンテカルロ シミュレーション (純粋な cuda で記述) の両方が実行に失敗します (致命的なエラー: curand.h がありません) fdm (純粋な cuda で記述) または単純な行列乗算 (python で記述) tensorflow を使用) コンテナー内で動作します (tensorflow/tensorflow:nightly-gpu-py3)。

CPU のみを使用するコード ( a3cなど) は、テンソルフローで正常に動作します。

GPU を使用する一部のコードは、エラー メッセージを返します。(コード使用時<curand.h>)

詳細

コンテナー (tensorflow/tensorflow:nightly-gpu-py3) で、モンテカルロ シミュレーションを実行すると、次のエラーが発生します。


locate curand.h何も返しませんが、試してみるlocate curandと次のようになります。

およびlocate cudnn.h:

の場合locate cuda.h:


nvcc --version戻り値:


ホスト(コンテナの外側)で、試してみるとnvidia-docker run nvidia/cuda nvidia-smi

私がしたこと

  1. nvidia-docker、nightly-gpu-py3 を再インストールして#include <curand.h>--> 失敗しました

  2. nightly-gpu-py3 コンテナーで、cuda/cuda ツールキを再インストールして#include <curand.h>--> 失敗しました

  3. docker を使用しない他のマシンですべてのコードを実行しようとしましたが、cuda/tensorflow-gpu は既にインストールされています。彼らは正常に動作します。

nvidia-docker の概念とイメージ/コンテナーの機能を完全に誤解していると思います。

質問

  1. nvidia-docker をインストールしたら、nvidia-docker run <myImage>. Dockerイメージは、依存関係(PATH、パッケージなど)を保存して特定のコード(私の場合は、を使用するコード)を実行できることを意味していません<curand.h>か?(そしてコンテナは実際の仕事をしますか?)
  2. tensorflow/tensorflow:nightly-gpu-py3 イメージには CUDA Toolkit/cuDNN がありますか? nightly-gpu-py3の no<curand.h>は、nvidia-docker/nightly-gpu-py3 を不適切にインストール/ダウンロードしたことを意味しますか?
  3. コンテナ (nightly-gpu-py3) 内での CUDA ツールキットのインストールまたは cuda の再インストールが失敗しました (ここのプロセスに従いました)。<curand.h>コンテナー (nightly-gpu-py3) 内で使用できる方法はありますか?
  4. sudo nvidia-docker run -it --rm -p 8888:8888 -p 6006:6006 <image> /bin/bash指定されたイメージで新しいコンテナーを開始するコマンドです。それは問題になるでしょうか?