【问题标题】:Why does my CUDA work for Pytorch but not for Tensorflow suddenly?为什么我的 CUDA 突然可以在 Pytorch 上工作,而在 Tensorflow 上却不行?
【发布时间】:2020-03-05 14:45:39
【问题描述】:

我使用的机器是 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 将我的 conda env 更改为 python 3.6 时(它们显示在 pycharm 中)。有:

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。

【问题讨论】:

    标签: python tensorflow cuda


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-16
      • 1970-01-01
      • 2021-10-04
      • 1970-01-01
      • 2019-02-26
      • 1970-01-01
      • 1970-01-01
      • 2017-03-12
      相关资源
      最近更新 更多