torch.cuda常用指令
Posted 华科附小第一名
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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)
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)
以上是关于torch.cuda常用指令的主要内容,如果未能解决你的问题,请参考以下文章
torch报错AssertionError: Torch not compiled with CUDA enabled解决方法 torch适配CUDA降版本选择gpu版本最终方案
torch.cuda.is_avaiable 在 nvidia-smi 不工作的情况下返回 False
错误处理:RuntimeError: Input type (torch.cuda.FloatTensor) and weight type (torch.FloatTensor) should be
如何将 torch.device('cuda' if torch.cuda.is_available() else 'cpu') 编写为完整的 if else 语句?