Pytorch 的多 GPU 处理接口是 torch.nn.DataParallel(module, device_ids),其中 module 参数是所要执行的模型,而 device_ids 则是指定并行的 GPU id 列表。

而其并行处理机制是,首先将模型加载到主 GPU 上,然后再将模型复制到各个指定的从 GPU 中,然后将输入数据按 batch 维度进行划分,具体来说就是每个 GPU 分配到的数据 batch 数量是总输入数据的 batch 除以指定 GPU 个数。每个 GPU 将针对各自的输入数据独立进行 forward 计算,最后将各个 GPU 的 loss 进行求和,再用反向传播更新单个 GPU 上的模型参数,再将更新后的模型参数复制到剩余指定的 GPU 中,这样就完成了一次迭代计算。所以该接口还要求输入数据的 batch 数量要不小于所指定的 GPU 数量。

这里有两点需要注意:

  1. 主 GPU 默认情况下是 0 号 GPU,也可以通过 torch.cuda.set_device(id) 来手动更改默认 GPU。
  2. 提供的多 GPU 并行列表中需要包含有主 GPU。

作者:叶俊贤
链接:https://www.jianshu.com/p/9e36e5e36638
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

Pytorch 多 GPU 并行处理机制相关推荐

  1. pytorch使用gpu(linux服务器上)

    1.查看服务器中GPU信息:   转自这里-->https://blog.csdn.net/handsome_bear/article/details/80903477 nvidia-smi 2 ...

  2. anaconda中使用pip安装pytorch(GPU)

    anaconda中使用pip安装pytorch(GPU) 由于conda直接安装torch遇到了问题,在此记录一下另一种装法. 一.确认cuda与cudnn安装完成 我在以前已经安装完成了 在这仅确认 ...

  3. 一文读懂 PyTorch 显存管理机制

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 作者丨米阿罗@知乎(已授权) 来源丨https://zhuanlan ...

  4. pytorch 多GPU训练总结(DataParallel的使用)

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/weixin_40087578/arti ...

  5. pytorch多gpu并行训练操作指南

    关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! 来源:知乎 作者:link-web 链接:https://zhuanlan.zhi ...

  6. pytorch 同步gpu

    pytorch 同步gpu import torch a = torch.tensor([[1, 2, 3],[4, 5, 6]])b = torch.tensor([[2, 2, 2], [3, 3 ...

  7. pytorch 优化GPU显存占用,避免out of memory

    pytorch 优化GPU显存占用,避免out of memory 分享一个最实用的招: 用完把tensor删掉,pytorch不会自动清理显存! 代码举例,最后多删除一个,gpu显存占用就会下降,训 ...

  8. pytorch 多GPU训练

    pytorch 多GPU训练 pytorch多GPU最终还是没搞通,可用的部分是前向计算,back propagation会出错,当时运行通过,也不太确定是如何通过了的.目前是这样,有机会再来补充 p ...

  9. 收藏 | PyTorch实现各种注意力机制

    点上方计算机视觉联盟获取更多干货 仅作学术分享,不代表本公众号立场,侵权联系删除 转载于:机器之心 AI博士笔记系列推荐 周志华<机器学习>手推笔记正式开源!可打印版本附pdf下载链接 P ...

最新文章

  1. Hibernate环境搭建以及HelloWorld
  2. Welcome Party
  3. 零基础如何学Java?拥有编程思想呢?
  4. 浅谈二次元场景特征和绘制手法
  5. UI5 setBusyIndicatorDelay
  6. sum怎么用python_python sum()函数和.sum(axis=0)函数的使用
  7. LeetCode 581. Shortest Unsorted Continuous Subarray
  8. Analysis-ik 中文分词安装
  9. linux查询服务器cpu核数_linux 下查看机器是cpu是几核的
  10. C++::My Effective C++ (二)
  11. 深入理解JavaScript系列(13):This? Yes,this!
  12. datatable高效写入mysql_如何将DataTable批量写入数据库
  13. Android Xml解析
  14. Python基础知识- 列表
  15. 我的世界超能物质纳米机器人_我的世界超能物质攻略
  16. 推荐模型-序列推荐-2018:SHAN
  17. 怎么从SPSS的分析结果中得出回归方程?
  18. idea设置Java class模板注释
  19. 【ARM】IMX6UL串口通信
  20. 你用什么软件做笔记?

热门文章

  1. Test Reprot
  2. libgstreamer-1.0.so.0: cannot open shared object file: No such file or directory
  3. Windows10自带搜索增强设置
  4. Facebook 发布深度学习工具包 PyTorch Hub,让论文复现变得更容易
  5. UTF-8与UTF-8 BOM
  6. GPU指令集技术分析
  7. TVM性能评估分析(三)
  8. Json文件解析(下
  9. 低层级GPU虚拟内存管理引论
  10. php面向对象程序设计,PHP面向对象程序设计类的定义与用法简单示例