分布式/并行
城俊BLOG
从此好好码代码。。
展开
-
pytorch 1.7.0 torchvision 0.8.1 torch.cuda.amp gradscaler DDP 训练卡死
报错:pytorch DDP 模型卡住代码# 具体卡住的代码yolov5训练代码 train.py 中有一句: scaler.step(optimizer) # optimizer.step程序运行到第二个epoch的时候,卡住了,具体卡在调用语句:/home/xxx/lib/python3.7/site-packages/torch/cuda/amp/grad_scaler.py中的 if not sum(v.item() for v原创 2022-05-08 22:10:18 · 1038 阅读 · 0 评论 -
【汇总】多进程、多线程、并行、并发相关
文章目录简单示例按键检测、转发报错和解决进程间通信简单示例linux ubuntu Python 多进程执行程序按键检测、转发通过SSH协议给python多进程转发按键python multiprocessing多进程按键检测,优雅地终止多进程(signal信号量和pynput等多种方法)报错和解决python多进程 multiprocessing.pipe 管道没有数据接收端会卡死,无提示,无报错!!!python多进程管道 multiprocessing.Pipe OSErro原创 2021-07-24 16:34:58 · 122 阅读 · 0 评论 -
linux ubuntu Python 多进程并行执行程序
from functools import partial pt = partial(add_mask, args) # multi process from multiprocessing import Process import multiprocessing as mp ctx = mp.get_context('spawn') q = ctx.Queue() split_list = r'/home/xxx/data/CASI...原创 2021-07-05 16:46:12 · 1357 阅读 · 5 评论 -
pytorch分布式 RuntimeError: module must have its parameters and buffers on device cuda:0 (device_ids[0]
报错:RuntimeError: module must have its parameters and buffers on device cuda:0 (device_ids[0]) but found one of them on device: cuda:1解决:把DP改成DDP解决了报错的代码:# DP模式, module_a是一个分类器module_a = torch.nn.DataParallel(module_a)改完的代码:local_rank = 0# DDP模式mod原创 2021-05-13 11:26:46 · 1492 阅读 · 0 评论 -
pytorch分布式:all_gather, all_reduce
all_gather: 把一个tensor广播到一个list,返回tensor list.chunk: 把一个tensor切分成几块# 把 features.data广播到list中的元素上,list中的内容是total_features切分成的几个块,最后返回这个list.相当于把features拷贝成了好几份 dist.all_gather(list(total_features.chunk(self.world_size, dim=0)), features.data)htt翻译 2021-04-29 11:14:42 · 5648 阅读 · 0 评论