CUDA
是NVIDA推出的针对NVIDIA GPU的通用并行计算模型,可以看做是一个工具包(ToolKit)(所以在一台电脑上可以安装多个版本的CUDA)。
其主要作用是:
1)简化开发过程:使开发人员无需学习特定的显卡指令或结构,直接专注于用熟悉的C语言写程序,就可以在显卡上执行,不必花时间在如何实现/执行其所写程序上。
2)支持异构计算:应用程序若同时使用CPU和GPU,则CUDA可将程序的穿行部分放在CPU运行,并行部分卸载到GPU运行,两者可同时进行计算,而不会争用内存资源。
CUDA与显卡驱动之间没有捆绑关系,也非一一对应,但离线安装的CUDA会默认包含与之匹配的最新显卡驱动程序。
cuDNN
是NVIDA推出的针对深度神经网络的GPU加速库。
若要用GPU训练模型,cuDNN并非是必须的,但通常都会采用该加速库。
至于cuDNN是如何加速神经网络训练的,有需要再深究和补充。
CUDA, cuDNN 与tensorflow GPU版本匹配Tensorflow需要以下软硬件支持:
1)NVIDIA GPU (支持CUDA且算力在3.5及以上)
2)CUDA
3)CUPTI
4)cuDNN
其中,tensorflow版本与上述软件版本之间需要相互匹配,才能正常工作,所以,在安装tensorflow之前,需先确定软件版本的匹配关系。
1) GPU硬件check算力
在官网查询链接查询,本机显卡支持CUDA,算力为7.5,满足要求。
GPU驱动版本
CUDA版本需与GPU驱动版本相匹配。
若需现安装或更新GPU驱动,详细可参考显卡驱动安装方法。
若已安装GPU驱动,可通过以下方法查看驱动安装版本:
打开【设备管理器】→【显示适配器】,右击所针对的显卡,点击【属性】→【驱动程序】。如下图所示。
(当前显卡所支持的最高CUDA版本)
方法之一:
桌面右键或在控制面板中,打开【NVIDIA控制面板】,点击【帮助】→【系统信息】→【组件】,在3D设置分组中,找到NVCUDA.DLL,其产品名称说明里有所支持的CUDA版本信息。
如下图可知,所安装的驱动最高支持到CUDA10.2版本。
2)确定Tensorflow及所需软件版本参见TensorFlow官网给出的版本匹配列表(for Windows)
部分匹配关系截图如下:
由于之前在另一主机的anaconda中,所搭建虚拟环境使用的是TensorFlow-gpu 1.9,所以,本机在复制该虚拟环境之前,选择安装CUDA 9 和 cuDNN 7.
CUDA & cuDNN 安装步骤Visual Studio版本:
CUDA安装前,需先安装Visual Studio,由于所选CUDA支持到Visual Studio 2015,安装过程中发现,之前装的Visual Studio 2019不能支持CUDA完成安装,故将Visual Studio改回到2015版本。
CUDA:
在NVIDIA CUDA官方下载网站,根据本机操作系统,选择所要安装的CUDA版本。
本文选择下载CUDA Toolkit 9.0,如下图,点击【Base Installer】一栏的下载按钮,进行下载。
cuDNN:
在NVIDIA cuDNN官方下载网站, 登录NVIDIA账户后,勾选【I Agree…】,展开【Archived cuDNN Releases】,可看到之前所有版本。
本文选择下载cuDNN v7.0.5 [Dec 5, 2017]。
2)CUDA安装与验证双击运行,按照界面引导安装即可。
(也可参考NVIDIA官方给出的CUDA安装教程)
安装完成后,打开终端,执行nvcc -V,若安装成功,可返回CUDA版本号(也可参考NVIDIA官方给出的cuDNN安装教程)
4)添加环境变量 打开【系统属性】→【环境变量】→【系统变量】 查看是否已添加CUDA_PATH环境变量,没有则需添加该变量,以及CUDA安装位置。 虚拟环境(含Tensorflow-gpu)搭建由于之前所用的虚拟环境已保存下来,所以在新主机上安装时就比较简单了。
打开anaconda prompt cd到所保存的虚拟环境所在路径 运行conda env create -f myEnvBla.yml
命令,会自动开始解析、下载和安装该虚拟环境。
安装完毕后,可先激活该虚拟环境,用conda list
查看TensorFlow等主要包是否装好,然后打开之前程序运行一下,没有import等错误,说明环境搭建成功。
为测试tensorflow-gpu是否能成功调用GPU,进行下述测试,可见TensorFlow可调用GPU。