PyTorch无法链接CUDA设备报错,咨询适配CUDA版本
- 系统环境:Windows 11
- 已安装组件:CUDA v11.8
- 执行代码报错:
执行torch_tensor(1, device = "cuda")时出现以下错误:
Error in torch_tensor_cpp(data, dtype, device, requires_grad, pin_memory) :
PyTorch is not linked with support for cuda devices
Exception raised from getDeviceGuardImpl at C:\actions-runner\_work\pytorch\pytorch\builder\windows\pytorch\c10/core/impl/DeviceGuardImplInterface.h:319 (most recent call first):
00007FF967EDAD1200007FF967EDACB0 c10.dll!c10::Error::Error [<unknown file> @ <unknown line number>]
00007FF967EDA79E00007FF967EDA750 c10.dll!c10::detail::torchCheckFail [<unknown file> @ <unknown line number>]
00007FF8AE29EC0500007FF8AE29EA60 torch_cpu.dll!at::Context::getDeviceFromPtr [<unknown file> @ <unknown line number>]
00007FF8AE770A4600007FF8AE7709B0 torch_cpu.dll!at::native::to [<unknown file> @ <unknown line number>]
00007FF8AF45A96800007FF8AF454610 torch_cpu.dll!at::compositeimplicitautograd::where [<unknown file> @ <unknown line number>]
00007FF8AF4440ED00007FF8AF40FAC0 torch_cpu.dll!at::compositeimplicitautograd::broadcast_to [<unknown file> @ <unknown line number]
提问:该报错是否由CUDA版本不匹配导致?若为版本问题,应使用哪个CUDA版本?
- 核心原因判断:这个报错的主要原因不是CUDA版本不匹配,而是你安装的PyTorch是纯CPU版本,未包含CUDA支持的编译组件(报错日志里仅出现
torch_cpu.dll,无CUDA相关动态库即可佐证)。 - 版本兼容说明:如果确认安装的是带CUDA的PyTorch仍报错,才需要排查版本匹配:
- PyTorch 2.0及以上版本官方支持CUDA 11.8,你的CUDA版本是符合要求的;
- 若使用PyTorch 1.x系列旧版本,需对应调整CUDA版本:比如PyTorch 1.13对应CUDA 11.6,PyTorch 1.12对应CUDA 11.3,PyTorch 1.11对应CUDA 11.3或10.2等。
- 修复步骤:
- 卸载当前PyTorch:执行
pip uninstall torch torchvision torchaudio; - 重新安装带CUDA 11.8支持的PyTorch版本:使用命令
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118; - 验证安装:运行
print(torch.cuda.is_available()),返回True则说明CUDA支持已正常启用。
- 卸载当前PyTorch:执行
内容的提问来源于stack exchange,提问作者Rishav Dhariwal

