一、TensorFlow和CUDA的对应关系
TensorFlow是一个非常强大的机器学习框架,基于计算图概念实现了分布式计算和计算加速等功能。而CUDA是 NVIDIA 公司提供的一种计算加速技术,它允许将计算任务交给 NVIDIA 显卡来执行,从而显著提高计算性能。
TensorFlow 和 CUDA 通常需要相互配合使用,以充分发挥机器学习的计算加速能力。在使用过程中,我们需要了解 TensorFlow 和 CUDA 的对应关系。
二、TensorFlow支持的CUDA版本
为了充分发挥 CUDA 的计算能力,我们需要保证 TensorFlow 和 CUDA 版本的兼容性。在 TensorFlow 1.x 版本中,支持的 CUDA 版本如下:
- TensorFlow 1.0:CUDA 8.0
- TensorFlow 1.4:CUDA 9.0
- TensorFlow 1.8:CUDA 9.0 或 CUDA 9.2
- TensorFlow 1.12:CUDA 9.0 或 CUDA 10.0
需要注意的是,在 TensorFlow 2.x 版本中,不再需要安装 cuDNN 和 CUDA。TensorFlow 2.x 默认使用 TensorFlow 中已经内置的 cuDNN。
三、TensorFlow和CUDA的关系
1. TensorFlow一定要安装CUDA吗?
如果想要 TensorFlow 发挥 CUDA 的计算加速能力,那么需要安装 CUDA。但是,如果在 CUDA 不可用的环境下,TensorFlow 仍然可以运行。在没有 CUDA 的环境下,TensorFlow 可以使用 CPU 进行计算,同时也支持使用 OpenCL 进行计算。
2. TensorFlow 1.13 对应CUDA版本
TensorFlow 1.13 支持 CUDA 10.0 和 CUDA 10.1 两个版本,需要根据自己机器上的 CUDA 版本选择。
3. CUDA与TensorFlow版本兼容性
为了便于使用,TensorFlow 官方会针对每个 TensorFlow 版本,列出和 CUDA、cuDNN 版本的兼容表格。
# TensorFlow 1.x版本的CUDA和cuDNN的兼容性表格 https://tensorflow.google.cn/install/source_windows#gpu%E6%94%AF%E6%8C%81 # TensorFlow 2.x版本的CUDA和cuDNN的兼容性表格 https://tensorflow.google.cn/install/source#gpu%E6%94%AF%E6%8C%81
4. TensorFlow 查看CUDA版本
我们可以通过以下代码来查看 TensorFlow 中 CUDA 的版本:
import tensorflow as tf sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
在输出中可以看到 CUDA 和 cuDNN 的版本信息。
5. CUDA版本高于TensorFlow支持的版本,怎么办?
如果 CUDA 版本高于 TensorFlow 支持的版本,那么需要重新安装符合 TensorFlow 支持版本的 CUDA。
四、TensorFlow和CUDA与cuDNN版本对应选取
TensorFlow、CUDA 和 cuDNN 三者共同决定了机器学习的计算能力。为了充分发挥它们的计算能力,我们需要确定它们的版本关系。
我们可以通过以下代码来查看 TensorFlow 中 CUDA 和 cuDNN 的版本:
import tensorflow as tf from tensorflow.python.platform import build_info as tf_build_info print("Tensorflow Cuda compilation tools版本: ", tf_build_info.cuda_version_number) print("Tensorflow Cudnn lirary版本: ", tf_build_info.cudnn_version_number)
查看版本后,可以在 TensorFlow 官网中查看和它们匹配的版本信息。
参考链接
- TensorFlow官网:“TensorFlow安装手册”:https://tensorflow.google.cn/install/