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

deb*_*0ch 4 macos gpu docker macos-sierra

我想在我的MacBook Pro上的docker容器中运行支持GPU的应用程序(Gazebo).

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

在此之前,Docker曾经生成一个完整的Linux VM并在其上运行容器.

现在,它显然使用了一些原生的虚拟机管理程序框架,使其更加优化并更接近硬件,完全改变了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
Run Code Online (Sandbox Code Playgroud)

Cha*_*ffy 10

还有一个虚拟机.

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


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

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

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


所以 - 你可以得到一个外置的Thunderbolt附加GPU,它可能会在未来发挥作用.

Xhyve的底层支持还没有(截至2017年中期的写作),甚至在KVM上(很多人都在这里做开创性工作),只有有限的成功报告(使用特定的视频卡) - Radeon HD 5850).