现在,我正在使用 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 吗?我需要如何调整我的运行命令或其他设置以使此设置合理?我对多运行功能如何处理 GPU 资源特别感兴趣。欢迎任何建议。