问题标签 [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.
tensorflow - 来自守护进程的错误响应:获取 nvidia_driver_375.66:没有这样的卷:nvidia_driver_375.66
我对 tensorflow 无法在 docker 中使用 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
我应该怎么办?
docker - 主机和docker容器的区别
我一直在尝试训练具有特定架构的 3DCNN 网络。我想创建一个 dockerfile,其中包含使网络正常工作所需的所有步骤。问题是,如果我在主机中运行神经网络网络,我没有问题,一切正常。但是在 docker 容器上做几乎相同的事情我总是得到“分段错误(核心转储)”错误。
两种安装方式并不完全相同,但变化(可能安装了一些额外的软件包)应该不是问题,对吧?此外,在它开始迭代之前我没有任何错误,所以这似乎是一个内存问题。GPU 工作在 docker 容器上,与主机是同一个 GPU。python代码是一样的。
Docker 容器神经网络网络开始使用数据进行训练,但在 epoch 1 出现“分段错误(核心转储)”。
所以我的问题如下:主机和 docker 容器之间是否可能存在重大差异,即使它们安装了完全相同的包?特别是与 tensorflow 和 GPU 有关。因为错误必须来自代码外部,假设代码在类似的环境中工作。
希望我对自己的解释足以说明我的问题,谢谢。
docker - nvidia/cuda 映像中的 NVidia 驱动程序库
nvidia/cuda
我想在基于官方图像的容器中运行带有 cuvid 硬件加速解码的 ffmpeg 。Ffmpeg 无法找到 libnvcuvid.so,尽管有所有必需的 cuda 库。容器的输出ldconfig -p | grep libnv
:
我应该libnvcuvid.so
从主机复制吗?如果底层驱动程序版本发生变化,它不会中断吗?
python - tensorflow nvidia gpu docker image - 如何与anaconda3结合
我按照这篇文章设置了我的 GPU 服务器,安装了 CUDA 并拉取了 nvidia-docker 映像,该映像运行一个启用了 gpu 的 tensorflow 实例并安装了一个 jupyter 笔记本。
但是,我注意到里面没有 anaconda3 以便更新到 python 3.6 并更新所有包。
我无法附加 nividia-docker 映像并安装 anaconda3,因为缺少 wget 下载等所有命令。
我该怎么做或有其他方法吗?
docker - 动态决定在哪个 GPU 上运行 - TF on NVIDIA docker
我有一个模型队列,我只允许并行执行 2 个模型,因为我有 2 个 GPU。为此,在我的代码开头,我尝试使用GPUtil
. --runtime=nvidia
也许它是相关的,这段代码在使用标志启动的 docker 容器中运行。
确定在哪个 GPU 上运行的代码如下所示:
现在,我以这种方式启动了两个脚本(稍有延迟,直到第一个脚本占用了 GPU),但它们都尝试使用同一个 GPU!
我进一步检查了问题 - 我手动设置os.environ['CUDA_VISIBLE_DEVICES'] = '1'
并让模型运行。在训练时,我检查了输出nvidia-smi
并看到以下内容
而且我注意到,虽然我已将可见设备设置为1
它实际上在 0 上运行
我再次强调,我的任务是对多个模型进行排队,每个开始运行的模型都会自行决定使用哪个 GPU。
我探索了allow_soft_placement=True
,但是在两个 GPU 上都分配了内存,所以我停止了这个过程。
最重要的是,我如何确保我的训练脚本只使用一个 GPU,并让他们选择免费的?
docker - 带有tensorflow gpu的docker - 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 编译器驱动程序 版权所有 (c) 2005-2017 NVIDIA Corporation 构建于 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
围棋版本:go1.9.4
Git 提交:7390fc6 内置:2018 年 2 月 27 日星期二 22:17:40
操作系统/架构:linux/amd64
服务器:引擎:版本:17.12.1-ce
API 版本:1.35(最低版本 1.12)
围棋版本:go1.9.4
Git 提交:7390fc6
建成时间:2018 年 2 月 27 日星期二 22:16:13
操作系统/架构:linux/amd64
实验:错误
张量流
1.5 支持 gpu,通过 pip
在 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)"
结果是:
kubernetes - 在 Kubernetes 1.10 中调度 gpus
我按照说明安装了nvidia-docker 2,然后通过 kubeadm(在 rhel7 上)安装了 kubernetes 1.10:我做了以下操作:
我什至可以安排 gpu'd 容器并从容器内查看所有 gpus。
但是,当我部署一个容器时:
豆荚保持为:
描述节目:
我能够将容器调度到没有 gpu 资源限制的节点而不会出现问题。
有没有办法可以验证 kubectl (?) 可以“看到”gpus?
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
- 主机操作系统:Ubuntu 16.04 桌面
- 主机拱门:amd64
我的问题
cifar10_multi_gpu_train (用tensorflow用 python 编写)和简单的 monte-carlo 模拟(用纯 cuda 编写)都无法运行(致命错误:没有 curand.h),而fdm(用纯 cuda 编写)或简单的矩阵乘法(用 python 编写)使用 tensorflow)在容器中工作(tensorflow/tensorflow:nightly-gpu-py3)。
仅使用 CPU 的代码(如a3c)在 tensorflow 上运行良好。
一些使用 GPU 的代码会返回错误消息。(代码使用时<curand.h>
)
细节
在容器 (tensorflow/tensorflow:nightly-gpu-py3) 中,当我运行 monte-carlo 模拟时,出现以下错误:
locate curand.h
什么都不返回,但是当我尝试时locate curand
,我得到:
和locate cudnn.h
:
为locate cuda.h
:
nvcc --version
返回:
在主机(容器外)中,当我尝试时nvidia-docker run nvidia/cuda nvidia-smi
,我得到
我做了什么
重新安装 nvidia-docker、nightly-gpu-py3 和
#include <curand.h>
--> 失败在 nightly-gpu-py3 容器中,重新安装 cuda/cuda 工具并
#include <curand.h>
--> 失败尝试在其他不使用 docker 的机器上运行所有代码,并且已经安装了 cuda/tensorflow-gpu。他们工作正常。
我想我完全误解了 nvidia-docker 的概念以及图像/容器的作用。
问题
- 安装 nvidia-docker 后,我可以使用
nvidia-docker run <myImage>
. docker image不是意味着它可以保存依赖项(PATH,包,...)来运行某个代码(在我的例子中,使用的代码<curand.h>
)?(和容器做实际工作?) - tensorflow/tensorflow:nightly-gpu-py3 图像是否有 CUDA Toolkit/cuDNN?nightly-gpu-py3 中的no 是否
<curand.h>
意味着我不正确地安装/下载了 nvidia-docker/nightly-gpu-py3? - 在容器内安装 CUDA Toolkit 或重新安装 cuda (nightly-gpu-py3) 失败了(我按照这里的流程进行操作)。有什么方法可以
<curand.h>
在容器内使用(nightly-gpu-py3)? sudo nvidia-docker run -it --rm -p 8888:8888 -p 6006:6006 <image> /bin/bash
是我用给定图像启动新容器的命令。会不会是个问题?
docker - 在docker中安装cuda而不提示
我正在尝试使用 docker build 部分中的以下部分构建一个带有 cuda 的 docker 容器
这让我在构建时提示键盘配置。
debconf: unable to initialize frontend:
我怎么能压制这个?还是我做错了?