多GPU训练深度学习总结

os.environ["CUDA_VISIBLE_DEVICES"] = "0,1"

当监视GPU的使用情况(nvidia-smi -l 1)的时候会发现,尽管GPU不空闲,实质上只有一个GPU在跑,其他的就是闲置的占用状态,也就是说,如果你的电脑里面有多张显卡,无论有没有上面的代码,Keras都会默认的去占用所有能检测到的GPU

G = 3 # 同时使用3个GPU
with tf.device("/cpu:0"):
        M = unet(input_rows, input_cols, 1)
model = keras.utils.training_utils.multi_gpu_model(M, gpus=G)

只用添加了keras.utils.training_utils.multi_gpu_model调用,才能真正利用到不止一块GPU。

 

另外,如果CPU核心数资源跟不上,使用多GPU计算会比单GPU还慢。

如果GPU使用了交火共享GPU内存(例两卡8G,共享8G,总共24G),双卡和单卡整体的可存放模型内存大小一样?(待验证)

你可能感兴趣的:(Hardware)