在GPU上运行pytorch程序(指定单/多显卡)

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

目录

1. 使用CUDA_VISIBLE_DEVICES

2. 使用cuda()和torch.cuda.set_device()

3. 使用device

4. 使用torch.nn.DataParallel


1. 使用CUDA_VISIBLE_DEVICES

使用CUDA_VISIBLE_DEVICES设置显卡https://blog.csdn.net/qq_43307074/article/details/127659967

2. 使用cuda()和torch.cuda.set_device()

torch.cuda常用指令https://blog.csdn.net/qq_43307074/article/details/127628498?spm=1001.2014.3001.5501方法1和方法2可以同时使用,比如在运行代码时使用:

CUDA_VISIBLE_DEVICES=2,3 python test.py

而在代码内部又指定:

model.cuda(1)

那么model会在GPU3上运行。原理是CUDA_VISIBLE_DEVICES遍历当前可见的设备,并从零开始为可见设备编号。CUDA_VISIBLE_DEVICES使得只有GPU2,3可见,程序就会把这两张显卡编号为GPU0,1,2,3,cuda(1)把model加载到了GPU1上,则实际使用的显卡是GPU3。

如果利用.cuda()或torch.cuda.set_device()把模型加载到多个显卡上,而实际上只使用一张显卡运行程序的话,那么程序会把模型加载到第一显卡上,在运行代码时使用:

CUDA_VISIBLE_DEVICES=2,3 python test.py

而在代码内部又指定:

model.cuda('cuda:1,0')

那么model会在GPU3上运行。

3. 使用device

3.1. 检查所用的device

import torch
x = torch.tensor([[1,2,3],[4,5,6]])
print(x.device)

pytorch在gpu上运行,GPU,服务器,深度学习,pytorch,人工智能,服务器,开发语言

3.2. 模型/数据指定GPU,具体有以下几种形式:

import torch
cuda = torch.device('cuda:0'/'cuda')
x = torch.tensor([1,2,3],device = cuda)
print(x.device)
import torch
device = torch.device('cuda:0'/'cuda')
x = torch.rand((4,5)).to(device)
print(x.device)
import torch
x = torch.tensor([1,2,3],device = torch.device('cuda:0'/'cuda')
print(x.device)
import torch
device = torch.device('cuda:0'/'cuda')
...
net = net.to(device)
print(net.device)

 经典写法:

device=torch.device("cuda:0" if torch.cuda.is_available() else "cpu")

pytorch在gpu上运行,GPU,服务器,深度学习,pytorch,人工智能,服务器,开发语言

如果想要在其他GPU上运行,举例如下:

import torch
import os 
os.environ['CUDA_VISIBLE_DEVICES'] = '0,1,2'

cuda = torch.device('cuda:1')
x = torch.tensor([[1,2,3]],device = cuda)
print(x.device)

4. 使用torch.nn.DataParallel

多卡数据并行一般使用torch.nn.DataParallel

torch.nn.DataParallel(model,device_ids)
举例:
torch.nn.DataParallel(model, device_ids=device_ids)
torch.nn.DataParallel(modul, device_ids=[x1,x2,x3,x4,x5,x6,x7])
# 使用的GPU一定是编号连续的
torch.nn.DataParallel(model,device_ids = range(torch.cuda.device_count()) )

其中model是需要运行的模型,device_ids指定部署模型的显卡,数据类型是list/device。

device_ids中的第一个GPU(即device_ids[0])和model.cuda()或torch.cuda.set_device()中的第一个GPU序号应保持一致,否则会报错。此外如果两者的第一个GPU序号都不是0,比如设置为:

model=torch.nn.DataParallel(model,device_ids=[2,3])
model.cuda(2)

那么程序可以在GPU2和GPU3上正常运行。device_ids的默认值是使用可见的GPU,不设置model.cuda()或torch.cuda.set_device()等效于设置了model.cuda(0)

具体举例如下:

model = model.cuda() 
device_ids = [0, 1] 	
model = torch.nn.DataParallel(model, device_ids=device_ids)
model  = model.to(device)
model = nn.DataParallel(model, device_ids=[0,1,2,3])
device_ids = [0, 1]
model = torch.nn.DataParallel(model, device_ids=device_ids).cuda()

所有的数据要先load到主GPU上,然后再分发给每个GPU去train,因此应当将model先放到GPU上,然后在进行并行训练。

参考

在pytorch中指定显卡https://zhuanlan.zhihu.com/p/166161217文章来源地址https://www.toymoban.com/news/detail-812793.html

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

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

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

相关文章

  • 在服务器上指定GPU跑代码

    查看GPU状态和信息,找到空闲的GPU: 从图中 Processes 表格我们可以发现0、1、2号GPU均是可以利用的。于是我们可以在python文件中加入以下代码,表示使用0号GPU: 或者可以在命令行窗口处输入,表示使用1号GPU运行代码: 再或者使用  torch.cuda.set_device() 函数 指定gpu使用编号:

    2024年02月04日
    浏览(41)
  • linux服务器安装gpu版本的pytorch

    每次换个环境又要安装pytorch,最开始安装总是出错,写下不踩坑安装全过程 运行命令 nvidia-smi 如下所示  比方说我的是右上角显示11.2,所以  选择Linux ,这里没有我的cuda版本    找过往版本Previous PyTorch Versions | PyTorch  发现有11.3  11.1版本和10.2版本,但是没有11.2版本,查

    2024年02月04日
    浏览(40)
  • Python跑pytorch程序抢占公共GPU自动运行脚本

    当我们有一个服务器,服务器上面有4-5个GPU,那么我们需要时刻看哪个GPU空着,当发现服务器空闲了,我们就可以跑自己的深度学习了。 然而,人盯着总是费时费力的,所以可以让Python看到哪个GPU空闲就插进去吗? 进行下面步骤即可。 名字为:nvidia_ml_py-12.535.133-py3-none-any

    2024年01月17日
    浏览(71)
  • 在GPU服务器(Linux)上安装Anaconda和PyTorch环境

    Anaconda官网:https://repo.anaconda.com/archive/ 根据自己需要,复制安装包名字,以Anaconda3-2023.07-2-Linux-x86_64.sh为例 命名规则:Anaconda3-版本号-Linux-x86_64.sh 在终端输入命令, 下载 安装包 运行安装脚本 ,可以指定路径 bash 安装包名字 -p PATH -u 安装完成后, 设置环境变量 ,把Anaconda下

    2024年02月11日
    浏览(40)
  • 关于GPU显卡、CUDA版本、python版本、pytorch版本对应

    提示:算力、cuda版本、python版本、pytorch版本有一项不匹配都无法使用 一、查看自己计算机的当前cuda版本以及gpu的算力 二、根据算力下载对应的cuda版本 三、根据算力以及CUDA版本下载查看需要的pytorch版本 四、下载可以兼容上述Pytorch版本的python 五、下载上述pytorch版本 查看

    2024年02月08日
    浏览(38)
  • pytorch指定使用多个GPU

    方式一:指定使用所有GPU 方式二:结合系统环境变量使用特定的GPU 方式三:直接指定特定的GPU 以上所有情况中,后面使用的数据都要映射到对应的GPU设备。 如果x,y是数据:

    2024年02月12日
    浏览(22)
  • paddle指定运行gpu

    在PaddlePaddle中指定使用GPU进行运行非常简单。首先,确保你的机器上已经安装了CUDA和cuDNN,并且正确配置了GPU环境。然后,按照以下步骤进行操作: 导入PaddlePaddle库: 设置使用的设备为GPU: 如果你有多块GPU,你可以选择指定使用的GPU编号: 在你的代码中,使用PaddlePaddle提供

    2024年01月25日
    浏览(28)
  • GPU版本的pytorch安装(显卡为3060ti,如何选择对应的cuda版本)

    显卡为3060ti g6x,操作系统win10 要清楚下面的几个常识 1.GPU和CPU是采用不同架构设计出来的,简单来说,GPU会比CPU多很多计算单元,用于训练网络时,速度比CPU快很多。 2.CUDA是一个计算平台和编程模型,提供了操作GPU的接口。 3.网上很多教程说的安装CUDA其实是指CUDA Toolkit,是

    2024年02月08日
    浏览(36)
  • pytorch如何查看tensor和model在哪个GPU上以及指定GPU设备

    1. 查看tensor所在的设备: 2. 查看model所在的设备 3. Pytorch中将模型和张量加载到GPU的常用方法有两种。 方式1: 方式2: 4. 指定GPU代码 参考链接:PyTorch 中 选择指定的 GPU 注意需要将指定GPU代码放在程序段最开始的部位,如下图所示: 5.查看gpu个数

    2024年02月13日
    浏览(31)
  • GPU云服务器使用教程、运行YOLOV5项目并连接到本地VSCode(Pycharm)

    编程如画,我是panda! 之前已经教过大家如何在自己的电脑中配置Pytorch深度学习环境,但是有些小伙伴没有英伟达的GPU,所以用CPU的话训练模型会比较慢,所以这次出一期使用GPU云服务器的教程。 码字不易,如果对各位有帮助,希望点赞收藏加关注哦~ 目录 前言 一、服务器

    2024年01月17日
    浏览(49)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包