为什么我的CUDA突然不能用于Pytorch,而不能用于Tensorflow?

时间:2019-11-09 01:08:41

标签: python tensorflow cuda

我正在使用的计算机与Titan XP一起运行,并运行Ubuntu 18.10。我不是所有者,所以不确定之前的配置方式。 cuda版本是9. *,最有可能是9.0。没有像/usr/local/cuda这样的文件夹。尽管这听起来很奇怪(因为没有Cuda与18.10兼容),但以前它在Tensorflow和Pytorch上都运行良好。现在,当在python 2.7,cudatoolkit 9.2和cudnn 7.2.1中运行tensorflow-gpu v1.12.0时(以前运行良好,没有任何更改),它报告:

ImportError: libcublas.so.9.0: cannot open shared object file: No such file of directory

但是,当我用pytorch 0.4.1,cudatoolkit 9.0和cudnn 7.6(将它们显示在pycharm中)将conda env更改为python 3.6时。有:

torch.cuda.is_available() # True

这表明GPU正在Pytorch代码中运行。另外,我已经通过nvidia-smi检查了GPU RAM,当Pytorch运行时,RAM被占用了。

运行时,虽然没有像/usr/local/cuda/这样的Cuda文件夹:

nvcc - V

有:

Cuda compilation tools, release 9.1, V9.1.85

有人可以给我一些有关这些奇怪事情如何发生的提示吗?我应该怎么做才能使我的tensorflow-gpu工作?我完全迷惑了Orz。

1 个答案:

答案 0 :(得分:1)

当您使用conda安装pytorch和tensorflow-gpu之类的东西时,Anaconda环境会安装其自己的CUDA工具包版本。看起来这就是设置Python 3.6环境的方式。您的Python 2.7版本是系统安装还是其他Python环境的一部分?您的Tensorflow可能是出于某种原因而不再安装的CUDA工具箱构建的,或者在任何情况下您尝试使用Tensorflow时都没有在LD_LIBRARY_PATH中建立针对它的库的路径(也许因为安装位置不正常

您可以键入which nvcc来查看PATH中当前指向该可执行文件的哪一部分。这将告诉您CUDA工具包的安装位置。我猜想您的PATH仍在您上次运行nvcc时指向conda环境,或者在任何情况下都位于不寻常的安装位置中的某些版本的CUDA工具包。

首先,我建议您放弃使用Tensorflow使用系统python的任何努力。我的建议是修改或创建新的conda环境,并使用conda安装tensorflow-gpu,这还将为该环境安装CUDA工具包。请注意,如果您沿着此路径进行安装,则您的CUDA安装将不在/usr/local/cuda中,而是位于您的conda环境中。