PyTorch Device设置方法

读卡规则

当服务器有多个GPU时,设置CUDA_VISIBLE_DEVICES 环境变量可以改变CUDA程序所能使用的GPU设备。在默认情况下,标号为0的显卡为主卡,如主机中有4块显卡,那么每张显卡的默认标号为[0,1,2,3]。多卡设置规则如下:

Environment Variable SyntaxResults
CUDA_VISIBLE_DEVICES=1Only device 1 will be seen
CUDA_VISIBLE_DEVICES=0,1Devices 0 and 1 will be visible
CUDA_VISIBLE_DEVICES=“0,1”Same as above, quotation marks are optiona
CUDA_VISIBLE_DEVICES=0,2,3Devices 0, 2, 3 will be visible;device 1 is masked

CUDA应用运行时,CUDA将遍历当前可见的设备,并从零开始为可见设备编号。第一种情况,卡1设置为主卡,但CUDA遍历时会设置为可见编号0。最后一种情况,设备0,2,3将显示为设备0,1,2。如果将字符串的顺序更改为“2,3,0”,则设备2,3,0将分别被设置为0,1,2。如果为CUDA_VISIBLE_DEVICES 设置了不存在的设备,所有实际设备将被隐藏,CUDA 应用将无法使用GPU设备;如果设备序列是存在和不存在设备的混合,那么不存在设备前的所有存在设备将被重新编号,不存在设备之后的所有设备将被屏蔽。当前可见的(重新编号后的)设备可使用CUDA 程序来查看。
举例:

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

运行:
CUDA_VISIBLE_DEVICES=1 python test.py
结果:
0
虽然指定使用设备为卡1,但CUDA会编号为0,因此显示的编号还是0。

设置GPU

临时设置

直接设置

export CUDA_VISIBLE_DEVICES=1

运行bash脚本时指定GPU

CUDA_VISIBLE_DEVICES=gpu_ids sh test.sh

在代码中指定GPU

import os 
os.environ['CUDA_VISIBLE_DEVICES'] = gpu_ids 

运行程序时指定GPU

CUDA_VISIBLE_DEVICES=gpu_ids python test.py

注意:这种设置方法一定要在第一次使用 cuda 之前进行设置

永久设置

管理员身份运行

~/.bashrc

在最后加上

export CUDA_VISIBLE_DEVICES=gpu_ids

然后

source ~/.bashrc
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值