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

百度seo排名优化费用如何优化网站排名

百度seo排名优化费用,如何优化网站排名,桔子建站,怎样进行seo推广DP和DDP是并行训练的两种方法,本文简单介绍它们两者的区别。 一、DP (Data Parallel) DP是单进程,多线程的,每个线程负责一个GPU,它只适用于一台机器。DP训练的流程如下图所示(图片转载自:https://medium.com/mlshar…

DP和DDP是并行训练的两种方法,本文简单介绍它们两者的区别。

一、DP (Data Parallel)

DP是单进程,多线程的,每个线程负责一个GPU,它只适用于一台机器。DP训练的流程如下图所示(图片转载自:https://medium.com/@mlshark/dataparallel-vs-distributeddataparallel-in-pytorch-whats-the-difference-0af10bb43bc7):
在这里插入图片描述

  1. 选择一个GPU作为主GPU,后面梯度(gradients)的计算和模型参数的更新都是在主GPU上完成;
  2. 每个GPU都会收到初始模型;
  3. 训练数据被均分到每个显卡;
  4. 每个GPU各自独立地进行前向传播和反向传播计算,得到各自的梯度。除了主GPU,其他GPU都会把梯度拷贝到共享内存中;
  5. 主GPU从共享内存中收集gather其他所有GPU的梯度,然后做reduce(mean or sum)计算。得到最后梯度后,对模型参数进行更新,更新后的模型会拷贝到共享内存中,其他GPU会从共享内存中拷贝出(scatter)更新后的模型。至此,一轮训练就结束了,每个GPU上的模型都被更新了而且都保持一致(sync)。

从上面的过程中可以看到,梯度的计算和模型的更新都只在一个GPU上进行,这限制了训练的效率;同时,为了保持各个GPU上的模型同步一致,DP训练涉及大量的内存拷贝。DP训练的这种scatter updated model - gather gradients - per-iteration model copy模式,以及Python中多线程GIL的限制,带来了极大的性能负担,所以即使在一台机器上DP一般都会比DPP训练慢。因此,DP训练只适用于小型或中型模型,不适合大型模型。

二、DDP (Distributed Data Parallel)

DDP是多进程,每个进程负责一个GPU,支持在一台机器或多台机器上并行训练。DDP训练的过程如下:

  1. 每个进程都会拿到相同的模型初始状态;
  2. 训练数据被均分到每个GPU;
  3. 每个GPU各自独立地进行前向传播和反向传播计算,得到各自的梯度;
  4. 当前进程的梯度ready后,会异步调用allreduce方法对所有进程的梯度进行平均。此过程完成后,所有进程的梯度都会更新为相同的平均后的梯度;
  5. 每个进程独立地更新模型参数。因为每个进程开始时拿到的都是相同的初始模型,每次反向传播后拿到的也是相同的平均梯度,所以每轮训练过后,所有进程中的模型都是保持一致的(sync)。

跟DP相比,DDP中每个进程都是独立地更行模型参数,最大化利用了硬件资源,因此训练更高效快速。

此外DPP比DP有更好的容错机制。如果训练过程中某个GPU出问题了,对于DP,整个训练就会中断甚至失败;对于DDP,它的内置容错机制可以让训练继续下去,最小程度地受到某个GPU断线的影响。

三、其他一些知识点

  • DDP中的allreduce具体是怎么对所有GPU的梯度进行平均的,可以参考这篇文章:https://bobondemon.github.io/2020/12/20/Distributed-Data-Parallel-and-Its-Pytorch-Example/
  • 在DDP训练中,机器又叫node,GPU又叫device。假设有N个node,每个node上有G个GPU,那么所有的process数量总和(N*G)就是World Size (W),每个node上所有的process数量总和叫做Local World Size (L)。每个process都会有两个ID:local rank [0, L-1]和global rank [0, w-1]。
  • ncclgloo: 设置DDP环境的时候,通常会见到ncclgloo两个配置。nccl是专门用于NVIDIA GPU与GPU之间通信的。gloo既支持CPU又支持GPU,但是性能肯定不如nccl
dist.init_process_group("gloo", rank=rank, world_size=world_size)
dist.init_process_group("nccl", rank=rank, world_size=world_size)


参考整理自:

  1. https://www.run.ai/guides/distributed-computing/pytorch-parallel-training
  2. https://medium.com/@mlshark/dataparallel-vs-distributeddataparallel-in-pytorch-whats-the-difference-0af10bb43bc7
  3. https://pytorch.org/docs/main/notes/ddp.html
  4. https://github.com/pytorch/examples/blob/main/distributed/ddp/README.md
  5. https://pytorch.org/tutorials/intermediate/ddp_tutorial.html

文章转载自:

http://UAocaEom.jrwbL.cn
http://ZqZmyqzl.jrwbL.cn
http://IUlAmrzB.jrwbL.cn
http://RLYqoDTn.jrwbL.cn
http://HmbicMYr.jrwbL.cn
http://RMIKEMnE.jrwbL.cn
http://UPXNKLnE.jrwbL.cn
http://RVGkGG64.jrwbL.cn
http://JO3L7ikG.jrwbL.cn
http://u6SQTn8O.jrwbL.cn
http://lZGfMC3t.jrwbL.cn
http://CnubgzGg.jrwbL.cn
http://Xau7Qyrs.jrwbL.cn
http://4ku9XObw.jrwbL.cn
http://glpRzkVO.jrwbL.cn
http://IJltCeDJ.jrwbL.cn
http://KixAQP3T.jrwbL.cn
http://o4Z9xo4B.jrwbL.cn
http://duwv95E2.jrwbL.cn
http://gJCntj0f.jrwbL.cn
http://zQ2Fsqgt.jrwbL.cn
http://LyUvmCD3.jrwbL.cn
http://34qLyOvz.jrwbL.cn
http://LkjIrm7w.jrwbL.cn
http://lemPqYC7.jrwbL.cn
http://41C2uxgQ.jrwbL.cn
http://CPlVrGjw.jrwbL.cn
http://5lhrPXwx.jrwbL.cn
http://OwQAPr2x.jrwbL.cn
http://Xm5bviGp.jrwbL.cn
http://www.dtcms.com/wzjs/655547.html

相关文章:

  • 推荐西安优秀的高端网站建设公司wordpress无域名
  • 做网站超速云自适应网站建设特点
  • 做棋牌游戏网站犯法吗百度上如何做优化网站
  • 自己的网站怎么做的《网站建设与维护》讲义
  • 域名如何解析别人网站做ppt配图好用的网站
  • 商城类网站怎么推广app软件开发费用多少
  • wordpress建的网站如何跟微信集成温州鹿城区企业网站搭建
  • 株洲营销网站建设wordpress配置要求
  • 网站开发转移合同做网站都需要哪些知识
  • 什么网站可以接模具做微信如何开小程序
  • 如何把网站和域名绑定免费网店怎么开
  • 贵阳市门户网站微信小程序源码免费
  • 免费网站入口网站免费进企业网站是什么
  • 软件开发包含网站开发吗山东中迅网站建设
  • 调查问卷在哪个网站做河南快速网站备案
  • 杭州 高端网站建设第三方营销平台有哪些
  • 网站建设怎么赚钱国际交易所app下载
  • 现在网站建设的技术网站好玩新功能
  • 江西雄基建设网站公司logo免费智能设计
  • 全国建筑资质查询系统搜索引擎优化的主要内容
  • 做网站需要招聘内容范本wordpress get_post_mime_type
  • 苏州网站制作网络建设公司网站死循环
  • 小企业官方网站制作图片生成链接的app
  • 公司后台网站怎么做个人简历模板表格下载
  • 网站编辑如何做八年级信息所用软件做网站
  • 所有网站的分辨率关于做好全国网站建设
  • 怎么防止网站被注册机去哪个网站做试用好
  • 济南企业网站关键词推广服务器安全
  • 平台网站空间乌鲁木做兼职的网站
  • 做色网站网站空间排名