pytorch:单机多卡(GPU)训练

这篇具有很好参考价值的文章主要介绍了pytorch:单机多卡(GPU)训练。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目前pytorch支持2种多卡训练:
1. torch.nn.DataParallel
2. torch.nn.parallel.DistributedDataParallel
第一种只支持单机多卡,第二种支持单机多卡和多机多卡;性能上,第二种优于第一种,真正实现分布式训练。下面只介绍第二种方法的单机多卡训练:

import torch
import torch.nn as nn
import torch.utils.data as Data
import torch.distributed as dist
from torch.nn.parallel import DistributedDataParalled as ddp
import os
import argparse


# 1. 初始化group,参数backend默认为nccl,表示多gpu,多cpu是其它参数
dist.init_process_group(backend='nccl')

# 2. 添加一个local_rank参数
parser = argparse.ArgumentParser()
parser.add_argument("--local_rank")
args = parser.parse_args()

# 3. 从外面得到local_rank参数,在调用DDP的时候,其会根据调用gpu自动给出这个参数
local_rank = args.local_rank

# 4.根据local_rank指定使用那块gpu
torch.cuda.set_device(local_rank)

# 5.定义设备
os.environ['CUDA_VISIBLE_DEVICES'] = "0,1,2,3"  # 根据gpu的数量来设定,初始gpu为0,这里我的gpu数量为4
DEVICE = torch.device("cuda", local_rank)

# 6. 把模型加载到cuda上
model = Model().to(device)  # 自己定义的模型

# 7. 初始化ddp模型
model = ddp(model, device_ids=[local_rank], output_device=local_rank)

# 8. 数据分到各gpu上
traindata = datasetloader()  # 此处为加载训练集
testdata = datasetloader()  # 此处为加载测试集
train_samper =Data.distributed.DistributedSampler(traindata)  # 切分训练数据集
test_samper =Data.distributed.DistributedSampler(testdata)  # 切分测试数据集
trainloader = Data.DataLoader(dataset=traindata, batch_size=32, sampler=train_samper, shuffle=False, num_workers=2)  
testloader = Data.DataLoader(dataset=testdata, batch_size=32, sampler=test_samper, shuffle=False, num_workers=2)

根据以上设置,便可实现单机多卡的分布式训练,这里需要注意一点,也是我踩过的坑,就是Data.DataLoader的shuffle必须为false,否则报错。

最后,在终端,使用以下命令行运行训练脚本(train.py)即可:

python -m torch.distributed.launch --nproc_per_node=4 train.py

这里nproc_per_node的参数表示gpu数量文章来源地址https://www.toymoban.com/news/detail-642675.html

到了这里,关于pytorch:单机多卡(GPU)训练的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 【解决】pytorch单机多卡问题:ERROR: torch.distributed.elastic.multiprocessing.api:failed

    【解决】pytorch单机多卡问题:ERROR: torch.distributed.elastic.multiprocessing.api:failed

    最近在使用单机多卡进行分布式(DDP)训练时遇到一个错误:ERROR: torch.distributed.elastic.multiprocessing.api:failed。 而实际报错的内容是:ValueError: sampler option is mutually exclusive with shuffle. 报错的详细内容如下截图所士: 出现这种错误的原因是,在分布式训练时使用了sampler,并且d

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

    Pytorch 多卡并行(3)—— 使用 DDP 加速 minGPT 训练

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

    2024年02月09日
    浏览(17)
  • 【深度学习:入门】如何配置CUDA,使用gpu本地训练

    【深度学习:入门】如何配置CUDA,使用gpu本地训练

    由于显卡的不同,需要先查看我们显卡及驱动最高支持的cuda。 进入cmd输入 nvidia -smi 版本支持向下兼容,为了保证能够和其他开发库版本兼容,这里使用的CUDN版本为11.6. CUDA Toolkit| NVIDIA Developer官网找到对应CUDA版本。(我这里选择的是CUDA11.6) 依次选择如下配置,点击Download下

    2024年02月08日
    浏览(9)
  • Windows下PyTorch深度学习环境配置(GPU)

    Windows下PyTorch深度学习环境配置(GPU)

    (路径最好全英文) (下载好后,可以创建其他虚拟环境,因为是自己学习,所以先不放步骤,有需要者可以参考B站up我是土堆的视频) 1.确定显卡型号 (如图右上角,我是1050ti) 确定显卡算力 6.1 (更多CUDA和GPU间的算力关系可参考https://zhuanlan.zhihu.com/p/544337083?utm_id=0) 确

    2024年02月16日
    浏览(25)
  • 深度学习环境配置pytorch-GPU版本

    深度学习环境配置pytorch-GPU版本

    一、下载与安装Anaconda 官网:Free Download | Anaconda 安装时添加环境变量勾选上,这样可以减少一步操作,不用再去自己手动添加了。 二、在anaconda里面创建虚拟环境 创建虚拟环境,其中pytorch为虚拟环境名,3.8.8对应python版本号: 激活进入虚拟环境,其中pytorch为虚拟环境名:

    2024年02月14日
    浏览(14)
  • pytorch的深度学习环境安装配置(GPU版)

    pytorch的深度学习环境安装配置(GPU版)

    目录 一些概念理解  0.anaconda配置国内镜像源  1.anaconda建立一个新的虚拟环境  2. 更新显卡驱动CUDA Driver  3. 安装pytorch 3.1 法(一):利用pip安装Pytorch 3.1.1 法(一)在线pip安装  3.1.2 法(二)本地pip安装 3.2 法(一):利用conda安装Pytorch 3.3 验证pytorch是否安装成功  4. Pychar

    2023年04月15日
    浏览(15)
  • 完整教程:深度学习环境配置(GPU条件&pytorch)

    完整教程:深度学习环境配置(GPU条件&pytorch)

    如果是python小白,强烈推荐B站小土堆的视频,讲得很清晰(但需要花些时间),地址如下: 最详细的 Windows 下 PyTorch 入门深度学习环境安装与配置 CPU GPU 版 如果有些基础,跟着往下看就行。 配置 作用 Anaconda 灵活切换python运行环境、高效使用python包 GPU 软硬件:硬件基础(

    2024年02月15日
    浏览(14)
  • 试用阿里云GPU服务器进行深度学习模型训练

    最近在用PyTorch时发现在本地训练模型速度一言难尽,然后发现阿里云可以白嫖gpu服务器,只要没有申请过PAI-DSW资源的新老用户都可以申请5000CU*H的免费额度,三个月内有效。 阿里云免费试用活动页面 一、申请试用并创建实例 点击试用,完成注册、实名、领取产品,然后前往

    2024年04月17日
    浏览(12)
  • [超级详细]如何在深度学习训练模型过程中使用GPU加速

    [超级详细]如何在深度学习训练模型过程中使用GPU加速

    前言 在深度学习当中,我们训练模型通常要对模型进行反复的优化训练,仅用CPU来进行训练的话需要花费很长时间,但是我们可以使用GPU来加速训练模型,这样就可以大大减少我们训练模型花费的时间。下图是我在训练模型过程中使用GPU加速和未使用GPU加速花费时间的对比:

    2024年02月09日
    浏览(11)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包