分布式并行策略

1.数据并行(DP)

将小批量分为n块,每个GPU拿到完整参数计算一块数据的梯度。(通常性能会更好)

       假如一个批量有128个样本,然后有2个GPU,那么每个GPU可以拿到64个样本。(每个GPU计算完这部分样本的梯度后,会将所i有的梯度加起来,就会完成小批量的梯度的计算。)

所有梯度相加其实是完整的梯度,模型本质只有一份,进行模型更新,每个gpu模型保存一致。

数据并行又包含:DDP、FSDP等。

2.模型并行(MP)

 将模型分成n块,每个GPU拿到一块模型计算他的前向和反向结果。

       例如:有一个100层的Resnet,有两个GPU,那么一个gpu拿50层,另外一个gpu拿另外50层。第0号gpu计算完成后,把结果给gpu1,gpu1接着在往下计算。算梯度时倒过计算。gpu0计算式gpu1可能会空着,gpu1计算式gpu0可能会空着性能难以优化。一般是用于单个gpu无法加载模型的情况。

从单机多卡拓展到分布式训练:

        ①数据存放的不同:数据可能放在一个分布式的文件系统上(而不是机器本地的硬盘上),所有的机器都可以去读取这个样本(分开存在不同的磁盘上)。收发参数,从一个网络跑到另一个网络。

        ②读取参数:通过网络读取。

        ③收发梯度:从一个gpu拷贝到另一个gpu。现在是通过网络从一台跑到另一台机器。

          ④性能方面的区别:

GPU机器架构:

(GPU与GPU之间通讯很快的,GPU到CPU之间通讯会降(5倍或10倍,通过PCIe通讯的),如果跨机器,通讯会降得更多。)尽量本地多通讯,实在不行可以取内存走一走,尽量避免多个机器通讯。

在做分布式时,尽量减少跨机器通讯。

        ⑤在做分布式训练时,怎么减少跨机器的通讯:

读入样本,假设有两台机器,每个机器有一张卡,一共有100个样本,则每台机器拿到50,每个卡拿到25(先复制到每个机器的内存,再复制到每个gpu的内存)。每个机器从参数服务器上拿到模型,模型是被复制到每个gpu上(每次从(假设有个server)server上拿到一个模型到主内存,之后在复制到gpu上),开始每个gpu计算自己的梯度,现在本地做all reduce(把每个gpu的梯度累加到主内存上),加完之后再把梯度发出去(梯度传回服务器)。

同步SGD:

所以就有当你的bs固定,lr固定,增加gpu的数量,是不会影响模型收敛的。

性能:

       如果计算时间>>通讯时间  那么主要就是计算时间,反之会导致gpu等待。增加样本数不会影响通讯时间,因为通讯时参数是批量发出去(增大b,t1会增大,t2不会)。一般t1比t2大20-30%左右。(但是增大b,训练有效性会降低,会导致收敛变慢,需要更多epoch达到需要精度;如果一个批量中有很多相似的冗余照片,每个样本计算出来的梯度都是相同的,对梯度贡献相同,所以最好小批量中数据多样性较大,bs大小取决于数据集的多样性和优化算法,一般不要超过10*类别数)。

性能的权衡:

做并行的建议:

  1. 使用一个大的数据集;
  2. 好的GPU-GPU和机器-机器带宽。好的主板,gpu和gpu之间的带宽、gpu和cpu之间的带宽很高;
  3. 高效的数据读取和预处理;
  4. 模型有较好的计算(FLOP)通讯(model size)比;
  5.           Inception>resnet>alexnet
  6. 使用足够大的批量大小获得好的系统性能;
  7. 使用高效的优化算法对应大批量大小。

模型并行又包含:张量并行(TP)和流水线并行(PP)。

3.通道并行(数据+模型并行)

当一个模型能够用单卡计算,通常使用数据并行拓展到多张卡。

模型并行则用于单张卡无法加载模型的情况。

分布式训练效果,时间并没有缩短有很多原因,有可能是data读起来比较慢、gpu增加但是batchsize没有增加(例如gpu从1变为2,但是batchsize仍然是256,原来一个gpu可以处理256个样本,现在换成2个GPU,每个只能处理128个样本,本来lr已经足够小,batchsize变小,计算性能会变低。)所以增加gpu,最好每个gpu仍然能拿到同样的batchsize,但是收敛可能会变慢,可以适当增加lr。

(损失函数抖动大的情况下,可以适当调小学习率,数据集多样性不够大的时候,batchsize不能设置的太大,同一批数据中样本重复或相似,计算梯度是浪费。)

batchsize越大,理论上数据稳定性会越好。(batchsize小的时候,lr不能太大)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/29425.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【python】OpenCV—Segmentation

文章目录 cv2.kmeans牛刀小试 cv2.kmeans cv2.kmeans 是 OpenCV 库中用于执行 K-Means 聚类算法的函数。以下是根据参考文章整理的 cv2.kmeans 函数的中文文档: 一、函数功能 cv2.kmeans 用于执行 K-Means 聚类算法,将一组数据点划分到 K 个簇中&…

Altair 助力优化摩托车空气动力学性能,实现最佳的整流罩设计

案例简介 整流罩是绝大多数摩托车的重要组成部分,旨在提高车辆的空气动力学性能和稳定性。Altair 与 KTM 公司员工组成的项目团队,针对摩托车整流罩空气动力学方面的学生项目,展开了密切合作。 项目任务主要是对摩托车整流罩设计进行比较&…

山体滑坡监测利器:传感器与智能监测平台的应用

山体滑坡,这一地质灾害的代名词,指的是山坡上的土体或岩体在重力作用下,因自然或人为因素而向下滑动的现象。滑坡具有突发性、隐蔽性、危害性和破坏性等特征,因此,对于山体滑坡的监测工作显得尤为重要。本文将探讨山体…

豆包高质量声音有望复现-Seed-TTS

我们介绍了 Seed-TTS,这是一个大规模自回归文本转语音 (TTS) 模型系列,能够生成与人类语音几乎没有区别的语音。Seed-TTS 作为语音生成的基础模型,在语音上下文学习方面表现出色,在说话人的相似性和自然性方…

Vitis HLS 学习笔记--Stream Chain Matrix Multiplication

目录 1. 简介 2. 示例解析 2.1 示例功能说明 2.2 函数说明 2.2.1 mmult 函数 2.2.2 mm2s 函数 2.2.3 s2mm 函数 2.2.4 总示意图 3. 总结 1. 简介 这是一个包含使用数据流的级联矩阵乘法的内核。该内核启用了 ap_ctrl_chain,以展示如何重叠多个内核调用队…

2024年最好用的精简系统推荐!旧电脑福音!

精简版电脑系统经过精心优化,去除了冗余功能,保留了核心功能,让用户的操作更加便捷高效,同时也具备强大的兼容性和稳定性,整体操作体验感很好。但是,许多新手用户不知道在哪里才可以找到好用的精简版系统&a…

Mojo崛起:AI-first 的编程语言能否成为新流行?

眨眼之间,你可能会错过又一种编程语言的发明。 有个笑话说,程序员花费20%的时间编写代码,80%的时间决定使用什么语言。 事实上,编程语言如此之多,以至于我们不确定实际有多少种。据估计,至少有700种编程语…

【Android 11】AOSP Settings添加屏幕旋转按钮

前言 这里是客户要求添加按钮以实现屏幕旋转。屏幕旋转使用adb的命令很容易实现: #屏幕翻转 adb shell settings put system user_rotation 1 #屏幕正常模式 adb shell settings put system user_rotation 0这里的值可以是0,1,2&#xff0c…

中国天辰×蓝卓丨共创行业级工业操作系统,加速培育新质生产力!

6月17日,中国天辰工程有限公司(以下简称“中国天辰”)党委委员、总经理梁军湘一行莅临蓝卓,双方就工业互联网平台合作进行座谈交流。蓝卓总经理谭彰、副总经理蓝照斌、总经理助理俞益标,以及中控技术副总裁吴才宝、大客…

Altair 人工智能技术助力MABE预测消费者行为,实现设备性能优化

主要看点 行业: 家电行业 挑战: 企业面临的挑战是如何利用已收集的大量数据,深入了解消费者在产品使用过程中对某些保鲜程序的影响。 Altair 解决方案: Altair采用了Altair RapidMiner人工智能平台来解决问题,特别是…

docker安装消息队列mq中的rabbit服务

在现代化的分布式系统中,消息队列(Message Queue, MQ)已经成为了一种不可或缺的组件。RabbitMQ作为一款高性能、开源的消息队列软件,因其高可用性、可扩展性和易用性而广受欢迎。本文将详细介绍如何在Docker环境中安装RabbitMQ服务…

八股系列 Flink

Flink 和 SparkStreaming的区别 设计理念方面 SparkStreaming:使用微批次来模拟流计算,数据已时间为单位分为一个个批次,通过RDD进行分布式计算 Flink:基于事件驱动,是面向流的处理框架,是真正的流式计算…

访问学者谈CSC青年骨干教师项目出国经历及感受

CSC青年骨干教师出国研修项目实施已近20年,越来越多的青年教师成为该项目的受益者。知识人网小编推荐该项目资助老师谈谈在加拿大卡尔加里大学访学一年的经历及感受。 国家留学基金委(以下简称CSC)高等学校青年骨干教师出国研修项目&#xff…

个股期权有哪些股票?金融新手必须知道!

今天带你了解个股期权有哪些股票?在中国的股票市场中,个股期权是一种衍生品,允许投资者购买或卖出特定股票的期权合约。 个股期权有哪些股票? 个股期权是指在特定时间内,以特定价格买入或卖出特定数量的某只个股的权利…

lombok.jar包,解决 java: 找不到符号 符号: 类 __

打开设置在这里添加这样一小句话. -Djps.track.ap.dependenciesfalse

赛氪网荣膺“创新型中小企业”称号,科技创新再显卓越实力

近日,北京市经济和信息化局揭晓了2024年度3月份北京市创新型中小企业的光荣名单,其中北京环球赛乐科技有限公司(简称赛氪网)脱颖而出,再度展现其在创新领域的卓越实力! 作为早已跻身“高企之光”行列的佼佼…

COUNTIF函数除计数,还可排序哦

COUNTIF函数除统计个数外,还可以排序哦! 近期工作中遇到一个场景“对不同类型的人员按办理量进行排序”,前期只是对同一种类型进行排序,经过查阅资料,可以用COUNTIF函数解决问题,今天就把COUNTIF函数的用法…

EarMaster pro 7 For Mac软件下载-EarMaster Pro(音乐赏析进阶专业版)V6.1下载附加详细安装步骤

EarMaster pro 7 For Mac最新版是一款相当专业的听力训练和音乐理论练习软件,这个EarMaster pro 7 For Mac版带来了全的操作界面,并且更新了课程信息,内置了2000多种课程供用户选择,可以用于听耳训练、视唱和节奏训练等操作。 安 …

视频太大了怎么缩小内存

我们在分享视频的时候,有时候会遇到过视频文件太大,无法发送或者上传的情况,别担心,今天我就来给大家分享一个简单有效的方法,让你的视频变得更小,更方便分享! 打开 “51视频处理官网 的网站。上…

学校分体空调集控系统

学校分体空调集控系统是一种先进的温度控制解决方案,它主要针对学校等公共场所的空调管理需求而设计。该系统通过集中控制和管理多台分体空调设备,实现了更高的能效、更便捷的操作和更舒适的室内环境。 需求与挑战:学校教学楼、办公楼、实验楼…