Pytorch 分布式并行DDP 卡死 挂起

这篇具有很好参考价值的文章主要介绍了Pytorch 分布式并行DDP 卡死 挂起。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

问题描述:

1、使用A30显卡,使用分布式并行Distributed Data Parallel,运行程序时显卡显存充满,卡在设置local_rank处,并未启动进程组
2、如图:
Pytorch 分布式并行DDP 卡死 挂起
Pytorch 分布式并行DDP 卡死 挂起

解决方案:

0最新解决方案,针对Supermicro主板:BIOS->Advanced->NB Configuration->IOMMU->Disabled
Pytorch 分布式并行DDP 卡死 挂起
==其它型号的主板的BIOS可能还需要禁用ACS:
https://zhuanlan.zhihu.com/p/607203976
https://www.supermicro.com/support/faqs/faq.cfm?faq=20264
https://www.supermicro.com/support/faqs/faq.cfm?faq=22226
后面的1-4可不看了~

1、更换后端为“Gloo”,正常执行shell命令运行程序。

torch.distributed.init_process_group(backend="Gloo")
python -m torch.distributed.launch --nproc_per_node=7 --master_port 8888 main.py

2、仍旧使用“NCCL”后端,但需要更改环境变量,在shell命令前加入禁用P2P。

torch.distributed.init_process_group(backend="NCCL")
NCCL_P2P_DISABLE=1 python -m torch.distributed.launch --nproc_per_node=7 --master_port 8888 main.py

3、仍旧使用“NCCL”后端,但需要更改环境变量,永久更改环境设置,正常执行shell命令运行程序。

torch.distributed.init_process_group(backend="NCCL")
vim ~/.bashrc
export NCCL_P2P_DISABLE=1
source ~/.bashrc.
python -m torch.distributed.launch --nproc_per_node=7 --master_port 8888 main.py

4、建议使用第3个方案,据我测试,Gloo后端没有NCCL后端通信速度快,程序运行速度NCCL较快。另外,每次加上修改环境变量的命令也挺烦的,修改bash环境变量一劳永逸。

bug分析:

NCCL_P2P_DISABLE=1将禁用GPU之间直接通信(如使用NVlink或者PCIe),鉴于NVDIA官网显示A30支持NVlink或者PCIe,因此判断可能是硬件故障或者是软件版本不匹配导致P2P通信受阻,使得进程阻塞,程序挂起。

参考:

1:https://zhuanlan.zhihu.com/p/60054075
2:https://github.com/pytorch/pytorch/issues/23074文章来源地址https://www.toymoban.com/news/detail-413937.html

到了这里,关于Pytorch 分布式并行DDP 卡死 挂起的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【深入了解PyTorch】PyTorch分布式训练:多GPU、数据并行与模型并行

    在深度学习领域,模型的复杂性和数据集的巨大规模使得训练过程变得极具挑战性。为了加速训练过程,利用多个GPU进行并行计算是一种常见的方法。PyTorch作为一种流行的深度学习框架,提供了强大的分布式训练工具,使得多GPU、数据并行和模型并行等技术变得更加容易实现

    2024年02月12日
    浏览(39)
  • 分布式云计算与分布式并行计算研究综述

    In this paper, we present a discussion panel of two of the hottest topics in this area namely distributed parallel processing and distributed cloud computing. Various aspects have been discussed in this review paper such as concentrating on whether these topics are discussed simultaneously in any previous works. Other aspects that have been reviewed in this

    2024年02月01日
    浏览(75)
  • 分布式深度学习中的数据并行和模型并行

    🎀个人主页: https://zhangxiaoshu.blog.csdn.net 📢欢迎大家:关注🔍+点赞👍+评论📝+收藏⭐️,如有错误敬请指正! 💕未来很长,值得我们全力奔赴更美好的生活! 对于深度学习模型的预训练阶段,海量的训练数据、超大规模的模型给深度学习带来了日益严峻的挑战,因此,经

    2024年01月24日
    浏览(43)
  • 用通俗易懂的方式讲解大模型分布式训练并行技术:MOE并行

    前面的文章中讲述了数据并行、流水线并行、张量并行、序列并行、自动并行等多种并行技术。但现在的模型越来越大,训练样本越来越多,每个样本都需要经过模型的全部计算,这就导致了训练成本的平方级增长。 而当我们希望在牺牲极少的计算效率的情况下,把模型规模

    2024年02月02日
    浏览(63)
  • mmdetection使用指定的显卡号并行分布式训练

    后面的不用看了,直接看最省事版本:                 直接用CUDA_VISIBLE_DEVICES=\\\"2,3\\\"指定多卡就可以,也可以给sh文件传参进去。但是,切记!切记!切记! sh文件里不能有空行,尤其是使用反斜杠 连接多行的时候 ,我一开始尝试指定多卡不起作用,就是因为图美观手

    2024年02月08日
    浏览(37)
  • PyTorch数据并行(DP/DDP)浅析

    一直以来都是用的单机单卡训练模型,虽然很多情况下已经足够了,但总有一些情况得上分布式训练: 模型大到一张卡放不下; 单张卡batch size不敢设太大,训练速度慢; 当你有好几张卡,不想浪费; 展示一下技术 。 由于还没遇到过一张显卡放不下整个模型的情况,本文的

    2024年02月02日
    浏览(32)
  • 关于subprocess.CalledProcessError: Commandxxx returned non-zero exit status 1. 的问题--pytorch分布式训练问题

    我想跑一个模型的训练源代码时,就出现了这个问题,之前上网一顿查,发现并没有解决的办法。所说的也跟这个对不上。这个问题的本身是有关于pytorch分布使训练的问题。  实际情况如下。 出现这个问题时,解决问题的关键不在于这个问题本身,而是在于这个问题前面所

    2024年02月15日
    浏览(33)
  • Pytorch实现多GPU并行训练(DDP)

    Pytorch实现并行训练通常有两个接口: DP(DataParallel) 和 DDP(DistributedDataParallel) 。目前 DP(DataParallel) 已经被Pytorch官方deprecate掉了,原因有二:1, DP(DataParallel) 只支持单机多卡,无法支持多机多卡;2, DP(DataParallel) 即便在单机多卡模式下效率也不及 DDP(Distributed

    2024年02月11日
    浏览(86)
  • Megatron-LM:Transformer模型专用分布式张量模型并行方法

    论文标题:Megatron-LM: Training Multi-Billion Parameter Language Models Using Model Parallelism 论文链接:https://arxiv.org/abs/1909.08053 论文来源:NVIDIA 随着自然语言处理领域预训练语言模型的规模变得越来越大,它们超过了现代处理器的内存限制,需要额外的内存管理技术,如激活检查点(activ

    2024年02月15日
    浏览(39)
  • Pytorch 多卡并行(3)—— 使用 DDP 加速 minGPT 训练

    前文 并行原理简介和 DDP 并行实践 和 使用 torchrun 进行容错处理 在简单的随机数据上演示了使用 DDP 并行加速训练的方法,本文考虑一个更加复杂的 GPT 类模型,说明如何进行 DDP 并行实战 MinGPT 是 GPT 模型的一个流行的开源 PyTorch 复现项目,其实现简洁干净可解释,因而颇具

    2024年02月09日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包