当前位置: 首页 > news >正文

分布式训练

一、分布式计算

        跟多GPU不同是:数据不是从主存拿的,是在分布式文件系统拿的,有多个工作站,工作站中有多个GPU,通过网络读取数据到GPU中,GPU通过网络接收到来自参数服务器的参数进行运算计算梯度,最后将梯度传回服务器,服务器对梯度进行求和更新参数

二、GPU架构

本地多通讯指GPU与GPU之间速度快

三、计算小批量步骤

1、从每个计算服务器中读取小批量中的一块

2、进一步将数据切分到每个GPU上

3、每个worker从参数服务器中获取模型参数

4、复制到每个GPU中

5、每个GPU计算梯度

6、将所有GPU中的梯度求和

7、梯度传回服务器中

8、每个服务器对梯度求和并更新参数

四、同步SGD

五、性能

在分布式计算时要避免通信的开销大于计算的开销,一个简单的方法就是将batchsize增大,但数据集不大的时候用过于大的batchsize可能会使测试精度变低;

增大批量大小,会一定程度的提高系统性能;但随着批量大小的增加,收敛程度会变低,需要更多的epoch进行训练,所以需要权衡

1、使用一个大的数据集

2、需要更好的GPU-GPU和机器-机器带宽

3、高效的数据读取与预处理

4、模型需要更好的计算(FLOP)通讯(model size)比Inception>ResNet>AlexNet因为AlexNet一下子就算完了,很难做并行

5、使用足够大的批量大小来得到好的系统性能

6、使用高效的优化算法来对应大批量大小

六、总结

http://www.lryc.cn/news/397340.html

相关文章:

  • day10:04一文搞懂decode和decoding的区别
  • MechMind结构光相机 采图SDK python调用
  • “学习Pandas中时间序列的基本操作“
  • 常用知识碎片 分页组件的使用(arco-design组件库)
  • WPF 制作一个文字漂浮提示框
  • Node.js_fs模块
  • 使用 Vue 3 实现打字机效果
  • unordered_map和set
  • java:运用字节缓冲输入流将文件中的数据写到集合中
  • 【机器学习】支持向量机与主成分分析在机器学习中的应用
  • SpringBoot项目架构实战之“网关zuul搭建“
  • 发挥储能系统领域优势,海博思创坚定不移推动能源消费革命
  • matlab R2016b安装cplex12.6,测试时cplex出现出现内部错误的解决方法
  • C#中的Dictionary
  • VSCode中多行文本的快速前后缩进
  • C# 8.0 新语法的学习和使用
  • 数据结构——约瑟夫环C语言链表实现
  • 【MyBatis】——入门基础知识必会内容
  • react父调用子的方法,子调用父的方法
  • C#知识|账号管理系统:UI层-添加账号窗体设计思路及流程。
  • 【机器学习】初学者经典案例(随记)
  • 进阶版智能家居系统Demo[C#]:整合AI和自动化
  • IC后端设计中的shrink系数设置方法
  • 在NVIDIA Jetson平台离线部署大模型
  • 51单片机嵌入式开发:8、 STC89C52RC 操作LCD1602原理
  • 数字化时代的供应链管理综合解决方案
  • CentOS 安装 annie/lux,以及 annie/lux 的使用
  • 拥抱UniHttp,规范Http接口对接之旅
  • Python 给存入 Redis 的键值对设置过期时间
  • 在linux中安装docker