⌚️老王

老王的宇宙(PS:这是一个几乎没有CSS的站点)

  🏠首页   |  📁关于   |  📁天文   |  📁程序员杂志   |  📁资源下载  

📖GTX3060成功安装tensorflow-gpu过程记录


文章目录

Windows10下成功安装Tensorflow-GPU过程(GTX 3060)

本文所述事情发生在2021年11月6日,特意强调时间是因为看过一些旧的教程,踩过坑。

重点是显卡驱动、CUDA、cudnn、tensorflow-gpu的版本应对。tensorflow的安装文档基本不用看

显卡和系统基本情况

安装步骤

  1. 分为"确定版本信息、下载安装cuda、设置环境变量、安装tf",四个大步骤

确定版本信息

  1. 安装显卡驱动,我用的GameReady版,最高版本是496.xx,没追新,用的是471.41;

  2. 确认自己能安装什么版本的CUDA。打开"NVIDA控制面板"–>帮助–>系统信息–>查看NVCUDA64.DLL后面对应的NVIDIA CUDA版本;

  3. Nvidia GeForce GameReady 471.41驱动最高支持到CUDA v11.4,但是Tensorflow目前不支持这么高的CUDA版本,所以我根据tf文档中的提示,安装tensorflow_gpu-2.6.0 对应的CUDA 11.2

下载安装

  1. https://developer.nvidia.com/cuda-toolkit-archive下载CUDA Toolkit 11.2 Update 2,稍后安装
  2. https://developer.nvidia.com/rdp/cudnn-archive下载cuDNN v8.1.1 (Feburary 26th, 2021), for CUDA 11.0,11.1 and 11.2,稍后安装
  3. https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/下载Anaconda3-2021.05-Windows-x86_64.exe,直接安装
  4. 安装CUDA,选择自定义安装,我只勾选了CUDA->Runtime-Libraries,其它都不安装,因为第1步安装驱动时包含了一部分,VisualStudio集成等功能tf也用不到;使用默认安装路径,我的在C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2
  5. 将第5步下载的cudnn-11.2-windows-x64-v8.1.1.33.zip\cuda\bin\下所有文件复制到CUDA目录C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2\bin\
  6. 再将cudnn-11.2-windows-x64-v8.1.1.33.zip\cuda\lib\x64 下所有文件复制到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2\lib\x64\

设置环境变量

  1. 在系统变量中,CUDA安装程序会自动增加CUDA_PATHCUDA_PATH_V11_2变量取值为安装目录,无需人为干预

  2. 修改系统变量的Path变量,在最前面增加C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2\bin;C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2\lib\x64;两个目录

  3. 在系统变量中,增加变量名TF_FORCE_GPU_ALLOW_GROWTH,取值为true,大概意思是避免Tensorflow占用过多显存。

  4. 重启

安装tensorflow_gpu

  1. 创建一个tf环境conda create -n mytf python=3.7。我之前失败的尝试都是py3.8,这次尝试使用py3.7成功了,不知道py版本是否有关系,按照tf官方文档,3.8是可以的
  2. 进入tf环境conda activate mytf;我以为现在tf的最高版本是2.6.0,上面的安装也都是照着tf2.6.0来的,所以安装tf时没有带版本号,直接pip install tensorflow-gpu -i https://pypi.doubanio.com/simple/,结果发现安装的是2.7.0,经过测试也是可以的
  3. 测试代码如下
import tensorflow as tf
print('GPU',tf.config.list_physical_devices('GPU'))
print("Num GPUs Available: ", len(tf.config.experimental.list_physical_devices('GPU')))

我只有一块GTX3060显卡,执行后返回:

GPU [PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU')]
Num GPUs Available:  1

到此为安装成功。

失败的情况

CUDA11.1+cuDNN8.0.5+tensorflow-gpu2.4.1,照别人3060安装成功的教程搬过来的,在我这失败,提示cusolver64_10.dll丢失,当时用的Python3.8,显卡驱动496.xx

为什么任务管理器中没有CUDA图表

安装完CUDA后,Windows任务管理器–>性能–>GPU图表里会有CUDA这一选项,

这个选项并不能判断CUDA是否安装成功,如果开启了Windows设置–显示-图形设置–硬件加速,则任务管理器中的CUDA选项会消失

利用Tensorflow-GPU为PixInsight STARNET++加速

基于以上tf环境的成功创建,下载TensorFlow C语言API库:https://storage.googleapis.com/tensorflow/libtensorflow/libtensorflow-gpu-windows-x86_64-2.7.0.zip 或者 https://pan.baidu.com/s/1dKf86glWO_KnObOsCARIjQ 提取码:q0bv

解压后,将其中的lib/tensorflow.dll文件复制到PixInsight安装目录(我的是C:\Program Files\PixInsight\bin)覆盖同名的tensorflow.dll文件

打开PixInsight,PROCESS菜单,,StarNet,按下图进行设置

starnet++可以使用GPU进行缩星了,速度快很多

参考:https://www.darkskies.space/pixinsight-starnet-cuda/


《2021年商业、半商业运作远程天文台不完全汇总》⬅ 🧰 ➡《为Windows打造完美终端(非WSL)》


© 2022 Powered by Hugo, Themes nocss-hugo