(1)nvidia官网查看自己显卡的具体算力。
(2)根据维基百科指示查看自己适合的CUDA版本。(该部分图表有待验证)
(3)确认所需的CUDA Toolkit和cuDNN版本[2],最新版查看TensorFlow官网最底部。
CUDA Toolkit(新版+旧版)、cuDNN(需登陆下载新版+旧版)。
版本 | Python 版本 | 编译器 | 编译工具 | cuDNN | CUDA |
---|---|---|---|---|---|
tensorflow_gpu-2.6.0 | 3.6-3.9 | MSVC 2019 | Bazel 3.7.2 | 8.1 | 11.2 |
tensorflow_gpu-2.5.0 | 3.6-3.9 | MSVC 2019 | Bazel 3.7.2 | 8.1 | 11.2 |
tensorflow_gpu-2.4.0 | 3.6-3.8 | MSVC 2019 | Bazel 3.1.0 | 8.0 | 11.0 |
tensorflow_gpu-2.3.0 | 3.5-3.8 | MSVC 2019 | Bazel 3.1.0 | 7.6 | 10.1 |
tensorflow_gpu-2.2.0 | 3.5-3.8 | MSVC 2019 | Bazel 2.0.0 | 7.6 | 10.1 |
tensorflow_gpu-2.1.0 | 3.5-3.7 | MSVC 2019 | Bazel 0.27.1-0.29.1 | 7.6 | 10.1 |
tensorflow_gpu-2.0.0 | 3.5-3.7 | MSVC 2017 | Bazel 0.26.1 | 7.4 | 10 |
tensorflow_gpu-1.15.0 | 3.5-3.7 | MSVC 2017 | Bazel 0.26.1 | 7.4 | 10 |
tensorflow_gpu-1.14.0 | 3.5-3.7 | MSVC 2017 | Bazel 0.24.1-0.25.2 | 7.4 | 10 |
tensorflow_gpu-1.13.0 | 3.5-3.7 | MSVC 2015 update 3 | Bazel 0.19.0-0.21.0 | 7.4 | 10 |
tensorflow_gpu-1.12.0 | 3.5-3.6 | MSVC 2015 update 3 | Bazel 0.15.0 | 7.2 | 9.0 |
tensorflow_gpu-1.11.0 | 3.5-3.6 | MSVC 2015 update 3 | Bazel 0.15.0 | 7 | 9 |
tensorflow_gpu-1.10.0 | 3.5-3.6 | MSVC 2015 update 3 | Cmake v3.6.3 | 7 | 9 |
tensorflow_gpu-1.9.0 | 3.5-3.6 | MSVC 2015 update 3 | Cmake v3.6.3 | 7 | 9 |
tensorflow_gpu-1.8.0 | 3.5-3.6 | MSVC 2015 update 3 | Cmake v3.6.3 | 7 | 9 |
tensorflow_gpu-1.7.0 | 3.5-3.6 | MSVC 2015 update 3 | Cmake v3.6.3 | 7 | 9 |
tensorflow_gpu-1.6.0 | 3.5-3.6 | MSVC 2015 update 3 | Cmake v3.6.3 | 7 | 9 |
tensorflow_gpu-1.5.0 | 3.5-3.6 | MSVC 2015 update 3 | Cmake v3.6.3 | 7 | 9 |
tensorflow_gpu-1.4.0 | 3.5-3.6 | MSVC 2015 update 3 | Cmake v3.6.3 | 6 | 8 |
tensorflow_gpu-1.3.0 | 3.5-3.6 | MSVC 2015 update 3 | Cmake v3.6.3 | 6 | 8 |
tensorflow_gpu-1.2.0 | 3.5-3.6 | MSVC 2015 update 3 | Cmake v3.6.3 | 5.1 | 8 |
tensorflow_gpu-1.1.0 | 3.5 | MSVC 2015 update 3 | Cmake v3.6.3 | 5.1 | 8 |
tensorflow_gpu-1.0.0 | 3.5 | MSVC 2015 update 3 | Cmake v3.6.3 | 5.1 | 8 |
以(python3.8.12+cudatoolkit11.3.1+cudnn8.2.1+tensorflow2.7+Keras2.7)为例
(python3.6.5+CUDA8.0+cuDNN7.14+tensorflow1.2.0)暂不介绍
台式电脑环境:win10-64位,CPU-i5-9400F,内存-16G,显卡(GPU)——NVIDIA GeForce GT 710。(最后发现这个显卡算力只有2.1,没法用GPU版本)
笔记本电脑环境:win10-64位,CPU- i7-8750H,内存16G,显卡 (GPU)——NVIDIA GeForce RTX 2070 with Max-Q Design(算力:7.5)
编译环境:PyCharm+Anaconda
备选编译环境:VScode
Anaconda优点是conda的第三方库管理,可直接下载cudatoolkit和cudnn,无需在NV官网下载。
PyCharm利于具体代码编写和多个虚拟环境之间的切换。
(1)安装Anaconda
下载Anaconda,安装时注意在高级安装选项时,全部勾选,第一个是让Anaconda自己为我们添加环境变量,减少我们的负担。第二个是选择将3.8作为默认的python版本。Win+R调出cmd,
输入conda -V,出现Anaconda的版本号,即为安装成功。
(2)添加conda和pip软件源
默认源通常下载速度慢,将清华大学的conda软件源添加进去,保证安装的速度。
在anaconda下的anaconda prompt中进行输入[1][3]:
conda config –-show
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/mro/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/pro/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r/
conda config --set show_channel_urls yes
conda config --show
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
此时在C盘用户目录下会生成.condarc文件用于保存该设置。
(3)建立python虚拟环境
conda create -n tensorflow-venv python=3.8
tensorflow-venv为虚拟环境名,python版本可根据需要自行替换。
TensorFlowGPU计算,但需安装CUDA(Compute Unified Device Architecture),即计算机并行计算架构。安装方式有两种,一种是基于anaconda包管理的安装方式(强烈推荐),另一个中基于官网下载的安装方式(可保证版本最新)。
按以下步骤进行:
确认显卡驱动,这个可以不装,要根据自己的显卡情况。(NVIDIA download drivers)。
下载安装CUDA Toolkit,安装包2个G以上,参考文档。
下载CuDnn,将压缩包解压缩并复制到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\vx.x(例如v11.5),参考文档。
复制以下文件到CUDA toolkit文件夹.
a.复制 < installpath >\cuda\bin\cudnn*.dll 到 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\vx.x\bin.
b.复制 \cuda\include\cudnn*.h 到 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\vx.x\include.
c.复制 \cuda\lib\x64\cudnn*.lib 到 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\vx.x\lib\x64.
设置环境变量
4.设置以下环境变量Set the following environment variables to point to where cuDNN is located. To access the value of the $(CUDA_PATH) environment variable, perform the following steps:
a.Open a command prompt from the Start menu.
b.Type Run and hit Enter.
c.Issue the control sysdm.cpl command.
d.Select the Advanced tab at the top of the window.
e.Click Environment Variables at the bottom of the window.
f.Ensure the following values are set:
Variable Name: CUDA_PATH
Variable Value: C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\vx.x
5.这个是关于VS编辑器的,这个仅记录Include cudnn.lib in your Visual Studio project.
a. Open the Visual Studio project and right-click on the project name.
b.Click Linker > Input > Additional Dependencies.
c.Add cudnn.lib and click OK.
(1)指定后端引擎的方式
用记事本打开C:\Users\ADMIN.keras.json,显示以下内容:
{ “floatx”: “float32”,
“epsilon”: 1e-07,
“backend”: “tensorflow”,
“image_data_format”: “channels_last”}
附加:可以编辑指定backend是Theano,或者谷歌研发的 TensorFlow。
(2)CUDA 工具包附带的 CUPTI[2]
CUPTI,即CUDA Profiling Tools Interface (CUPTI)。在CUDA分析工具接口(CUPTI)能够分析和跟踪靶向CUDA应用程序的工具的创建。CUPTI提供以下API:Activity API,Callback API,事件API,Metric API,和Profiler API。使用这些API,您可以开发分析工具,深入了解CUDA应用程序的CPU和GPU行为。CUPTI作为CUDA支持的所有平台上的动态库提供。请参阅CUPTI文档。
(3)显卡算力不足的报错界面
2021-11-17 17:17:49.527327: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1900] Ignoring visible gpu device (device: 0, name: GeForce GT 710, pci bus id: 0000:01:00.0, compute capability: 2.1) with Cuda compute capability 2.1. The minimum required Cuda capability is 3.5.
2021-11-17 17:17:49.527911: I tensorflow/core/platform/cpu_feature_guard.cc:151] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX AVX2
To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.