现在,我正在使用Horovod来运行我的pytorch模型的分布式训练。我想开始为--multirun特性使用hydra配置,并使用SLURM将所有作业排入队列。我知道有Submitid插件。但我不确定,整个管道如何与Horovod合作。现在,我的训练命令如下所示:
CUDA_VISIBLE_DEVICES=2,3 horovodrun -np 2 python training_script.py \
--batch_size 30 \
...假设我想使用hydra -multirun来运行几个多gpu实验,我想使用slurm来排队运行,因为我的资源是有限的,并且大部分时间都是按顺序运行的,我想使用Horovod来同步我的网络的梯度。这个设置会开箱即用吗?如果slurm负责资源,我需要指定CUDA_VISIBLE_DEVICES吗?我需要如何调整我的运行命令或其他设置才能使此设置变得合理?我对multirun特性如何处理GPU资源特别感兴趣。欢迎任何建议。
发布于 2020-09-29 00:38:35
Submitit plugin确实支持图形处理器分配,但我不熟悉Horovod,也不知道这是否可以与它一起工作。Hydra 1.0的一个新功能是能够从启动过程中设置或复制环境变量。这可能会在Horovod试图设置一些环境变量时派上用场。有关它的信息,请参阅docs。
https://stackoverflow.com/questions/64104272
复制相似问题