我开始使用NVIDIA GPU CLOUD深度学习平台.我尝试拉入控制台(命令提示符):
docker pull nvcr.io/nvidia/pytorch:17.10
Run Code Online (Sandbox Code Playgroud)
并得到消息:
Error response from daemon: Get https://nvcr.io/v2/: unauthorized: authentication required
Run Code Online (Sandbox Code Playgroud)
我的错是什么?
我正在尝试从Pycharm IDE内部使用tensorflow提供的启用gpu的docker映像运行一个简单的tensorflow示例。一切正常,除了运行时,tensorflow不会从容器中检测到GPU,而是默认返回到CPU:
tensorflow/stream_executor/cuda/cuda_driver.cc:318] failed call to cuInit:
Run Code Online (Sandbox Code Playgroud)
运行:Ubuntu 18.04.3 Docker 19.03.3最新版本的NVIDIA Docker支持如下:https : //github.com/NVIDIA/nvidia-docker
我已经使用远程解释器功能设置了Pycharm项目以运行image:tensorflow:latest-gpu
如果我使用以下命令从命令行运行容器:
docker run --gpus all --rm tensorflow/tensorflow:latest-gpu nvidia-smi
Run Code Online (Sandbox Code Playgroud)
我得到这个:
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 430.26 Driver Version: 430.26 CUDA Version: 10.2 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 GeForce GTX 108... Off | 00000000:41:00.0 On | N/A |
| 28% 26C P8 9W / 250W | …Run Code Online (Sandbox Code Playgroud) 使用 Nvidia-docker 运行时在 docker-container 中运行(保持所有 python 版本相同),然后在本地执行时,运行下面的代码片段需要两倍的时间。
我尝试了各种不同的基础映像,但它们的运行时间相似(较慢)。我原以为在 Docker 容器内运行代码不会影响运行时性能?所以我觉得我错过了一些东西。
import numpy as np
from time import time
import torch
def run():
print("doing run")
random_data = []
for _ in range(320):
random_data.append(np.random.randint(256, size=(1, 84, 84)))
tensor = torch.tensor(random_data, device="cuda")
print(tensor.shape)
n_runs = int(1e3)
runtimes = []
for i in range(n_runs):
start = time()
run()
end = time()
took = end-start
runtimes.append(took)
print(f"It took {took} second")
print("====")
print(f"avg_runtime: {np.average(runtimes)}")
Run Code Online (Sandbox Code Playgroud) 我正在使用 nvidia 预构建的 docker 容器NVIDIA Release 20.12-tf2来运行我的实验。我正在使用TensorFlow Version 2.3.1. 目前,我在其中一个 GPU 上运行我的模型,我还有 3 个空闲的 GPU,所以我打算在任何空闲的 GPU 上使用我的替代实验。这是输出nvidia-smi:
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 450.51.06 Driver Version: 450.51.06 CUDA Version: 11.1 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|===============================+======================+======================|
| 0 Tesla T4 Off | 00000000:6A:00.0 Off | 0 |
| N/A 70C P0 71W …Run Code Online (Sandbox Code Playgroud) 我想用docker-compose运行2个docker图像.
一个图像应该与nvidia-docker一起运行,另一个图像应该与docker一起运行.
我看过这篇文章使用nvidia-docker-compose启动一个容器,但很快就退出了,但这 对我不起作用(甚至没有只运行一个图像)...
任何想法都会很棒.
我正在尝试让 nvidia 硬件加速在 Docker 容器内运行。到目前为止,我没有成功。运行时glxgears出现以下错误。
root@fea7a51ac757:/# glxgears
libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast
X Error of failed request: BadValue (integer parameter out of range for operation)
Major opcode of failed request: 154 (GLX)
Minor opcode of failed request: 3 (X_GLXCreateContext)
Value in failed request: 0x0
Serial number of failed request: 35
Current serial number in output stream: 37
Run Code Online (Sandbox Code Playgroud)
我的 docker 文件看起来像这样
FROM osrf/ros:lunar-desktop-full
# nvidia-docker hooks
LABEL com.nvidia.volumes.needed="nvidia_driver"
ENV …Run Code Online (Sandbox Code Playgroud) 您好,我正在尝试在 GPU NVIDIA GEOFORCE 3050 RTX 上运行光栅视觉管道。
但是当我像这样运行 Docker 容器时: sudo docker run --rm --runtime=nvidia --gpus all -it -v ${RV_QUICKSTART_CODE_DIR}:/opt/src/code -v ${RV_QUICKSTART_OUT_DIR}:/opt/数据/输出 quay.io/azavea/raster-vision:pytorch-0.20 /bin/bash
该模型不会训练并输出此错误: RuntimeError: CUDA error: no kernel image is available forexecution on the device CUDA 内核错误可能会在某些其他 API 调用中异步报告,因此下面的堆栈跟踪可能不正确。对于调试,请考虑传递 CUDA_LAUNCH_BLOCKING=1。
PD:运行nvidia-smi输出GPU的特征,意味着它被识别。我非常感谢在这个问题上的一些帮助。谢谢!
这是我得到的输出:
`Skipping 'analyze' command...
python -m rastervision.pipeline.cli run_command /opt/data/output/pipeline-config.json train
Running train command...
2023-03-09 08:53:29:rastervision.pytorch_learner.learner: INFO - Building datasets ...
2023-03-09 08:53:29:rastervision.core.data.raster_source.rasterio_source: WARNING - Raster block size (2, 650) is too non-square. This can …Run Code Online (Sandbox Code Playgroud) 我按照官方文档https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html中的说明安装 nvidia-docker2
每当我运行他们的测试示例时:
sudo docker run --rm --gpus all nvidia/cuda:11.6.2-base-ubuntu20.04 nvidia-smi
Run Code Online (Sandbox Code Playgroud)
我仍然收到错误:
docker: Error response from daemon: could not select device driver "" with capabilities: [[gpu]]. 3
Run Code Online (Sandbox Code Playgroud)
我重启了还是没有效果。
我使用的是 Ubuntu 22.04,并且我的 nvidia 驱动程序已更新。Nvidia-smi 在机器上工作但无法使用 docker 工作
编辑(已解决):最后我发现发生了什么事。重新安装时,它可以工作,但是如果重新启动,它又会回到之前不工作的状态。
这是由于使用“snapd”安装了另一个 docker 服务,所以我必须完全清除 docker:
sudo snap remove docker在我可以“重新安装所有内容”之后,它最终稳定下来,即使在重新启动后也是如此
我的docker映像大小为17 GB。我运行了映像并删除了Docker容器中的4GB文件夹。提交容器后,创建的新映像也为17 GB。这怎么可能?
docker docker-compose docker-machine docker-build nvidia-docker
我遇到了 K8S+DinD 问题:
could not select device driver "nvidia" with capabilities: [[gpu]]完全错误
http://localhost:2375/v1.40/containers/long-hash-string/start: Internal Server Error ("could not select device driver "nvidia" with capabilities: [[gpu]]")
Run Code Online (Sandbox Code Playgroud)
execK8S pod 内的 DinD 映像nvidia-smi不可用。
一些调试,似乎是由于 DinD 缺少 Nvidia-docker-toolkit,当我直接在本地笔记本电脑 docker 上运行相同的作业时,我遇到了相同的错误,我通过安装nvidia-docker2 sudo apt-get install -y nvidia-docker2修复了相同的错误。
我想也许我可以尝试将 nvidia-docker2 安装到 DinD 19.03 (docker:19.03-dind),但不知道该怎么做?通过多阶段 docker 构建?
非常感谢!
更新:
吊舱规格:
spec:
containers:
- name: dind-daemon
image: docker:19.03-dind
Run Code Online (Sandbox Code Playgroud) 在尝试在 docker 容器的构建命令中编译暗网时,我经常遇到异常include/darknet.h:11:30: fatal error: cuda_runtime.h: No such file or directory。
我正在根据此处的说明构建容器:https : //github.com/NVIDIA/nvidia-docker/wiki/Deploy-on-Amazon-EC2。我有一个简单的Dockerfile我正在测试 - 相关部分:
FROM nvidia/cuda:9.2-runtime-ubuntu16.04
...
WORKDIR /
RUN apt-get install -y git
RUN git clone https://github.com/pjreddie/darknet.git
WORKDIR /darknet
# Set OpenCV makefile flag
RUN sed -i '/OPENCV=0/c\OPENCV=1' Makefile
RUN sed -i '/GPU=0/c\GPU=1' Makefile
#RUN ln -s /usr/local/cuda-9.2 /usr/local/cuda
# HERE I have been playing with commands to show me the state of the docker image to try to troubleshoot the …Run Code Online (Sandbox Code Playgroud) 我在理解 cuda 和 docker 生态系统时遇到问题。
在主机(ubuntu 22.04)服务器上,我想生成多个机器学习 Jupyter 笔记本。
如果我在主机 ubuntu 中仅安装 Nvidia 驱动程序就足够了,如下所示:
sudo apt-get install linux-headers-$(uname -r)
DISTRIBUTION=$(. /etc/os-release;echo $ID$VERSION_ID | sed -e 's/\.//g')
echo $DISTRIBUTION
wget https://developer.download.nvidia.com/compute/cuda/repos/$DISTRIBUTION/x86_64/cuda-keyring_1.0-1_all.deb
sudo dpkg -i cuda-keyring_1.0-1_all.deb
sudo apt-get update
sudo apt-get -y install cuda-drivers
sudo reboot
#After reboot verify if the CUDA driver is installed:
nvidia-smi
Run Code Online (Sandbox Code Playgroud)
然后cuda像这样安装在容器中:
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-ubuntu2204.pin
sudo mv cuda-ubuntu2204.pin /etc/apt/preferences.d/cuda-repository-pin-600
sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/3bf863cc.pub
sudo add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/ /"
sudo apt-get update
sudo apt-get -y install …Run Code Online (Sandbox Code Playgroud) nvidia-docker ×12
docker ×8
nvidia ×3
ubuntu ×3
cuda ×2
gpu ×2
pytorch ×2
tensorflow ×2
darknet ×1
docker-build ×1
kubernetes ×1
pycharm ×1
python ×1
ros ×1
runtime ×1