让 Docker 在 mac 上识别 nvidia 显卡

Posted

技术标签:

【中文标题】让 Docker 在 mac 上识别 nvidia 显卡【英文标题】:Getting Docker to recognize nvidia graphics card on mac 【发布时间】:2015-09-25 13:54:57 【问题描述】:

当我在容器中时,我会运行

 lspci | grep -i nvidia

什么都没有显示。

当我从 NVIDIA 提供的示例中运行 ./deviceQuery 时,我得到了

 no CUDA-capable device is detected 

我知道我的 Mac 上有一个 nvidia 驱动程序。我只是不知道如何让我的 docker 容器实现这一点。

【问题讨论】:

【参考方案1】:

在 OS X 上,docker 是一个在单独的虚拟机虚拟机中运行的容器,它不暴露主机 GPU。

【讨论】:

【参考方案2】:

您首先需要使显卡在 Virtual Box VM 中可用。我不知道该怎么做,但这看起来可能会有所帮助:

https://www.virtualbox.org/manual/ch04.html#guestadd-video

一旦你将它挂载到 VM 中,你也可以与容器共享它。

【讨论】:

这是不包括 OS X 的实验性支持。据推测,Linux 上的 virtualbox 有某种 CUDA passthrough。【参考方案3】:

我自己没有尝试过,但this guy 说他可以使用名为Kinematic 的beta docker 客户端以及socat、XQuartz 和QGIS 在Mac 上运行本机X11 应用程序,他似乎暗示 NVidia 驱动程序问题因此被避免了。这看起来值得一试!

【讨论】:

这不会有帮助,这是 docker vm 通过与主机上的 X11 服务器通信来运行 X11 应用程序的设置。 @pvg,我同意我建议的链接都是关于在 Docker 容器中运行 X11 应用程序,这与能够看到 nvidia 卡(完全)不同。但这通常是变通办法的本质。鉴于我们从原始问题中了解到的情况,我们如何确定 user678392 最终对运行 X11 应用程序感兴趣?如果这真的无关紧要,那么我很乐意删除我的答案。 问题有点模糊,当然,但我们知道用户正在询问 nVidia 并且正在运行 CUDA 示例附带的 deviceQuery 实用程序。 CUDA 本身是 nVidia 特有的东西。因此,用户似乎很可能正在尝试做某种 CUDA 事情,而不仅仅是试图让视频驱动程序或 gui 工作。而且他们可能没有意识到在 OS X 上 docker 容器实际上是一个 linux VM。

以上是关于让 Docker 在 mac 上识别 nvidia 显卡的主要内容,如果未能解决你的问题,请参考以下文章

无法在 docker 上执行 nvidia 运行时

安装使用NVIDIA-Docker-- 可使用GPU的Docker容器

可以在没有 GPU 的情况下运行 nvidia-docker 吗?

在 Windows 10 + WSL2 上运行 nvidia-docker

图像识别太难?试试NVIDIA的交互式开源GPU训练平台DIGITS

如何让mac虚拟机识别iphone