美文网首页
如何使用多GPU训练

如何使用多GPU训练

作者: 提着木剑走天下 | 来源:发表于2019-03-28 12:59 被阅读0次

    1.Pytorch

    首先设置 CUDA_VISIBLE_DEVICES,使得训练代码可以检测的显卡数量,具体设置如下,

    import os
    os.environ["CUDA_VISIBLE_DEVICES"] = "0,1,2,3" #此时显示4块显卡
    

    之后就是通过 DataParallel 设置并行训练

    device_ids = [0,1,2,3]
    model = model.cuda(device_ids[0])
    model = nn.DataParallel(model, device_ids=device_ids)
    
    • 使用 model.gpu(),进入 gpu 模式
    • model = nn.DataParallel(model) 启动多 GPU 训练
    • inputs = Variable(inputs.cuda()),
      labels = Variable(labels.cuda()) 表示张量加载到GPU之中

    ps: 笔者用了两张 Tesla K80 测试,发现用一个GPUbatch-size 可以为6,用三个GPUbatch-size只能支持到 4,如果四个全开就剩 3 了。并且发现第一个GPU卡占用率总是比之后的大,查阅相关资料,可能是第一个 GPU 还充当着正常的前传反传以及参数更新的作用,而其它的只负责前传和反传。所以随着开启的 GPU 数量增多,第一个的显存负担也会增加,RuntimeError: CUDA error : out of memory,多是因为第一个 GPU 达到了显存极限。如果这个问题解决,那么便可以提高效率,我觉得应该是有办法的。寻找中。

    2. Tensorflow

    相关文章

      网友评论

          本文标题:如何使用多GPU训练

          本文链接:https://www.haomeiwen.com/subject/lzbtbqtx.html