Python3.9下PyTorch报CUDA error: invalid device ordinal问题求助
错误成因分析
这个RuntimeError: CUDA error: invalid device ordinal错误的核心原因是你指定的GPU设备序号不存在或不可用,具体可能有以下几种情况:
GPU设备序号超出实际可用范围:你的系统中实际可用的GPU数量不足3个(CUDA设备序号从0开始计数),比如只有2个GPU(序号0、1),却尝试使用
cuda:2,自然会触发无效序号错误。可以运行以下代码确认可用GPU数量:import torch print(torch.cuda.device_count())环境变量限制了可见GPU:如果设置了
CUDA_VISIBLE_DEVICES环境变量,只允许程序访问部分GPU,比如设置为CUDA_VISIBLE_DEVICES=0,1,那么程序只能看到序号0、1的GPU,cuda:2就会被判定为无效设备。TensorFlow初始化抢占/修改了GPU可见性:代码开头导入了TensorFlow,TensorFlow默认会初始化CUDA上下文,可能会占用GPU或者修改GPU可见配置,导致PyTorch无法识别到序号为2的GPU。可以尝试调整导入顺序,先初始化PyTorch的GPU设备,再导入TensorFlow。
GPU硬件/驱动问题:极少数情况下,GPU硬件故障、驱动版本不兼容或者CUDA toolkit版本与PyTorch不匹配,也可能导致设备序号识别异常,但这种情况通常会伴随其他初始化错误。
内容的提问来源于stack exchange,提问作者MS B
相关产品推荐
相关产品推荐

