macos - 我可以从 MacBook Pro 上的 docker 容器中使用我的 GPU 吗? (AMD Radeon GPU)

标签 macos docker gpu macos-sierra

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

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

在此之前,Docker 过去常常生成整个 Linux 虚拟机并在其上运行容器。

现在,它显然使用了一些 native 管理程序框架,使其更加优化并更接近硬件,完全改变了 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 之类的东西更薄更轻(模拟更少的外围设备),但它仍然是虚拟化。

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

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

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

所以——你可以得到一个外部的 Thunderbolt 连接的 GPU,它可能会工作......在 future 。

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

关于macos - 我可以从 MacBook Pro 上的 docker 容器中使用我的 GPU 吗? (AMD Radeon GPU),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46367517/

相关文章:

windows - VueJs 3&Docker&Windows-Webpack watchOptions似乎不起作用

docker - Kubernetes master at https ://localhost:6443. 无法登录

security - Docker只读套接字卷

c - 使用 openmp 使用 C 通过 openacc 在多个 GPU 上分配矩阵乘法工作

cuda - 仅对向量 CUDA/THRUST 的正元素求和

xcode - 错误 : unknown type name 'uint64_t' on MacOS while installing libraries

objective-c - 如何全局观察 didEnterFullScreenNotification?

java - MacOS X Java 专用 API 中的“ secret 武器” - 请求了解更多详细信息

macos - OS X 中我的应用程序的带宽限制

machine-learning - 选择 GeForce 或 Quadro GPU 通过 TensorFlow 进行机器学习