今天在将模型加载到显卡上的时候,发现只有Intel的集显在工作,而NVIDIA的1650处于空闲状态:
但是显卡可用:
print(torch.cuda.is_available(),torch.cuda.device_count(),torch.cuda.get_device_name(0))
torch.cuda.set_device(0)
且添加了以下代码保证部署到位:
os.environ["CUDA_DEVICE_ORDER"]="PCI_BUS_ID"
os.environ["CUDA_VISIBLE_DEVICES"] = "0"
并且我显卡驱动程序的CUDA Version与pytorch的cuda是匹配的:
这就很奇怪了,看起来一切都没有问题。
偶然间查看环境变量发现了问题,我打开文件夹发现里面是空的(不知道什么时候给卸载/删掉了):
所以我去下载CUDA toolkit,网址:https://developer.nvidia.com/cuda-toolkit-archive
找到与自己CUDA Version对应的安装包:
根据自己的系统选择(我的是Win10):
双击安装包,选择自定义安装,只打勾CUDA,安装完成之后环境变量会自动配置。
这样之后就可以将模型加载到NVIDIA的显卡上了,可以在代码的最后加一句清理显卡缓存:
torch.cuda.empty_cache()
以上就是CUDA只用Intel集显而无法使用NVIDIA显卡的解决,欢迎评论区讨论。