pytorch GPU cuda 使用 报错 整理

1. 使用指定GPU(单卡)

1.1 方法1:os.environ[‘CUDA_VISIBLE_DEVICES’]

os.environ['CUDA_VISIBLE_DEVICES'] = '2'
model = Net().to('cuda')
data = data.to('cuda')

1.2 方法2:torch.device(‘cuda:2’)

device = torch.device('cuda:2')
model = Net().to(device)
data = data .to(device)

1.3 报错1:RuntimeError: CUDA error: invalid device ordinal CUDA kernel errors might be asynchronously reported

解决方法:方法1和方法2不要混着使用

1.4 torch.load报错:RuntimeError: CUDA out of memory…

解决方法:
1)显存不够只能换卡
2)即使使用方法2指定设备,torch.load也默认在0卡(保存卡)上加载。所以,可以使用方法1指定gpu,或torch.load(path, map_location=lambda storage, loc: storage.cuda(2))

2. 使用指定GPU(多卡 DataParallel)

2.1 正常DP使用(未测试)

DP的使用很简单,使用DataParallel将模型包裹住即可,训练代码与单卡一致。
代码:

import torch
from torch.nn import DataParallel
model = Model()
model = DataParallel(model, device_ids = [0, 1])

2.2 pyg中DP的使用

注意:使用torch geometric(pyg)要用torch_geometric.nn里的DataListLoader!!!
代码:

device_ids = [0, 2, 3]
# 需指定主卡,默认是0卡,不指定device会报错:RuntimeError: Expected all tensors to be on the same device, but found at least two devices, cuda:2 and cuda:0!
device = torch.device(f'cuda:{device_ids[0]}')
model = Net() # 输入特征维度,隐藏特征维度,输出特征维度
model = DataParallel(model, device_ids = device_ids)
model.to(device)

相关推荐

  1. pytorch GPU cuda 使用 整理

    2024-07-14 09:20:04       26 阅读
  2. ceph整理

    2024-07-14 09:20:04       32 阅读
  3. React 开发整理

    2024-07-14 09:20:04       30 阅读
  4. Python调用pyspark整理

    2024-07-14 09:20:04       56 阅读
  5. mapreduce使用

    2024-07-14 09:20:04       29 阅读
  6. Spring boot整合redisson

    2024-07-14 09:20:04       49 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-14 09:20:04       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-14 09:20:04       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-14 09:20:04       58 阅读
  4. Python语言-面向对象

    2024-07-14 09:20:04       69 阅读

热门阅读

  1. 大语言模型LLM

    2024-07-14 09:20:04       21 阅读
  2. 大模型时代,还需要跨端framework吗?

    2024-07-14 09:20:04       27 阅读
  3. 搭建docker私有仓库

    2024-07-14 09:20:04       26 阅读
  4. uvm中使用clone时,为什么要使用$cast

    2024-07-14 09:20:04       23 阅读
  5. Linux命令怎么背?

    2024-07-14 09:20:04       21 阅读
  6. OpenCV npy和txt文件的区别与使用

    2024-07-14 09:20:04       27 阅读