最近在给新的电脑配置深度学习环境,找了个不是特别新CUDA(担心未适配)版本来安排,安装CUDA和CUDNN都正常,测试nvcc -V 和执行C:\Users\ps\Downloads\cudnn-11.2-windows-x64-v8.1.0.77\cuda文件下的两个exe,bandwidthTest.exe和deviceQuery.exe时,都是test pass。
但是,安装torch 1.7 和tensorflow2后,测试是否能调用GPU失败了,经过将近一天的各种尝试,解决了这个问题。
问题表现之一:
Windows 下,torch.cuda.is_available()和tf.test.is_gpu_available()返回false
问题表现之二:nvidia-smi查看cuda版本是11.0,nvcc -V显示版本是10.2,本情况解释:
CUDA 有两种API,分别是 运行时API和 驱动API,即Runtime API 和 Driver API。
nvidia-smi 的结果除了有 GPU 驱动版本型号,还有 CUDA Driver API的型号。
而nvcc的结果是对应 CUDA Runtime API。
我的驱动API是11.0,运行时API是10.2
看到网上提供的解决方案,说的最多的是驱动API要高于等于运行时API,然后我寻思我的情况也符合。
后来会不会是10.2还是没适配,就尝试了降级CUDA版本,分别尝试了10.0,10.1等,均失败。
对,然后就寻思大胆尝试一下11.0版本好了,然后就好了。
结论1:
参