相关疑难解决方法(0)

如何在与主机内核和GPU驱动程序版本不同的docker镜像中运行GPGPU

我有几台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我的设置:

  1. CPU:Intel Xeon E5-2670
  2. 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

gpu gpgpu docker

15
推荐指数
1
解决办法
1242
查看次数

是否可以将USB设备暴露给LXC/Docker容器?

我有一个Docker文件中包含的嵌入式系统开发映像.为了闪存代码,我需要通过USB Serial(例如/dev/ttyACM0)连接到节点.

使用Docker,我使用了新的绑定装载功能(参见https://github.com/dotcloud/docker/issues/111,-b或者最近的-v选项),将主机devfs暴露给容器.但是,每当我连接("cat/d/ttyACM0",d是对dev的绑定安装)到设备时,我得到"不允许操作".是否有可能不仅绑定mount,而且实际上在容器中使用字符设备?

是否可能通过udev规则公开特定的开发者?

mount udev lxc docker

11
推荐指数
1
解决办法
8035
查看次数

在 docker 容器中使用 GPU - CUDA 版本:N/A 和 torch.cuda.is_available 返回 False

我正在尝试从我的 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)

cuda docker docker-compose pytorch nvidia-docker

10
推荐指数
2
解决办法
7937
查看次数

使用 docker 和 GPU 进行 Pycharm 调试

目标:

为了在 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也已弃用。 …

python nvidia pycharm docker tensorflow

6
推荐指数
2
解决办法
3046
查看次数

如何将有关 GPU 的数据/信息(OpenGL、OpenCL、mesa 等版本)从主机传递到 dockerimagr?

我目前正在运行 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)

opengl vmware gpu x11-forwarding docker

4
推荐指数
1
解决办法
3963
查看次数