tensorflow 过渡到 GPU 版本

m4l*_*4l4 5 python tensorflow

我已经使用 tensorflow 一段时间了,一切正常,直到我尝试切换到 gpu 版本。

卸载之前的tensorflow,pip 安装tensorflow-gpu (v2.0) 下载安装visual studio community 2019 下载安装CUDA 10.1 下载安装cuDNN

使用 CUDA 示例“deviceQuery_vs2019”进行测试并得到了积极的结果。测试通过 Nvidia GeForce rtx 2070

使用以前的工作文件运行测试并得到错误 tensorflow.python.framework.errors_impl.InternalError: cudaGetDevice() failed。状态:未找到 cudaGetErrorString 符号。

经过一些研究,我发现支持的 CUDA 版本是 10.0,所以我降级了版本,更改了 CUDA 路径,但没有任何改变

使用此代码


import tensorflow as tf
print("Num GPUs Available: ", 
len(tf.config.experimental.list_physical_devices('GPU')))
Run Code Online (Sandbox Code Playgroud)

我明白了

2019-10-01 16:55:03.317232: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library nvcuda.dll
2019-10-01 16:55:03.420537: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1618] Found device 0 with properties: 
Num GPUs Available:  1
name: GeForce RTX 2070 major: 7 minor: 5 memoryClockRate(GHz): 1.62
pciBusID: 0000:01:00.0
2019-10-01 16:55:03.421029: I tensorflow/stream_executor/platform/default/dlopen_checker_stub.cc:25] GPU libraries are statically linked, skip dlopen check.
2019-10-01 16:55:03.421849: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1746] Adding visible gpu devices: 0
[Finished in 2.01s]
Run Code Online (Sandbox Code Playgroud)

CUDA 似乎识别卡,tensorflow 也是如此,但我无法摆脱错误:tensorflow.python.framework.errors_impl.InternalError: cudaGetDevice() failed。状态:未找到 cudaGetErrorString 符号。

我究竟做错了什么?我应该坚持使用cuda 10.0吗?我错过了安装的一部分吗?

m4l*_*4l4 6

解决了,这主要是为了避免冲突的版本炼金术。这是我所做的(据我所知,顺序很重要)

  1. 卸载所有东西(tf、cuda、visual studio)
  2. pip 安装 tensorflow-gpu
  3. 下载并安装 Visual Studio Community 2017(2019 不起作用)
  4. 我还从 Visual Studio 安装了 c++ 工作负载(不确定是否有必要,但它具有所需的编译器 Visual c++ 15.x)
  5. 下载并安装 cuda 10.0(我拥有的是 10.0.130)
  6. 转到系统环境变量(在窗口栏中搜索)> 高级 > 单击环境变量...
  7. 创建新的用户变量(不要与系统变量混淆)
  8. 变量名:CUDA_PATH,
  9. 变量值:浏览cuda目录下到版本目录(我的是C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0)
  10. 该指南说您需要 cudnn 7.4.1,但我收到一个错误,提示预期版本最低为 7.6。转到 nvidia 开发人员 cudnn 存档并下载“cudnn v7.6.0 for CUDA 10.0”(确保您获得正确的文件)。解压,将cudnn文件放入对应的cuda目录(lib、include、bin)。

从那里开始,一切都像魅力一样。我无法从 Visual Studio (devicequery) 构建 cuda 示例文件,但这不是关键步骤。几乎每个错误都是由于文件版本不兼容造成的,我花了 3-4 天的时间来找出正确的组合。希望有所帮助:)


LSg*_*geo 5

tensorflow-GPU V2.0.0是现在畅达可用的,并且是非常容易安装使用: conda install -c anaconda tensorflow-gpu。无需额外下载或 cuda 安装。