其他分享
首页 > 其他分享> > 详解TensorFlow™ GPU 安装

详解TensorFlow™ GPU 安装

作者:互联网

TensorFlow™ 是一个开放源代码软件库,用于进行高性能数值计算。借助其灵活的架构,用户可以轻松地将计算工作部署到多种平台(CPU、GPU、TPU)和设备(桌面设备、服务器集群、移动设备、边缘设备等)。TensorFlow™ 最初是由 Google Brain 团队(隶属于 Google 的 AI 部门)中的研究人员和工程师开发的,可为机器学习和深度学习提供强有力支持,并且其灵活的数值计算核心广泛应用于许多其他科学领域。目前TensorFlow™ 有适用于CPU(TensorFlow CPU)和GPU(TensorFlow GPU)的两种安装选择。 有区别于通过pip安装TensorFlow CPU版本,安装TensorFlow GPU还需要更多的底层依赖。

$ pip install tensorflow==1.12


$ pip install tensorflow-gpu==1.12

TensorFlow GPU主要是通过NVIDIA提供的CUDA和cuDNN存取GPU,从而实现比CPU快数十倍的深度学习训练加速能力。本文主要介绍TensorFlow GPU版本的安装和使用。

名词解释

在进入正题之前,首先详细介绍一下其所涉及的几个名词。

图片

GPU支持

安装TensorFlow GPU相应的硬件和软件(驱动和库)支持。TensorFlow™ 最新版本(1.12)对硬件:

具有计算能力3.5或更高版本的NVIDIA®GPU卡。

对软件的要求:

NVIDIA® GPU 驱动程序 -CUDA 9.0需要384.x或更高版本。

CUDA® Toolkit- TensorFlow支持CUDA 9.0。

CUPTI附带CUDA工具包。

NVIDIA深度神经网络的加速库(版本大于等于7.2)

硬件支持

从TensorFlow 所需要软件CUDA和CUDA的名词描述可以得出TensorFlow仅仅支持N卡,如果计算机属于A卡,则只能安装TensorFlow CPU版本,或者用AMD的ROCm GPU平台来安装GPU 版本的TensorFlow。本文重点讲以最为流行的N卡支持CUDA为重点讲解。使用lspci命令可以查看机器的NVIDIA显卡配置

$ lspci |grep -i nvidia


02:00.0 3D controller: NVIDIA Corporation GM200GL [Tesla M40] (rev a1)

82:00.0 3D controller: NVIDIA Corporation GM200GL [Tesla M40] (rev a1)

从显示结果看当前机器的GPU卡的型号是NVIDIA Tesla M40。当然,也并非所有的N卡都支持TensorFlow GPU 版本,其还要求GPU具有相应的计算能力,比如TensorFlow最新版1.12就要求计算能力大于3.5。NVIDIA GPU卡的计算能力可以通过其官网列表查询得到。目前NVIDIA产品主要系列有:

软件支持

TensorFlow官方文档会指定每一个TensorFlow GPU版本所依赖的python、cuDNN、GPU显卡驱动和CUDA的版本。在安装的时候一定注意版本的对应关系,若Python、cuDNN、GPU显卡驱动和CUDA的版本有低于TensorFlow GPU 要求的版本,在安装和使用过程中会出现错误。下表是TensorFlow GPU在Linux系统下版本对应表。

TensorFlow GPUpythoncuDNNCUDA
1.122.7、3.3-3.6>=7.29
1.112.7、3.3-3.6>=7.29
1.102.7、3.3-3.679
1.9.02.7、3.3-3.679
1.8.02.7、3.3-3.679
1.7.02.7、3.3-3.679
1.6.02.7、3.3-3.679
1.5.02.7、3.3-3.679
1.4.02.7、3.3-3.668
1.3.02.7、3.3-3.668
1.2.02.7、3.3-3.65.18
1.1.02.7、3.3-3.65.18
1.0.02.7、3.3-3.65.18

 

TensorFlow GPU 安装过程

以服务器的NVIDIA Tesla M40为例,在操作系统Centos 7上安装最新版本TensorFlow GPU 1.12。

GPU 驱动安装

根据TensorFlow 1.12 GPU支持要求的NVIDIA驱动版本,从NVIDIA网站选择对应的型号和操作系统,CUDA Toolkit版本,下载驱动文件,如NVIDIA-Linux-x86_64-384.145.run。

图片

运行驱动文件,根据提示完成安装。

$ sh NVIDIA-Linux-x86_64-384.145.run

安装完成以后通过NVIDIA命令工具nvidia-smi查看GPU情况

$ nvidia-smi

图片

从上图可以看到,NVIDIA GPU显卡驱动型号384.145。当有TensorFlow GPU任务运行的时候,使用该命令也可以查看GPU的内存使用情况,也可以作为检查TensorFlow是CPU运行还是GPU运行。

图片

CUDA 安装

从NVIDIA网站选择相应的驱动版本,选择Linux,x86_64,CentOS 7,下载rpm(local)驱动文件。

图片

根据安装指导安装

$ sudo rpm -i cuda-repo-rhel7-10-0-local-10.0.130-410.48-1.0-1.x86_64.rpm


$ sudo yum clean all

$ sudo yum install cuda

配置系统环境(/etc/profile)或者当前用户的环境(~/.bashrc)。

export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64:/usr/local/cuda-9.0/extras/CUPTI/lib64:$LD_LIBRARY_PATH


export CUDA_HOME=/usr/local/cuda-9.0/

export PATH=$PATH:$CUDA_HOME/bin

Source配置文件后,查看nvcc版本,若如下图所示则说明CUDA安装成功。到此,也就配置好了CUDA C/C++的编译环境,可以使用nvcc编译.cu的文件。

$ nvcc -V


nvcc: NVIDIA (R) Cuda compiler driver

Copyright (c) 2005-2017 NVIDIA Corporation

Built on Fri_Sep__1_21:08:03_CDT_2017

Cuda compilation tools, release 9.0, V9.0.176

cuDNN 安装

从NVIDIA网站下载cuDNN 安装包,根据GPU及CUDA版本选择对应cuDNN版本,下载cuDNN v7.4.1 for CUDA9.0。

图片

解压拷贝到CUDA安装目录,需要注意的是在/usr/local 目录下存在cuda和cuda-9.0两个目录,一定要拷贝到cuda目录下。

$ cp include/* /usr/local/cuda/include


$ cp lib64/* /usr/local/cuda/lib64

安装TensorFlow

安装TensorFlow GPU就比较容易了,在启用Python不同的虚拟环境下,可以直接通过pip安装,国内的用户可以选择国内的豆瓣pip源。

$ pip install tensorflow-gpu==1.12 -i https://pypi.douban.com/simple/

验证TensorFlow GPU

启动python交互运行界面,导入TensorFlow模块,进行简单的验证。

>>> import tensorflow as tf


>>> sess = tf.Session()

2018-11-21 16:02:44.949511: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1432] Found device 0 with properties:

name: Tesla M40 major: 5 minor: 2 memoryClockRate(GHz): 1.112

2018-11-21 16:02:45.089993: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1432] Found device 1 with properties:

name: Tesla M40 major: 5 minor: 2 memoryClockRate(GHz): 1.112

从输出的日志可以看到发现了两个GPU卡,则说明 TensorFlow GPU是安装成功的。

TensorFlow示例运行

TensorFlow GitHub官方仓库

下载相应的代码,可以直接运行samples里面实例。


标签:Tesla,详解,CUDA,GPU,NVIDIA,TensorFlow,安装
来源: https://blog.51cto.com/15060464/2678399