LXC 容器内未检测到支持 CUDA 的设备

LXC 容器内未检测到支持 CUDA 的设备

我跟着以下说明并详细阅读官方指南以便在 LXC 容器内设置 Cuda。

当我尝试从官方示例代码中执行示例 ./deviceQuery 脚本时我在主机中获得了 PASS。但是当我执行脚本时在容器中我收到以下错误

$ ./deviceQuery 
./deviceQuery Starting...

 CUDA Device Query (Runtime API) version (CUDART static linking)

cudaGetDeviceCount returned 38
-> no CUDA-capable device is detected
Result = FAIL

Cuda 被识别并安装容器内部

$ nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2015 NVIDIA Corporation
Built on Tue_Aug_11_14:27:32_CDT_2015
Cuda compilation tools, release 7.5, V7.5.17

nVidia 设备已安装主机和 LXC 容器内部

$ ls -l /dev/nvidia*
crw-rw-rw- 1 root root 195,   0 Dec 20 23:31 /dev/nvidia0
crw-rw-rw- 1 root root 195, 255 Dec 20 23:31 /dev/nvidiactl
crw-rw-rw- 1 root root 246,   0 Dec 20 23:31 /dev/nvidia-uvm

当我跑步时sudo nvidia-smi 容器内部我收到以下错误:

Failed to initialize NVML: Unknown Error

如何才能使该设备在容器内可用?

linux/index.html

答案1

我也遇到过同样的问题,我对此写过一篇长文这里

您遇到的问题可能是由于使用了与您的主机不匹配的 LXC 模板造成的。我使用的是基于 Debian 8.6 的 Proxmox 4.4。我的容器基于 Ubuntu 16.04。就像您一样,我在容器中看到了传递的节点作为所有者和群组,不没人:无群组正如预期的那样。

A我偶然发现的论坛帖子启发我基于与我的主机 Debian 8.6 匹配的模板构建了一个新容器。一旦我这样做,节点/dev就归我的 GPU 所有nobody:nogroup,并nvidia-smi正确识别了我的 GPU。

如果您的不匹配,我强烈建议您尝试使它们匹配 - 我知道的唯一方法就是重建它。

相关内容