我可以在MacBook Pro的Docker容器中使用我的GPU吗? (AMD Radeon GPU)

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

在我看来,通过我的研究,一年前,Docker为MacOS发布了一个本地Docker应用程序。

在此之前,Docker用于产生整个Linux虚拟机,并在其上运行容器。

现在,它显然使用了一些原生的虚拟机pipe理程序框架,使其更加优化,更接近硬件,完全改变了Docker在Mac上集装箱化的方法。

这一切都不是很清楚,我不清楚我所说的一切。

现在是否可以使用Docker容器中的我的MacBook Pro的GPU,如果是的话,怎么样?

我现在使用的命令行,适用于普通的X11应用程序,但不支持像Gazebo这样的支持GPU的应用程序:

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

还有一个虚拟机涉及。

Docker for Mac使用名为XHyve的虚拟化层。 它比VirtualBox更薄,更轻巧(模拟较less的外设),但仍然是虚拟化。


PCI通过(理论上)是可能的,但是你不能通过你的笔记本电脑的主GPU,仍然使用它。

硬件与IOMMU(是的,你的MacBook Pro有这样的支持英特尔芯片组)可以允许虚拟环境直接访问PCI硬件。

但是,您无法将对硬件的控制权交给虚拟机,仍然使用主机中的硬件。 (一些高端服务器网卡通过具有多个PCI端点来解决此问题,因此主机和每个来宾都可以获得不同的端点进行通信)。


所以 – 你可以得到一个外置的Thunderbolt连接的GPU,并且在将来可能会起作用。

Xhyve的基础支持还没有(截至2017年中期的文章),甚至在KVM(许多人在这里开创性的工作使用),只有有限的成功报告(与特定的video卡 – Radeon HD 5850)。