0

我有一个深度学习工作站,其中有 4 个 GPU,每个具有 6 GB 内存。是否有可能让 docker 容器将 4 个 GPU 视为一个但 24 GB?

谢谢你。

4

2 回答 2

1

简短的回答:没有。

替代答案:是的,但需要额外的硬件,价格昂贵,并且可能与您现有的硬件不兼容。

解释:

如果您的 GPU 是使用连接的NVIDIA NVLink(请查看此处的详细信息https://www.nvidia.com/en-us/design-visualization/nvlink-bridges/),则有可能。

通常NVLink用于成对的 GPU,例如 GPU0 与 GPU1 连接,GPU2 与 GPU3 连接,在这种情况下,您可以获得的最佳选择是 2 个每个具有双倍内存的 GPU。

另一种选择是特殊InfiniBand模块,由一些供应商安装到现代 GPU 服务器上。

于 2020-02-10T02:59:01.710 回答
1

我以前没有使用过 docker,但是经常使用带有多个 GPU 的 CUDA。由于多个 GPU 在物理上是分开的,因此使用多个 GPU 需要在代码级别进行大量内存同步。

我不认为 docker 可以虚拟地合并所有 GPU 内存,因为这会使 GPU 端的计算变得非常复杂。使用多个 GPU 需要自定义内核才能相互同步。

我提到的最好的类比是,“你可以让两台裸机计算机合并 RAM 并像一台机器一样运行 Microsoft Word 吗?”。

于 2020-02-10T02:44:07.783 回答