DIFF.BLOG
Home
Discover
Jobs
More
Suggest a blog
Upvotes plugin
Report bug
Contact
About
Sign up  
单机多卡DDP tutorial
1
·
HikariLi
·
Jan. 21, 2024, 1:43 a.m.
Summary
单机多卡DDP tutorial 1 什么是DDP当数据足够多的时候,一张显卡装不下很大的batch_size,我们需要将数据分摊到多个显卡上去。DDP的思路很简单,我们在每个显卡上面都创建一个模型的复制以及相同的Optimizer,数据被Distributed Sampler平分,并送到每张显卡上完成Forward和Backward过程。但如果只做以上步骤的话,我们得到的是四个不同参数的模型。因为每张显卡的数据不同,那么计算图得到的梯度也不同,直接更新参数会导致每张显卡的模型不一样。DDP则利用Synchronize与All Reduce技术来同步所有显卡的训练,而这个技术好的地方在于它将Backward过程与显卡间通信同时进行,而不是等到所有梯度都计算出来之后再进行显卡间Synchornize,这样可以最大程度上保证显卡不会空闲。 2 Code Walkthrough要使用DDP,至少需要这些东西12345678import torch.multiprocessing as mp# Python多进程分配器from torch.utils.data.distributed imp...
Read full post on jesseprince.github.io
Submit
RECENT POSTS FROM THE AUTHOR