一个实例有多个 GPU 或多个实例有一个 GPU

Posted

技术标签:

【中文标题】一个实例有多个 GPU 或多个实例有一个 GPU【英文标题】:One instance with multple GPUs or multiple instances with one GPU 【发布时间】:2021-02-06 05:31:24 【问题描述】:

例如,我正在使用 GPU 运行多个模型,并且所有组合的作业都可以在 4 个 GPU 上运行。多个作业可以在同一个 GPU 上运行,因为 GPU 内存可以处理它。

启动一个包含所有 4 个 GPU 的强大实例并在一个实例上运行所有作业是否更好?还是我应该采用多个实例,每个实例有 1 个 GPU?

我在考虑几个因素:

读取文件的延迟。在一台机器上拥有一个本地磁盘在延迟方面应该更快,但这将是从一个来源读取相当多的数据。这会导致任何问题吗? 显然,我需要相当多的 vCPU 和大量内存来扩展 IOPS,因为 GPC 以这种方式扩展 IOPS。解决这个问题的最佳方法是什么?如果有人对此有更多了解,将不胜感激。 如果将来我需要降级以节省成本/降级性能,我可以简单地停止实例并更改我的规格。 将所有东西都放在一台机器上会更容易使用。我知道在生产中我想要一种更加分散的方法,但这只是实验。

这些是我的主要想法。我错过了什么吗?感谢大家的帮助。

【问题讨论】:

您在使用 GCP 吗?哪个产品? @R.Esteves 没错,使用 GCP。我正在使用计算虚拟机,测试不同的永久性磁盘,例如 SSD,甚至本地 SSD 及其提供的 GPU。 【参考方案1】:

最终选择了一台具有多个 GPU 的机器。只需将作业分配给不同的 GPU 以使内存正常工作。

【讨论】:

【参考方案2】:

如果你想在同一个GPU上运行多个任务,我建议你看看这里。

基本上,当在同一个 GPU 上使用多个任务(不同的进程或容器)时,由于某种上下文切换,它不会高​​效。 您需要最新的 nvidia 硬件来测试它。

【讨论】:

以上是关于一个实例有多个 GPU 或多个实例有一个 GPU的主要内容,如果未能解决你的问题,请参考以下文章

Slurm 作业不能为多个节点请求 GPU 资源

多 GPU 分析(多个 CPU,MPI/CUDA 混合)

单颗GPU计算能力太多太贵?阿里云发布云上首个轻量级GPU实例

在 CPU 和 GPU 之间同步静态分配的结构实例

在 GPU 上实例化更快吗?

在 OpenCl 中,多个 gpu 比单个 gpu 慢。我怎样才能更快?