Platform
- Windows 10
- or Ubuntu 16.04/18.04
- Anaconda,Python 3.7
- CUDA 10.0 NVIDIA CUDA
- cuDNN
- TensorFlow 2.0
- PyCharm
如果电脑NVIDIA没有安装驱动时,需要执行以下步骤
1、安装ANACONDA
安装后,cmd→控制台→conda list
2、安装CUDA
- NVIDIA显卡
- CUDA安装
- 驱动
- CUPIT
- cuDNN安装 动态库
- https://developer.nvidia.com/rdp/cudnn-download→Download cuDNN for CUDA xx.xx
- 解压
- CUDA 文件夹改名为 cudnn
- https://developer.nvidia.com/rdp/cudnn-download→Download cuDNN for CUDA xx.xx
- PATH配置
- System Path 安装CUDA自动添加完成
- ..\NVIDIA GPU Computing Toolkit\CUDA\vxx.0\bin
- ..\NVIDIA GPU Computing Toolkit\CUDA\vxx.0\libnvvp
- 手动添加CUPTI路径和cuDNN
- 点击New增加条目
- ..\NVIDIA GPU Computing Toolkit\CUDA\vxx.0\cudnn\bin
- ..\NVIDIA GPU Computing Toolkit\CUDA\vxx.0\extras\CUPTI\libx64
- 测试 nvcc -V
3、TensorFlow安装
- # cpu version
- pip install --upgrade tensorflow
- # gpu version
- pip install --upgrade tensorflow-gpu
- # or install specific version
- # cpu-version
- pip install tensorflow=2.0.0-alpha0
- # gpu-version
- pip install tensorflow-gpu=2.0.0-alpha0
4、查看TensorFlow是否安装成功
xxx> cmd→where ipython
xxx> ipython 打开交互工具
import tensorflow as tf
tf.test.is_gpu_available()
电脑已安装NVIDIA驱动,并安装Anaconda后,打开Anaconda Prompt
参考网址:TensorFlow安装与环境配置 — 简单粗暴 TensorFlow 2 0.4 beta 文档
在conda中创建环境安装tensorflow
1、执行命令创建环境 conda create -n tensorflow python=3.8
2、进入对应tensorflow环境 conda activate tensorflow
3、在环境中执行命令
pip install tensorflow-gpu==2.4.0 -i https://pypi.doubanio.com/simple
(注意:此处版本需要与下表对应)
4、测试tensorflow是否安装成功
在Anaconda Prompt中进入python,执行命令
import tensorflow as tf
tf.test.is_gpu_available() 此时输出False
并报错找不到cudart64_110.dll
cudart64_110.dll 是存在于CUDA Toolkit中的,并且110对应CUDA 11.0版本
因此需要执行进行下面操作:
1、检查NVIDIA 驱动程序安装是否完成,可在命令行cmd下使用
nvidia-smi
若成功会打印当前系统安装的NVIDIA驱动信息
2、CUDA Toolkit 和 cuDNN 的安装
在 Anaconda 环境下,推荐使用
conda install cudatoolkit=X.X
conda install cudnn=X.X.X
安装 CUDA Toolkit 和 cuDNN,其中 X.X 和 X.X.X 分别为需要安装的 CUDA Toolkit 和 cuDNN 版本号,必须严格按照TensorFlow官方说明版本对应
安装前,使用
conda search cudatoolkit
conda search cudnn
搜索 conda 源中可用的版本号
想安装11.0cudatoolkit+8.0cuda,在conda中找不到,则使用以下命令:
conda search cudnn -c conda-forge
执行命令安装cudnn8.0
conda install cudnn==8.0.5.39 -c conda-forge
执行命令安装CUDA Toolkit11.0
conda install cudatoolkit=11.0
3、都安装完成后,再次检查TensorFlow GPU版本是否能够运行
(1)进入环境 conda activate 环境名称
(2)执行以下代码
import tensorflow as tf
tf.test.is_gpu_available()
如果显示为True,则安装成功
备注:为什么安装TensorFlow需要下载CUDA Toolkit和cuDNN,而安装PyTorch不需要安装?
原因:安装PyTorch时,在官网找到执行CUDA版本后执行的命令
conda install pytorch torchvision torchaudio cudatoolkit=11.1
-c pytorch -c conda-forge
已经安装了runtime,所以不需要安装
CUDA有两个主要的API,分别为 runtime(运行时)和driver API,这两种API都有对应的CUDA版本
- 用于支持driver API的必要文件(如
libcuda.so
)是由GPU driver installer安装的。nvidia-smi
就属于这一类API。 - 用于支持runtime API的必要文件(如
libcudart.so
以及nvcc
)是由CUDA Toolkit installer安装的。(CUDA Toolkit Installer有时可能会集成了GPU driver Installer)。nvcc
是与CUDA Toolkit一起安装的CUDA compiler-driver tool,它只知道它自身构建时的CUDA runtime版本。它不知道安装了什么版本的GPU driver,甚至不知道是否安装了GPU driver。
补充:
CUDA、cuDNN、CUDA Toolkit、NVCC区别
- CUDA:为“GPU通用计算”构建的运算平台。
- cuDNN:为深度学习计算设计的软件库。
- CUDA Toolkit (nvidia): CUDA完整的工具安装包,其中提供了 Nvidia 驱动程序、开发 CUDA 程序相关的开发工具包等可供安装的选项。包括 CUDA 程序的编译器、IDE、调试器等,CUDA 程序所对应的各式库文件以及它们的头文件。
- CUDA Toolkit (Pytorch): CUDA不完整的工具安装包,其主要包含在使用 CUDA 相关的功能时所依赖的动态链接库。不会安装驱动程序。
(NVCC 是CUDA的编译器,只是 CUDA Toolkit 中的一部分)
注:CUDA Toolkit 完整和不完整的区别:
在安装了CUDA Toolkit (Pytorch)后,只要系统上存在与当前的 cudatoolkit 所兼容的 Nvidia 驱动,则已经编译好的 CUDA 相关的程序就可以直接运行,不需要重新进行编译过程。如需要为 Pytorch 框架添加 CUDA 相关的拓展时(Custom C++ and CUDA Extensions),需要对编写的 CUDA 相关的程序进行编译等操作,则需安装完整的 Nvidia 官方提供的 CUDA Toolkit。
CUDA Toolkit构成
一般的结构中,include 包含头文件,bin 包含可执行文件,lib 包含程序实现文件编译生成的library,src包含源代码,doc或help包含文档,samples包含例子。
Compiler:NVCC
Tools:分析器profiler、调试器debuggers等
Libraries:科学库和实用程序库
CUDA Samples:CUDA和library API的代码示例
CUDA Driver:驱动,需要与“有CUDA功能的GPU”和“CUDA”都兼容。CUDA工具包都对应一个最低版本的CUDA Driver,CUDA Driver向后兼容。
NVCC简介
- nvcc其实就是CUDA的编译器,cuda程序有两种代码, 在cpu上的host代码和在gpu上的device代码。
- .cu后缀:cuda源文件,包括host和device代码
- nvcc编译例子
nvcc –cuda x.cu –keep
# x.cudafe1.gpu
# x.cudafe2.gpu
# x.cudafe1.cpp