我有21个ANN训练过程要进行。
我手里有四台电脑。其中三个配备了GPU(每个GPU两个)。
在最少的时间内运行进程以激活培训的最佳方法是什么?
发布于 2021-12-15 00:46:43
要明确地回答这个问题是不可能的。从方向上讲,你需要考虑的一些事情是:
你是否调整了你的模型,使其成为GPU而不是CPU的瓶颈?这是DL培训的最佳实践。
你有一套很好的训练超参数吗?通过适当的调整,你可以大大降低训练的速度,就像数量级一样。(在CIFAR10上进行34秒钟的V100训练就可以获得SOTA的性能。如果你在身边挠了几天,可能需要30分钟的训练才能得到SOTA的准确性)。
你有能力缩放批次大小吗?“76分钟内训练伯特”的论文讲述了一些技巧,从热身到一个新的优化器,基本上是LARS + Adam。
您有在一台机器上扩展到多个GPU的经验吗?一般来说,在TF2/Keras中没有那么难。你有升级到多台机器的经验吗?我还没有这么做,但我认为这有点困难。
如果您对上述所有内容都没有很大的信心,那么您最好同时运行7种型号。
如果您对上面的内容有很大的信心,您可以尝试扩展到所有的7个GPU。
如果您在中间,您可以尝试运行4个并行的培训作业,每台机器一个,对于其中三个,使用双GPU。
发布于 2021-12-11 17:10:17
我建议你使用多gpu训练,并一次训练一个模型。所以用两个gpus在每台计算机上训练一个模型。
os.environ["CUDA_VISIBLE_DEVICES"] = "0,1" #使用两个gpus进行培训。
这里是一个如何使用多个gpus的示例:
strategy = tf.distribute.MirroredStrategy(devices=["/device:GPU:0","/device:GPU:1"])
with strategy.scope():
model = get_model()
model.compile()
model.fit()使用镜像策略,批大小将被拆分。所以你可以使用更大的批次大小。
https://stackoverflow.com/questions/70314051
复制相似问题