问题描述
- 运行Python程序时,出现以下错误:
RuntimeError: CUDA error: invalid device ordinal
CUDA kernel errors might be asynchronously reported at some other API call,so the stacktrace below might be incorrect.
For debugging consider passing CUDA_LAUNCH_BLOCKING=1.
原因分析:
RuntimeError: CUDA error: invalid device ordinal 错误通常表示你在尝试使用一个无效的 CUDA 设备编号。可能原因:
- 指定的设备编号超过了实际可用的设备数量
- 某些设备可能没有正确初始化
解决方案:
1、检查可用的CUDA设备
- 确认你的系统中有多少个可用的 CUDA 设备
import torch
# 列出所有可用的 CUDA 设备
device_count = torch.cuda.device_count()
print(f"Number of available CUDA devices: {device_count}")
for i in range(device_count):
print(f"Device {i}: {torch.cuda.get_device_name(i)}")
- 还可以使用 NVIDIA 提供的命令行工具 nvidia-smi 来检查 CUDA 设备。在cmd窗口中输入以下命令:
nvidia-smi
2、确保设备编号正确
- 检查代码中使用的设备编号是有效的。例如,如果你有两块 GPU,设备编号应该是 0 或 1
注:检查代码后,发现设备编号写错了。修改后,程序能正常运行