搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
凡人多烦事01
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
鸿蒙系统应用(HarmonyOS)2_鸿蒙传值跟引用
2
【LM】eclipse操作git大全(egit)_eclipse集成egit从远程库拉取代码
3
WINDBG u win32k!NtUserSendInput 出现 Memory access error处理方法()_windbg memory access error
4
pytorch基础教学简单实例(附代码)_pytorch测试代码
5
Wget用法,以及如何覆盖下载_wget 覆盖
6
Dynamic Web Module facet version问题_dynamic web module facet version (5.0), was not fo
7
从入门到精通:掌握Python核心知识,解锁编程新世界!_python人工智能开发从入门到精通
8
安卓Java面试题 131- 140
9
YOLOV5单目测距+车辆检测+车道线检测+行人检测(教程附代码)_车辆识别与违章检测毕业论文代码
10
询问ChatGPT如何使用pytorch构建CNN卷积神经网络_怎么用chatgpt搭建cnn算法
当前位置:
article
> 正文
李沐动手学深度学习V2-多GPU数据并行内容和手动实现代码_当模型大小超过gpu显存,gpu之间如何进行数据并行的切分
作者:凡人多烦事01 | 2024-03-18 08:06:48
赞
踩
当模型大小超过gpu显存,gpu之间如何进行数据并行的切分
1.多GPU并行
1.1 多GPU并行方式
模型并行:在多个GPU之间拆分网络
。 也就是说,每个GPU将流入特定层的数据作为输入,跨多个后续层对数据进行处理,然后将数据发送到下一个GPU。 与单个GPU所能处理的数据相比,我们可以用更大的网络处理数据。 此外,每个GPU占用的显存(memory footprint)可以得到很好的控制,虽然它只是整个网络显存的一小部分。比如前五个层用第一个GPU计算,后面五个层用第二个GPU计算
缺点:GPU的接口之间需要的密集同步可能是很难办的,特别是层之间计算的工作负载不能正确匹配的时候, 还有层之间的接口需要大量的数据传输的时候(例如:激活值和梯度,数据量可能会超出GPU总线的带宽)。 此外,计算密集型操作的顺序对于拆分来说也是非常重要的,这仍然是一个困难的问题,目前还不清楚研究是否能在特定问题上实现良好的线性缩放。 综上所述,除非存框架或操作系统本身支持将多个GPU连接在一起,
否则不建议这种方法。
通道并行:拆分层内的工作。 例如,
将问题分散到 4 个GPU,每个GPU生成 16 个通道的数据,而不是在单个GPU上计算 64 个通道,
对于全连接的层,同样可以拆分输出单元的数量。以前通常用于处理显存非常小(当时为2GB)的GPU,当通道或单元的数量不太小时,使计算性能有良好的提升。 此外,由于可用的显存呈线性扩展,多个GPU能够处理不断变大的网络。
缺点:同样需要大量的同步或屏障操作(barrier operation),因为每一层都依赖于所有其他层的结果。 此外,需要传输的数据量也可能比跨GPU拆分层时还要大。 因此,基于带宽的成本和复杂性,我们
同样不推荐这种方法。
数据并行:跨多个GPU对数据进行拆分。 这种方式下,所有GPU尽管有不同的观测结果,但是执行着相同类型的工作。
在完成每个小批量数据的训练之后,梯度在GPU上聚合。
这种方法最简单,并可以应用于任何情况,同步只需要在每个小批量数据处理之后进行。 也就是说,
当其他梯度参数仍在计算时,完成计算的梯度参数就可以开始交换。而且,GPU的数量越多,小批量包含的数据量就越大,从而就能提高训练效率。 但是,添加更多的GPU并不能让我们训练更大的模型,因为每个GPU仍然包含模型的全部权重参数和梯度等。 总体而言,只要GPU的显存足够大,数据并行是最方便的
,三种方式如下图所示。
1.2 详细介绍多GPU的数据并行
假设一台机器有
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/凡人多烦事01/article/detail/261567
推荐阅读
article
【
习题
】
三方
库...
1.
三方
组件是开发者在系统能力的基础上进行了一层具体功能的封装,对其能力进行拓展的工具正确(True)回答正确2.可以通...
赞
踩
article
gcc
破损[已解决]_
u
pdate
-
alternatives
:
警告
:
链接组
gcc
已损坏
,故强...
1.安装tcc2.mv /
u
sr/bin/
gcc
/
u
sr/bin/
gcc
.bakln -s /
u
sr/local/bi...
赞
踩
article
深入
Python
流程控制学习,
python
基础学习_该
函数
可以
用
以下方式调
用
:
只给出必选实参
:
ask
...
深入
Python
流程控制除了前面介绍的语句,
Python
还从其它语言借鉴了一些流程控制功能,并有所改变。精彩内容学...
赞
踩
article
Python
每日一学 01——
输入
输出_
python
分别
输入
姓名
性别
年龄...
坚持每日
Python
学习打卡,备战蓝桥杯,也可以当作期末复习来学习巩固。_
python
分别
输入
姓名
性别
年龄
python
分...
赞
踩
article
(三十五)
Android
O 默认授予预制
应用
运行
时
权限
方法_getdefaultpermiss...
前言:像默认授予预制
应用
这个方法还是不好百度到的,用到的人不多,自己总结下最近的学习成果,方便后续使用。参考资料:点击打...
赞
踩
article
常用
芯片
学习——
BME280
芯片
...
BME280
是基于成熟传感原理的组合数字湿度、压力和温度传感器。该传感器块采用极为紧凑的金属盖LGA封装,占地面积仅为2...
赞
踩
article
太炸
了
!
OpenAI
深夜发布
Sora
,
文字直接
生成
视频
!...
OpenAI
再次扔出一枚深水炸弹
,
发布
了
首个文生
视频
模型
Sora
。据介绍
,
Sora
可以直接输出长达60秒的
视频
,
并且包含...
赞
踩
article
ChatGPT
是
如何
训练
得到
的
?通俗讲解_
chatgpt
训练
...
首先声明喔,我
是
没有任何人工智能基础
的
小白,不会涉及算法和底层原理。我依照我自己
的
简易理解,总结出了
ChatGPT
是
怎么...
赞
踩
article
建议收藏:
Python
编程进阶
,
常用8大
技巧
!_
python
语言
资料
技巧
-广告...
并非本文中所有提到的功能在日常的
Python
编程中都是必需或有用的
,
但是其中某些功能可能会不时派上用场
,
而且它们也可...
赞
踩
article
解析
服务器
下载速度
:
上行
、
下行
与
带宽
之谜...
在日常使用中,我们经常会遇到从
服务器
下载内容速度忽快忽慢的情况,即便
服务器
的硬件配置如4核CPU、8GB内存和12Mbp...
赞
踩
article
跨平台
Brave
浏览器
(
一百零三
)...
Brave
浏览器
_brave
浏览器
brave
浏览器
1.
Brave
浏览器
,号称比Chrome快3...
赞
踩
article
Notion
修改
中文
教程
(个人记录)_
notion
在
win
使用
教程
...
notion
是一个笔记软件,可以在mac,
win
downs,ios,android,web等客户端上运行。很可惜他并没有...
赞
踩
article
gzip
: std
in
:
not
in
gzip
format
tar
: Child returne...
问题再现[root@zh64 ~]#
tar
zxvf webbench-1.5.
tar
.gz -C /usr/src/...
赞
踩
article
Ubuntu
下多个
版本
GCC
编译器的
安装
和切换_
安装
了多个
gcc
版本
怎么借还...
转自:小淼博客1、首先查看一下当前我的
Ubuntu
16.04
版本
的原装
GCC
版本
:
gcc
-v #查看
gcc
的
版本
g++...
赞
踩
article
-
bash
: E
xport
:
command
not
found
_-
bash
: 鈥榚
xport
: c...
Linux下无论输入什么命令都提示“-
bash
: E
xport
:
command
not
found
”,这不是PATH的...
赞
踩
article
获取
Google
Play
Store
中的
apk
文件_
google
play
apk
提取...
背景:直接从
Google
play
store中下载应用程序时,应用程序是直接安装在手机上。作为手机用户并无法获得当前应...
赞
踩
article
30
.
HarmonyOS
App(
JAVA
)鸿蒙系统
app
多线程
任务
分发
器...
如果应用的业务逻辑比较复杂,可能需要创建多个线程来执行多个
任务
。这种情况下,代码复杂难以维护,
任务
与线程的交互也会更加繁...
赞
踩
article
Ubuntu
安装
显卡驱动教程...
一、参考资料环境搭建01-
Ubuntu
16.04如何查看显卡信息及
安装
NVDIA显卡驱动二、环境配置系统:
Ubuntu
1...
赞
踩
article
「网页开发|
前端开发
|
Vue
」02 从单
页面
到
多
页面
网站
:使用
路由
实现
网站
多
个
页面
的展示和
跳转
_vu...
本文主要介绍如何使用
路由
控制来实现将一个单
页面
网站
扩展成
多
页面
网站
,包括
页面
扩展的逻辑,
vue
的官方
路由
vue
-rout...
赞
踩
article
鸿蒙
开发
3-1 基本
组件
+
通用
属性
+
通用
事件
_
鸿蒙
组件
的
通用
属性
...
本系列是windows系统下、采用ArkTS语言、ArkUI框架、deveco studio编译器学习纯
鸿蒙
软件研发,采...
赞
踩
相关标签
javascript
鸿蒙
harmonyos
前端
开发语言
程序员
python
运行时权限
默认授予
预制应用
学习
chatgpt
人工智能
程序人生
服务器
运维
linux
notion
gzip
解压报错
linux 解压 报错
gzip: stdin: not in gzip forma