Pytorch - GPU ID 指定 pytorch gpu 指定
2024-08-23 15:34:46
PyTorch 关于多 GPUs 时的指定使用特定 GPU.
PyTorch 中的 Tensor,Variable 和 nn.Module(如 loss,layer和容器 Sequential) 等可以分别使用 CPU 和 GPU 版本,均是采用 .cuda()
方法.
如:
import torch
a = torch.Tensor(2, 3)
if torch.cuda.is_available(): # 判断是否支持 CUDA
a.is_cuda # False
a = a.cuda() # 放到 GPU 上
a.is_cuda # True
a.get_device() # 默认使用 GPU-0
采用 .cuda()
方法默认使用的是 GPU-0,等价于 .cuda(0)
.
1. GPU ID 指定
当需要指定使用多张 GPUs 中的特定 GPU 时,可以采用 .cuda(1)
方法,但需要对大量的 Tensor、Variable等进行修改.
参考网络上的方法,替代方案主要有:
[1] - 使用 torch.cuda.set_device(id)
函数
import torch
torch.cuda.set_device(id) # id=0, 1, 2 等
[2] - 采用类似 Tensorflow 指定 GPU 的方式,使用 CUDA_VISIBLE_DEVICES
# 使用终端命令行运行的 GPU 指定方式
CUDA_VISIBLE_DEVICES=1 python python_script.py
# 在 python 脚本中的 GPU 指定方式
import os
os.environ["CUDA_VISIBLE_DEVICES"] = "2"
2. torch.device
如:
import torch
device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
a_cpu = torch.Tensor(2, 3)
# tensor([[0.0000e+00, 0.0000e+00, 1.2771e-40],
# [9.0079e+15, 1.6751e-37, 2.9775e-41]])
a_cpu.device
# device(type='cpu')
a_cuda = a.to(device)
# tensor([[-2.1800e-01, 4.5737e-41, 2.3351e-37],
# [ 0.0000e+00, 4.4842e-44, 0.0000e+00]], device='cuda:0')
a_cuda.device
# device(type='cuda', index=0)
# 查看当前 gpu id
curr_gpuid = torch.cuda.current_device()
# 0
最新文章
- 唯美!分享8款响应式的 WordPress 餐厅主题
- Validform 学习笔记---基础知识整理
- Android 弹出对话框Dialog充满屏幕宽度
- 怎么录制Android视频
- 2016 ACM/ICPC Asia Regional Qingdao Online HDU5882
- kickstart一键自动安装Linux系统
- Linux系统启动过程介绍
- [一个经典的多线程同步问题]解决方案三:互斥量Mutex
- hdu4712 Hamming Distance
- Scala是一门现代的多范式编程语言
- TreeMap倒序以及遍历
- 03_Weblogic之配置简单域:启动和配置域,使用模板创建域,使用控制台
- 16、爬取知乎大v张佳玮的文章“标题”、“摘要”、“链接”,并存储到本地文件
- 节流(Throttling)和去抖(Debouncing)详解
- Quartz.net入门
- 21 python的魔法方法(转)
- IDEA整合Junit测试框架
- Twisted网络库编程实例
- canvas(二) lineCap demo
- eclpse安装jetty插件
热门文章
- JavaScript的原型链
- 工控安全入门(二)—— S7comm协议
- ThinkPHP中实现微信支付(jsapi支付)流程
- 建筑设计类软件整理ACDSee,PS,CAD,Ecotect,SketchUp,Phoenics,Revit,Rhino,
- win10 下安装 neo4j
- 简单几招助您加速 ARM 容器应用开发和测试流程
- Maven常用命令备忘
- 【eclipse】解决:eclipse或STS运行maven工程出现Missing artifact jdk.tools:jdk.tools:jar:1.7问题
- RestFul 与 RPC
- python输出最大公约数和最小公倍数