Rapids / docker:无法选择具有功能的设备驱动程序“”:[[gpu]]

Posted

技术标签:

【中文标题】Rapids / docker:无法选择具有功能的设备驱动程序“”:[[gpu]]【英文标题】:Rapids / docker: could not select device driver "" with capabilities: [[gpu]] 【发布时间】:2020-08-24 15:32:53 【问题描述】:

我是 Rapids 的新手,很少有使用 conda 的良好体验。所以我正在尝试使用容器化版本。我是 Docker 新手,未知的组合让我无法解决问题。

我有一个 Ubuntu 18.04 服务器,

# uname -v
#30~18.04.1-Ubuntu SMP Fri Jan 17 06:14:09 UTC 2020

我在上面安装了新版本的 Docker

# apt-get install docker docker-ce docker-ce-cli containerd.io
# docker --version
Docker version 19.03.8, build afacb8b7f0

本机安装了cuda v10.2

# nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2019 NVIDIA Corporation
Built on Wed_Oct_23_19:24:38_PDT_2019
Cuda compilation tools, release 10.2, V10.2.89

和 Python v3.6.9

# python3 --version
Python 3.6.9

如NVIDIA Container Toolkit Quickstart部分所示,我将nvidia-docker列表安装到/etc/apt/sources.list.d/

# curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
# curl -s -L https://nvidia.github.io/nvidia-docker/ubuntu18.04/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list

明确地将ubuntu18.04 替换为$distribution,因为那是Ubuntu equivalent for Linux Mint 19.3。

按照RAPIDS - Open GPU Data Science 中的启动容器和笔记本服务器说明,我提取了 0.13-cuda10.2-runtime-ubuntu18.04-py3.6 运行时。

# docker pull rapidsai/rapidsai:0.13-cuda10.2-runtime-ubuntu18.04-py3.6

很长一段时间,几 GB 之后,一切似乎都还好。 (没有警告或错误消息。)此外,该图像看起来像是在 Docker 中注册的。

# docker images -a
REPOSITORY          TAG                                       IMAGE ID            CREATED             SIZE
rapidsai/rapidsai   0.13-cuda10.2-runtime-ubuntu18.04-py3.6   c7440af853b5        4 days ago          9.26GB
rapidsai/rapidsai   cuda10.2-runtime-ubuntu18.04-py3.6        c7440af853b5        4 days ago          9.26GB

但是,我接下来尝试启动笔记本服务器:

# docker run --gpus all --rm -it -p 8888:8888 -p 8787:8787 -p 8786:8786 \
       rapidsai/rapidsai:cuda10.0-runtime-ubuntu18.04-py3.6
docker: Error response from daemon: could not select device driver "" with capabilities: [[gpu]].

这似乎令人惊讶,因为检测到了两个 GTX 1080 Ti GPU

# nvidia-smi
Fri May  8 16:41:57 2020       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 440.33.01    Driver Version: 440.33.01    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...  On   | 00000000:08:00.0 Off |                  N/A |
| 21%   38C    P8    10W / 250W |      1MiB / 11178MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
|   1  GeForce GTX 108...  On   | 00000000:42:00.0 Off |                  N/A |
| 23%   42C    P8    10W / 250W |      1MiB / 11177MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+

收拾东西后

# docker system prune -a
# apt-get purge docker docker-engine docker.io containerd runc    

我重新安装了 docker 并再次拉取了 rapidsai 镜像。结果没有改变。

与 NVIDIA Driver Version: 440.33.01 是否有冲突?

有什么建议吗?

【问题讨论】:

【参考方案1】:

感谢您试用 RAPIDS。你碰巧安装了nvidia-container-toolkit吗? https://github.com/NVIDIA/nvidia-docker#quickstart。我没有在您的步骤中看到这一点,错过它可能会导致该问题。这是我们在https://rapids.ai/start.html上的先决条件

【讨论】:

安装后别忘了重启docker:sudo systemctl restart docker【参考方案2】:

来自NVIDIA CUDA/WSL 2 documentation:

使用 Docker 安装脚本为您选择的 WSL 2 Linux 发行版安装 Docker。请注意,NVIDIA Container Toolkit 尚不支持Docker Desktop WSL 2 后端。

【讨论】:

【参考方案3】:

我只是按照pdf 中的步骤进行操作;它工作正常:

要卸载以前的 nvidia-docker 软件包,请发出以下命令:

[user@gpu1 ~]# docker volume ls -q -f driver=nvidia-docker | xargs -r -I -n1 docker ps -q -a -f volume= | xargs -r docker rm –f
[user@gpu1 ~]# sudo apt-get remove nvidia-docker

要安装 NVIDIA-GPU Docker Container Toolkit,首先需要添加包存储库:

user@ubuntu-gpu1:~# distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
user@ubuntu-gpu1:~# curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
user@ubuntu-gpu1:~# curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
user@ubuntu-gpu1:~# sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit
user@ubuntu-gpu1:~# sudo systemctl restart docker

然后使用最新的官方 CUDA 映像验证 nvidia-smi 安装:

user@ubuntu-gpu1:~# sudo docker run -it --rm --gpus all nvidia/cuda:9.0-base nvidia-smi

【讨论】:

【参考方案4】:

试试这个

sudo apt install -y nvidia-docker2
sudo systemctl daemon-reload
sudo systemctl restart docker

【讨论】:

以上是关于Rapids / docker:无法选择具有功能的设备驱动程序“”:[[gpu]]的主要内容,如果未能解决你的问题,请参考以下文章

无法使用 rapids.ai 版本 21.08 将 cudf、cupy 和 cuml 安装到 colab 中

基于 NVIDIA GPU 和 RAPIDS 加速 Spark 3.0

在 Ubuntu 上安装 CUDA + RAPIDS - “没有可用的内核映像”

Python 实用技能 RAPIDS | 利用 GPU 加速数据科学工作流程

Python 实用技能 RAPIDS | 利用 GPU 加速数据科学工作流程

Dask-Rapids 数据移动和内存不足问题