问题
Tensorflow 2.4.1无法识别我的GPU,尽管我按照Tensorflow的官方说明以及NVIDIA for CUDA和NVIDIA forCUDNN的说明将其安装在我的计算机中。我还在conda中安装了它(我不确定是否需要它?(。
当我尝试官方方式检查TF是否使用GPU时,我得到0:
import tensorflow as tf
print("Num GPUs Available: ", len(tf.config.list_physical_devices('GPU')))
Num GPUs Available: 0
规格
硬件:
我的NVIDIA满足Tensorflow指定的要求。
软件
如上所述,我安装了CUDA(带有CUPTI(和cuDNN,所以我得到了:
ubuntu 20.04 LTS
NVIDIA driver = 460.39
CUDA (+CUPTI) = 11.2
cuDNN = 8.1.1
在conda环境中,我有:
python = 3.8
tensorflow = 2.4.1
(据我所知,这是支持GPU的新方式(
和我为conda
额外安装了cudatoolkit==11.0
和cudnn==8.0
,如上所述。
遵循的程序:
当我没有conda
额外的包时,它就不起作用了,即使我安装了这些额外的包,它仍然不起作用。
经过大量的研究,它终于在我的计算机上工作了:最新版本的组件(即CUDA 11.2
、cuDNN 8.1.0
(没有经过测试,也不能确保TF 2.4.1中的工作结果。因此,这是我的最终配置:
nvidia-drivers-460.39
具有CUDA 11.2
驱动程序。但是,您仍然可以安装CUDA 11.0
运行时,并从CUDA的官方NVIDIA档案中获取。遵循安装说明仍然是强制性的(即添加路径变量等(cuDNN
库需要在8.0.4版本上。您也可以从cuDNN的NVIDIA官方档案中获得
在这些特定版本上安装了两个组件后,我成功地获得了:
import tensorflow as tf
print("Num GPUs Available: ", len(tf.config.list_physical_devices('GPU')))
Num GPUs Available: 1
其中一些首秀消息指示GPU库被正确导入。
编辑:
对了!对于那些使用Pycharm的人来说,要么在Pycharm中也包含环境变量,要么在系统范围内使用它们。否则,你将无法让你的TF获得GPU。