首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Azure Databricks群集上使用具有Horovod的驱动程序节点GPU?

如何在Azure Databricks群集上使用具有Horovod的驱动程序节点GPU?
EN

Stack Overflow用户
提问于 2020-01-10 00:24:18
回答 1查看 178关注 0票数 1

当我创建一个带有一个驱动程序+两个工作进程的集群,每个进程都有一个GPU,并尝试在每个GPU上启动训练时,我会写道:

代码语言:javascript
复制
from sparkdl import HorovodRunner 
hr = HorovodRunner(np=3) 
hr.run(train_hvd)

但收到以下错误消息:

代码语言:javascript
复制
HorovodRunner was called with np=3, which is greater than the maximum processes that can be placed
on this cluster. This cluster can place at most 2 processes on 2 executors. Training won't start
until there are enough workers on this cluster. You  can increase the cluster size or cancel the
current run and retry with a smaller np.

显然,HorovodRunner没有考虑驱动节点上的图形处理器(对吗?)。当我使用选项np=-1 (仅限驱动程序GPU )、np=2 (某处2个GPU)或np=-2 (仅限驱动程序,但具有2个GPU)时,一切工作正常,即我的代码没有任何功能错误,除此之外,我无法让它利用所有3个可用的GPU。

(a)有没有办法让Horovod在分布式学习中包含驱动节点上的GPU?

(b)或者:是否有一种方法可以在Databricks中使用GPU工作者但非GPU驱动程序创建集群?

EN

回答 1

Stack Overflow用户

发布于 2020-01-30 15:03:56

参数: np -用于Horovod作业的并行进程数。此参数仅在Databricks Runtime 5.0 ML及更高版本上有效。在开源版本中它被忽略了。在Databricks上,每个进程都将占用一个可用的任务槽,该任务槽映射到GPU集群上的GPU或CPU集群上的CPU核心。可接受的值包括:

Training stdout和stderr消息转到notebook单元输出,并且在单元输出被截断的情况下也可以在驱动程序日志中使用。这对于调试很有用,我们建议您首先在此模式下测试代码。

如果>0,这将启动一个同时启动np任务的Spark作业,并在任务节点上运行Horovod作业。它将等待np个任务槽可用来启动作业。在单元格输出被截断的情况下,在HorovodRunner启动的第二个spark作业下的任务0的stderr流中可以找到完整的日志,您可以在Spark UI中找到。

如果为0,则将使用群集上的所有任务槽来启动作业。

您可以在HorovodRunner API documentation和"HorovodRunner: Distributed Deep Learning with Horovod“中找到有关np参数的详细信息。

希望这能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59668233

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档