我可以在 MacBook Pro 上使用 docker 容器中的 GPU 吗? (AMD 显卡)

Can I use my GPU from a docker container on a MacBook Pro ? (AMD Radeon GPU)

我想 运行 在我的 MacBook Pro 上的 docker 容器内启用 GPU 的应用程序 (Gazebo)。

在我看来,通过我的研究,大约一年前,Docker 为 MacOS 发布了原生 Docker 应用程序。

在此之前,Docker 用于生成整个 Linux VM 和 运行 其上的容器。

现在,它显然使用了一些本机管理程序框架,使其更加优化并更接近硬件,完全改变了 Docker 在 Mac 上进行容器化的方法。

我不是很清楚所有这些,我也不确定我所说的一切。

现在是否可以从 docker 容器中使用我的 macbook pro 的 GPU,如果可以,如何使用?

我现在使用的命令行是:

xhost +
docker run -it -e DISPLAY=$ip:0 -v /tmp/.X11-unix:/tmp/.X11-unix image_name bash

还涉及到虚拟机。

Docker for Mac 使用名为 XHyve 的虚拟化层。它比 VirtualBox 之类的更薄更轻(模拟更少的外围设备),但它仍然是虚拟化。


PCI 直通(理论上)是可能的,但您无法直通笔记本电脑的主 GPU 并继续使用它。

带有 IOMMU 的硬件(是的,您的 MacBook Pro 具有支持此类的 Intel 芯片组)可以允许虚拟化环境直接访问 PCI 硬件。

但是,您不能将硬件的控制权让给 VM,而仍然使用主机上的硬件。 (一些高端服务器网卡通过具有多个 PCI 端点来解决这个问题,因此主机和每个来宾都可以使用不同的端点进行通信)。


所以 -- 您可以获得一个外部 Thunderbolt 连接的 GPU,它可能会工作...将来

The underlying support in Xhyve 还没有(截至 2017 年年中写作),甚至在 KVM 上(很多人在这里做开创性工作时使用),也只有有限的成功报告(使用特定的视频卡 -- Radeon HD 5850)。