【问题标题】:Error loading cudart64_110.dll with python 3.8 and tensorflow 2.5.0 using conda on Windows在 Windows 上使用 conda 使用 python 3.8 和 tensorflow 2.5.0 加载 cudart64_110.dll 时出错
【发布时间】:2022-01-10 16:03:57
【问题描述】:

当我使用 conda 使用 tensorflow-gpu 2.5.0 包创建 python 3.8 环境时,我收到错误“无法加载动态库 'cudart64_110.dll'; dlerror: cudart64_110.dll not found”。但是,我有一个现有的 python 3.7 环境,也有 tensorflow-gpu 2.5.0,它能够找到库 OK。

有趣的是,如果我克隆可以加载库的 python 3.7 环境,它也会加载到克隆的环境中,但是如果我使用 tensorflow-gpu 2.5.0 从头开始​​创建一个新的 python 3.7 环境,我在那个新环境中遇到了错误。

我不确定为什么我能够在一个环境中加载库,但不能在其他环境中加载,因为库在每个环境中都位于相同的位置,并且它应该是返回到无论如何,包缓存中的相同文件。

在我能够加载 cudart64_110.dll 的 python 3.7 环境中,安装了以下相关包:

# Name                    Version                   Build  Channel
cudatoolkit               11.3.1               h280eb24_9    conda-forge
python                    3.7.12          h7840368_100_cpython    conda-forge
tensorflow                2.5.0           gpu_py37h23de114_0
tensorflow-base           2.5.0           gpu_py37hb3da07e_0
tensorflow-gpu            2.5.0                h17022bd_0

在我无法加载 cudart64_110.dll 的 python 3.8 环境中,安装了以下相关包:

# Name                    Version                   Build  Channel
cudatoolkit               11.3.1               h280eb24_9    conda-forge
python                    3.8.12          h7840368_2_cpython    conda-forge
tensorflow                2.5.0           gpu_py38h8e8c102_0
tensorflow-base           2.5.0           gpu_py38hb3da07e_0
tensorflow-gpu            2.5.0                h17022bd_0

请注意,这两种环境都包含相同 cudatoolkit 版本。

另外,我确实意识到我正在混合频道。但是,(a) conda-forge 不提供 tensorflow 2.x,并且 (b) 在这种情况下这无关紧要,因为我可以在一个环境中使用 CUDA 加载 tensorflow,但不能在另一个环境中加载。

【问题讨论】:

  • 考虑编辑问题以向我们展示每个环境的相关安装包。例如,conda list -n myenv '(tensorflow|cuda|python)'

标签: python windows tensorflow conda


【解决方案1】:

对于tensorflow_gpu==2.5.0,需要安装CUDA 11.2

请检查以下经过测试的构建配置详细信息并安装合适的 cuDNN 和 CUDA 以使用TF-gpu 2.5

    Version              Python version  Compiler    Build tools    cuDNN    CUDA
    tensorflow_gpu-2.7.0     3.7-3.9     MSVC 2019    Bazel 3.7.2    8.1     11.2
    tensorflow_gpu-2.6.0     3.6-3.9     MSVC 2019    Bazel 3.7.2    8.1     11.2
    tensorflow_gpu-2.5.0     3.6-3.9     MSVC 2019    Bazel 3.7.2    8.1     11.2

按照this 链接在您的系统中安装指定的 CUDA 和 cuDNN。

【讨论】:

  • 一个。如果是这样,那么显然有人错误地为 tensorflow-gpu 2.5.0 构建了 conda 包,因为我只为 conda / mamba 指定了 tensorflow-gpu=2.5.0,它会自动拾取 cudatoolkit 和 cudnn 包。湾。如果我真的需要 cudatoolkit 11.2 在任何版本的 tensorflow >= 2.5 的所有环境中都需要 cudatoolkit 11.2,我的 python 3.7 环境如何表示它成功加载 cudart64_110.dll?
  • 另外,在我的 python 3.7 环境中,它能够加载 cudart64_110.dll,如果我运行 tf.test.is_gpu_available(),它能够成功找到我的 GPU,即使我有在该环境中安装了相同的 cudatoolkit v11.3.1。
猜你喜欢
  • 1970-01-01
  • 2021-11-14
  • 1970-01-01
  • 2022-10-18
  • 2022-12-03
  • 1970-01-01
  • 1970-01-01
  • 2021-11-14
  • 1970-01-01
相关资源
最近更新 更多