关于深度学习中使用多卡GPU进行训练学习总结

这篇博客介绍了如何在PyTorch中利用nn.parallel.scatter进行数据分布,以及allreduce函数在多GPU间的向量相加操作。详细阐述了数据并行(DataParallel和DistributedDataParallel)与模型并行的方式,包括单机多卡和多机多卡的实现。DataParallel适合单机多GPU,而DistributedDataParallel则通过多进程在多机多卡间同步模型和数据。同时,文章探讨了模型并行策略,用于解决大型模型的参数分布问题。
部署运行你感兴趣的模型镜像

(备注:该博文还没写完)
1.nn.parallel.scatter 向多个设备分发参数
在这里插入图片描述
这是实现方法,在模型中可以值调用函数,其原理就是通过for循环 然后copy到不同的设备上
2.allreduce 函数 将所有向量相加,并将结果广播给所有的gpu
在这里插入图片描述
3.将一个小批量的数据均匀地分布在多个GPU上
在这里插入图片描述
使用多机多卡的形式
在使用多机多卡训练数据是,通常分为两种形式:(1)数据并行,模型复制为n份,然后每一份模型中传入不同bacth数据用进行训练。(2)模型并行,用于解决一张卡上容不下一个模型的参数量问题。
1.数据并行的方式
Data Parallel - Data distributed across devices
pytorch中主要有两种方式用于实现数据并行:DataParallel 和DistributedDataParallel ,这两个函数可以保证复制(replicate)出来的模型参数相同,主要区别在于DataParallel 用于线程,而 DistributedDataparallel 是用于多进程。
1.1 single machine data parallel
在这里插入图片描述
1.2 Distributed Data Parallel
Distributed Data Parallel 的方式 是通过 多进程实现的,每个进程读取一个小批量的数据然后传递给自己负责的一个gpu
进行计算
在这里插入图片描述

2.模型并行的方式
Model Parallel -Model distributed across devices
2.1 single machine Model Parallel
在这里插入图片描述
2.2 Distributed Data Parallel with Model Parallel

在这里插入图片描述

您可能感兴趣的与本文相关的镜像

PyTorch 2.5

PyTorch 2.5

PyTorch
Cuda

PyTorch 是一个开源的 Python 机器学习库,基于 Torch 库,底层由 C++ 实现,应用于人工智能领域,如计算机视觉和自然语言处理

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值