【tensorflow-2.x-gpu 】 windows10下测试tensorflow_gpu 2.x 与cudn对应关系
1.背景
关于配置tensorflow-2.x gpu环境,参考博客:
python3配置tensorflow-2.x gpu环境(2)
https://blog.csdn.net/jn10010537/article/details/113791239
由于最近cuda编译VPF硬解码需要,将cuda10.0卸载掉,重新安装了:cuda10.2以及cudnn7.6.5。
测试环境
python3.7
windows10 专业版
2.安装cuda框架
CUDA(Compute Unified Device Architecture)是一种用于GPU通用计算的并行计算平台和编程模型。它以C语言为基础,并多C语言进行了扩展,能够在显卡芯片上执行程序。
安装包cuda_10.2.89_441.22_win10.exe,自定义安装位置:
development开发包 | D:\D03_GeneralDevelop\D03_01_nvidia\cuda\install\development |
---|---|
documentation文档 | D:\D03_GeneralDevelop\D03_01_nvidia\cuda\install\documentation |
samples示例 | D:\D03_GeneralDevelop\D03_01_nvidia\cuda\install\samples |
如下图1:
3.安装cuDNN
CUDA提供了一个深度神经网络的GPU加速库cuDNN(CUDA Deep Neural Network),完成了对卷积、池化、归一化和激活函数层等标准操作的快速实现。
安装包:cudnn-10.2-windows10-x64-v7.6.5.32.7z
解压后将bin、include、lib三个文件夹拷贝至cuDNN文件夹,即如下路径:
D:\D03_GeneralDevelop\D03_01_nvidia\cudnn\cuDNN
如下图2:
-3、将cuda、cuDNN添加至系统环境变量
将cuda、cuDNN安装目录下的如下文件夹添加至系统环境变量:
1 | D:\D03_GeneralDevelop\D03_01_nvidia\cuda\install\development\bin | 图3 |
---|---|---|
2 | D:\D03_GeneralDevelop\D03_01_nvidia\cuda\install\development\extras\CUPTI\lib64 | 图4 |
3 | D:\D03_GeneralDevelop\D03_01_nvidia\cuda\install\development\include | 图5 |
4 | D:\D03_GeneralDevelop\D03_01_nvidia\cudnn\cuDNN\bin | 图6 |
图3:
图4
图5
图6
添加至系统环境后,如下图7:
4.安装tensorflow-gpu
安装tensorflow-gpu==2.2.0
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple tensorflow-gpu==2.2.0
安装后查看安装的三方包如下:
查看tensorflow是否运行了GPU硬件:
import tensorflow as tf
print(tf.__version__ ) # 2.2.0
tf.test.is_gpu_available() # False
发现tensorflow的gpu没有运行上,如下图:
如上图,原因是:cuda_10.2.89_441.22_win10.exe安装后的在
D:\D03_GeneralDevelop\D03_01_nvidia\cuda\install\development\bin目录下是cudart64_102.dll文件!
如下图
结论是cuda_10.2.89_441.22_win10.exe与tensorflow-gpu 2.2.0不匹配,需要 ‘cudart64_101.dll’,即cuda10.1;
经过测试cuda_10.2.89_441.22_win10.exe与tensorflow-gpu 2.3.0也同样不匹配,需要 ‘cudart64_101.dll’,即cuda10.1;
经过测试cuda_10.2.89_441.22_win10.exe与tensorflow-gpu 2.3.1也同样不匹配,需要 ‘cudart64_101.dll’,即cuda10.1;
经过测试cuda_10.2.89_441.22_win10.exe与tensorflow-gpu 2.3.2也同样不匹配,需要 ‘cudart64_101.dll’,即cuda10.1;
经过测试cuda_10.2.89_441.22_win10.exe与tensorflow-gpu 2.4.0也同样不匹配,需要 ‘cudart64_110.dll’,即cuda11.0;
经过测试cuda_10.2.89_441.22_win10.exe与tensorflow-gpu 2.4.0rc0也同样不匹配,需要 ‘cudart64_110.dll’,即cuda11.0;
5.总结
-5.1 测试的意义
似乎这种测试很没有意义,
但是如果你在研究VPF,即VideoProcessingFramework,那么就有意义了!
(在windows10下,安装cuda10.0后,编译VPF报错,具体报错这里不提了。)
同时本博客,也详细说明了cuda与tensorflow-gpu安装配置的大致过程,也是有一点意义的。
参考博客:
【tensorflow-2.x-gpu 】python3配置tensorflow-2.x gpu环境(2)
https://blog.csdn.net/jn10010537/article/details/113791239
提到的 Windows-GPU构建配置,进行配置cuda、cudnn、tensorflow-gpu;
最终建议你,在windows10下安装cuda10.1版本,这个版本能同时兼顾tensorflow-gpu和VPF的使用。
-5.2 安装了cuda10.1,tensorflow-gpu2.3.0
如下是我重新安装cuda,cudnn的简述:
安装tensorflow2.3.0,安装后查看三方包:
查看tensorflow是否运行了GPU:
import tensorflow as tf
print(tf.__version__ ) # 2.2.0
tf.test.is_gpu_available() # False
发现tensorflow的gpu成功运行上,如下图: