【Linux,Windows】指定GPU运行代码

查看GPU状态

nvidia-smi

程序中指定GPU

os.environ["CUDA_VISIBLE_DEVICES"] = '0,1,2,3'  # 这行代码须放在程序访问GPU之前,如程序的开头。

命令行指定GPU

CUDA_VISIBLE_DEVICES=0,1,2,3 python test.py  

多个GPU协同运行 

import os 
os.environ["CUDA_VISIBLE_DEVICES"] = "0,1"
os.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID"

【切换】

export TRANSFORMERS_OFFLINE=1
export HF_DATASETS_OFFLINE=1
export CUDA_VISIBLE_DEVICES=1,2
export CUDA_DEVICE_ORDER=PCI_BUS_ID
nohup python data_train.py > log/log.txt 2>&1 &

同时在 cfg 文件中配置好参数

tt.arg.num_gpus = 1 if tt.arg_num_gpus is None else tt.arg.num_gpus  # 官方标准设置
# tt.arg.num_gpus = 2  # 或者根据自身机器舍子gpu的个数

在模型初始化函数中

# self.enc_module = enc_module.to(tt.arg.device)
# self.gnn_module = gnn_module.to(tt.arg.device)
self.enc_module = enc_module.cuda()
self.gnn_module = gnn_module.cuda()
​
if tt.arg.num_gpus > 1:
        print('Construct parallel model ...')
        self.enc_module = nn.DataParallel(self.enc_module)
        self.gnn_module = nn.DataParallel(self.gnn_module)
​
        print('done!\n')

pytorch中GPU加速测试

import torch
import time
from torch import autograd
#GPU加速
print(torch.__version__)
print(torch.cuda.is_available())

a=torch.randn(10000,1000)
b=torch.randn(1000,10000)
print(a)
print(b)
t0=time.time()
c=torch.matmul(a,b)
t1=time.time()

print(a.device,t1-t0,c.norm(2))

device=torch.device('cuda')
print(device)
a=a.to(device)
b=b.to(device)

t0=time.time()
c=torch.matmul(a,b)
t2=time.time()
print(a.device,t2-t0,c.norm(2))


t0=time.time()
c=torch.matmul(a,b)
t2=time.time()

print(a.device,t2-t0,c.norm(2))

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值