我有几台GPU的机器.我的想法是将它们附加到不同的docker实例,以便在CUDA(或OpenCL)计算中使用这些实例.
我的目标是使用相当老的Ubuntu和相当老的AMD视频驱动程序(13.04)设置docker镜像.原因很简单:升级到更新版本的驱动程序将破坏我的OpenCL程序(由于有缺陷的AMD Linux驱动程序).
所以问题是如下.是否可以使用旧的Ubuntu,旧内核(例如3.14)和旧的AMD(fglrx)驱动程序在新的Arch Linux安装程序中运行docker镜像,并fglrx在存储库中安装新的内核4.2和更新的AMD()驱动程序?
PS我尝试了这个答案(使用Nvidia卡),不幸的是deviceQuery在docker图像中没有看到任何CUDA设备(因为它发生了一些原始答案的评论员)...
PPS我的设置:
GPU的:
1 x Radeon HD 7970
$ lspci -nn | grep Rad
83:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] [1002:6798]
83:00.1 Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI] Tahiti XT HDMI Audio [Radeon HD 7970 Series] [1002:aaa0]
Run Code Online (Sandbox Code Playgroud)2 x GeForce GTX Titan Black
我有一个Docker文件中包含的嵌入式系统开发映像.为了闪存代码,我需要通过USB Serial(例如/dev/ttyACM0)连接到节点.
使用Docker,我使用了新的绑定装载功能(参见https://github.com/dotcloud/docker/issues/111,-b或者最近的-v选项),将主机devfs暴露给容器.但是,每当我连接("cat/d/ttyACM0",d是对dev的绑定安装)到设备时,我得到"不允许操作".是否有可能不仅绑定mount,而且实际上在容器中使用字符设备?
是否可能通过udev规则公开特定的开发者?
我正在尝试从我的 docker 容器内部使用 GPU。我在 Ubuntu 18.04 上使用版本为 19.03 的 docker。
如果我运行 nvidia-smi,在 docker 容器之外,我会得到以下输出。
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 450.51.05 Driver Version: 450.51.05 CUDA Version: 11.0 |
|-------------------------------+----------------------+----------------------+
| 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 On | 00000000:00:1E.0 Off | 0 |
| N/A 30C P8 9W / 70W | 0MiB / 15109MiB | 0% Default …Run Code Online (Sandbox Code Playgroud) 为了在 PyCharm 中调试 Python 应用程序,我将解释器设置为自定义 docker 映像,使用 Tensorflow,因此需要 GPU。据我所知,问题在于 PyCharm 的命令构建并没有提供发现可用 GPU 的方法。
使用以下命令输入容器,指定要使用的 GPU ( --gpus):
docker run -it --rm --gpus=all --entrypoint="/bin/bash" 3b6d609a5189 # image has an entrypoint, so I overwrite it
Run Code Online (Sandbox Code Playgroud)
在容器内,我可以运行nvidia-smi查看是否找到 GPU,并使用以下命令确认 Tensorflow 找到它:
from tensorflow.python.client import device_lib
device_lib.list_local_devices()
# physical_device_desc: "device: 0, name: Quadro P2000, pci bus id: 0000:01:00.0, compute capability: 6.1"]
Run Code Online (Sandbox Code Playgroud)
如果我不使用该--gpus标志,则不会像预期的那样发现任何 GPU。注意:使用 docker 版本 19.03 及更高版本,原生支持 Nvidia 运行时,因此不需要nvidia-docker,而且 docker-run 参数--runtime=nvidia也已弃用。 …
我目前正在运行 Ubuntu 16.04.2,这是一个相当新的安装,足以开始编程。我确实有一张 r9 390 AMD 卡,它的 AMD 驱动程序存在很多问题,但我认为这不是问题。
我使用以下代码片段创建了一个 dockerfile:
FROM ubuntu:16.04
.....
ENV DEBIAN_FRONTEND noninteractive
RUN apt-get update && apt-get install -y --no-install-recommends apt-utils
WORKDIR /buildls
CMD ["bash"]
RUN apt-get install -y x11-apps
RUN apt-get install -y libcanberra-gtk*
RUN apt-get -y install libglfw3-dev
RUN apt-get -y install libglew-dev
RUN apt-get -y install mesa-utils
.......
Run Code Online (Sandbox Code Playgroud)
构建后,我运行它:
docker run -it `#container process` \
-v /tmp/.X11-unix:/tmp/.X11-unix `#Allows the X11 server to be shared (GUI)` \
-v $(pwd)/volume:/app `#Shares a folder, one …Run Code Online (Sandbox Code Playgroud)