torch.cuda常用指令

CUDA(Compute Unified Device Architecture),是显卡厂商NVIDIA推出的运算平台。 CUDA™是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。 它包含了CUDA指令集架构ISA)以及GPU内部的并行计算引擎。 开发人员可以使用C语言来为CUDA™架构编写程序,所编写出的程序可以在支持CUDA™的处理器上以超高性能运行。

Pytorch通过cuda指令允许让模型、数据加载到GPU上,常用指令如下:

1. torch.cuda.is_available()

cuda是否可用  

import torch
print(torch.cuda.is_available())

2. torch.cuda.device_count()

查看GPU数量

import torch
print(torch.cuda.device_count())

3. torch.cuda.get_device_name()

查看DEVICE(GPU)名

import torch
print(torch.cuda.get_device_name())

4. torch.cuda.current_device()

检查目前使用GPU的序号

import torch
print(torch.cuda.current_device())

5. torch.cuda.set_device()

指定使用的卡

torch.cuda.set_device(gpu_id) #单卡
torch.cuda.set_device('cuda:'+str(gpu_ids)) #多卡

只指定主显卡,如下:

import torch

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

指定特定显卡,如下:

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

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

使用torch.cuda.set_device()可以更方便地将模型和数据加载到对应GPU上, 在定义模型之前加入一行代码即可,但是这种写法的优先级低,如果model.cuda()中指定了参数,那么torch.cuda.set_device()会失效,而且pytorch的官方文档中明确说明,不建议用户使用该方法。

6.  .cuda()

指定模型和数据加载到对应的GPU,以net.cuda()为例,加载方法为:

net.cuda(gpu_id) # 输入参数为int类型,只能指定一张显卡

net.cuda('cuda:'+str(gpu_ids)) #输入参数为str类型,可指定多张显卡

只指定主显卡,如下:

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

指定特定显卡,如下:

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

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

  • 13
    点赞
  • 70
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

华科附小第一名

您的支持对我的前行很重要!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值