自助網(wǎng)站安裝百度到桌面
概念
PyTorch是非常流行的深度學(xué)習(xí)框架,它在主流框架中對(duì)于靈活性和易用性的平衡最好。
分布式訓(xùn)練根據(jù)并行策略的不同,可以分為模型并行和數(shù)據(jù)并行。
模型并行
模型并行主要應(yīng)用于模型相比顯存來說更大,一塊 GPU 無法加載的場(chǎng)景,通過把模型切割為幾個(gè)部分,分別加載到不同的 GPU 上,來進(jìn)行訓(xùn)練
數(shù)據(jù)并行
這個(gè)是日常會(huì)應(yīng)用的比較多的情況。即每個(gè) GPU 復(fù)制一份模型,將一批樣本分為多份分發(fā)到各個(gè)GPU模型并行計(jì)算。因?yàn)榍髮?dǎo)以及加和都是線性的,數(shù)據(jù)并行在數(shù)學(xué)上也有效。采用數(shù)據(jù)并行相當(dāng)于加大了batch_size,得到更準(zhǔn)確的梯度或者加速訓(xùn)練
常用的 API 有兩個(gè):
torch.nn.DataParallel(DP)
torch.nn.DistributedDataParallel(DDP)
DP 相比 DDP 使用起來更友好(代碼少),但是 DDP 支持多機(jī)多卡,訓(xùn)練速度更快,而且負(fù)載相對(duì)要均衡一些。所以優(yōu)先選用 DDP 吧。
?
參考
Pytorch 分布式訓(xùn)練(DP/DDP)_pytorch分布式訓(xùn)練_ytusdc的博客-CSDN博客
PyTorch分布式訓(xùn)練簡(jiǎn)明教程(2022更新版) - 知乎?
Pytorch分布式訓(xùn)練 - 知乎?
Pytorch多機(jī)多卡分布式訓(xùn)練 - 知乎
Pytorch - 多機(jī)多卡極簡(jiǎn)實(shí)現(xiàn)(附源碼) - 知乎