首页 > 系统相关 >Pytorch分布式训练,其他GPU进程占用GPU0的原因

Pytorch分布式训练,其他GPU进程占用GPU0的原因

时间:2024-01-29 12:33:11浏览次数:27  
标签:训练 Pytorch 进程 GPU GPU0 加载

问题

最近跑师兄21年的论文代码,代码里使用了Pytorch分布式训练,在单机8卡的情况下,运行代码,出现如下问题。
image
也就是说GPU(1..7)上的进程占用了GPU0,这导致GPU0占的显存太多,以至于我的batchsize不能和原论文保持一致。

解决方法

我一点一点进行debug。
首先,在数据加载部分,由于没有将local_rankworld_size传入get_cifar_iter函数,导致后续使用DALI创建pipeline时使用了默认的local_rank=0,因此会在GPU0上多出该GPU下的进程
image

其次,在使用torch.load加载模型权重时,没有设置map_location,于是会默认加载到GPU0上,下图我选择将模型权重加载到cpu。虽然,这会使训练速度变慢,但为了和论文的batchsize保持一致也不得不这样做了。-.-
image

参考文献

  1. nn.parallel.DistributedDataParallel多卡训练,第一张卡会多出进程?

标签:训练,Pytorch,进程,GPU,GPU0,加载
From: https://www.cnblogs.com/littletreee/p/17994231

相关文章

  • 基于 pytorch-openpose 实现 “多目标” 人体姿态估计
    前言还记得上次通过MediaPipe估计人体姿态关键点驱动3D角色模型,虽然节省了动作K帧时间,但是网上还有一种似乎更方便的方法。MagicAnimate就是其一,说是只要提供一张人物图片和一段动作视频(舞蹈武术等),就可以完成图片人物转视频。于是我就去官网体验了一下,发现动作的视频......
  • 如果查看iPhone的GPU
    摘要了解你的显卡对于在电脑上玩现代图形要求高的游戏非常重要。本文介绍了如何轻松查看你的显卡型号以及为什么显卡在玩电脑游戏时如此关键。 引言随着电脑游戏的发展,现代游戏对硬件性能的要求越来越高。十年前发布的显卡已经无法满足当前游戏的需求。因此,了解你的显卡型号......
  • 扎克伯格宣布将累计囤35万个GPU
     Meta公司马克.扎克伯格1月18日在Instagram上发表文章称,该公司正在加强人工智能研究团队的力量,并在充实AI基础设施“弹药库“,计划在今年年底前向芯片设计商英伟达购买H100GPU芯片,累计囤35万个H100GPU芯片,使该公司的GPU总量达到约60万个,跻身全球最强大的AI系统之列。如今美国科技......
  • tensorflow-gpu error:CUDNN_STATUS_ALLOC_FAILED或者self._traceback = tf_stack.extr
    tensorflow-gpuerror:CUDNN_STATUS_ALLOC_FAILED或者self._traceback=tf_stack.extract_stack() 在有些情况下,因为深度学习框架版本更新,细节的变动会使我们的代码最初对应修改:报错信息(出现其中一种):1.Couldnotcreatecudnnhandle:CUDNN_STATUS_ALLOC_FAILED2.self._trac......
  • paddle指定运行gpu
    在PaddlePaddle中指定使用GPU进行运行非常简单。首先,确保你的机器上已经安装了CUDA和cuDNN,并且正确配置了GPU环境。然后,按照以下步骤进行操作:导入PaddlePaddle库:importpaddle设置使用的设备为GPU:paddle.set_device('gpu')如果你有多块GPU,你可以选择指定使用的GPU编号:paddle.set_de......
  • 通过设置CUDA_VISIBLE_DEVICES环境变量来指定使用哪些GPU设备
    指定单个GPU设备:CUDA_VISIBLE_DEVICES=0os.environ["CUDA_VISIBLE_DEVICES"]="0"指定多个GPU设备:CUDA_VISIBLE_DEVICES=0,1,2指定一个范围的GPU设备:CUDA_VISIBLE_DEVICES=0-2在设置了CUDA_VISIBLE_DEVICES环境变量后,只有被指定的GPU设备会被程序所使用,其他未被指定的GPU设备将不......
  • Google的Jax框架的JAX-Triton目前只能成功运行在TPU设备上(使用Pallas为jax编写kernel
    使用Pallas为jax编写kernel扩展,需要使用JAX-Triton扩展包。由于Google的深度学习框架Jax主要是面向自己的TPU进行开发的,虽然也同时支持NVIDIA的GPU,但是支持力度有限,目前JAX-Triton只能在TPU设备上正常运行,无法保证在GPU上正常运行。该结果使用kaggle上的TPU和GPU进行测试获得。......
  • WhisperService 多GPU python
    如何实现“WhisperService多GPUPython”作为一名经验丰富的开发者,你将教会一位刚入行的小白如何实现“WhisperService多GPUPython”。下面是整个实现过程的步骤:步骤说明步骤一导入必要的库并设置GPU步骤二加载数据步骤三构建模型步骤四配置训练参数......
  • python使用whisper用gpu进行计算
    如何使用Python和Whisper进行GPU计算引言:在计算机科学领域,GPU(图形处理器)已经成为进行高性能计算的重要工具。Python作为一种简单易用且功能强大的编程语言,也可以与GPU一起使用,实现各种复杂的计算任务。本文将向刚入行的小白介绍如何使用Python和Whisper库进行GPU计算。流程图:下......
  • WhisperForConditionalGeneration requires the PyTorch library but it was not
    实现WhisperForConditionalGeneration所需的PyTorch库概述在这篇文章中,我将向你解释如何实现"WhisperForConditionalGenerationrequiresthePyTorchlibrarybutitwasnotfound"这个错误。作为一名经验丰富的开发者,我将帮助你了解整个过程,并提供详细的代码解释。表格展示步......