从零开始安装双系统Ubuntu18.04、CUDA、cuDNN、TensorFlow-GPU 从零开始安装双系统Ubuntu18.04、CUDA、cuDNN、TensorFlow-GPU

为了防止以后再踩坑,把这次重装遇到的问题以及解决方案标注出来,凡是与下面参考网址原文不同的地方,都是自己相关的标注以及修改
参考:https://blog.csdn.net/blgpb/article/details/82048478
最终自己安装并运行成功的版本是Ubuntu18.04,CUDA9.0,cuDNN7.0.5,tensorflow-gpu1.10.0

从零开始安装双系统Ubuntu18.04、CUDA、cuDNN、TensorFlow-GPU

目录

0 写在开头

1 安装双系统——Ubuntu18.04

1.1 制作Ubuntu18.04的启动U盘

1.2 创建磁盘分区

1.3 安装Ubuntu

3 安装NVIDIA显卡驱动

4 安装CUDA

4.1 手动进行降级

4.2 安装CUDA及其补丁

4.3 测试CUDA是否安装成功

5 安装cuDNN

5.1 下载

5.2 复制cuDNN内容到CUDA相关文件夹内

6 安装TensorFlow-GPU

6.1 安装

6.2 测试安装是否成功


0 写在开头

在训练神经网络模型时,GPU运算能显著地提高运算速度。TensorFlow等许多深度学习框架可以支持在NVIDIA公司的显卡上进行加速运算,但目前不支持AMD公司的显卡。

需要提醒的是,并不是NVIDIA公司的所有显卡都能支持CUDA、TensorFlow-GPU运算。只有当电脑上NVIDIA显卡的性能满足要求时,才可以支持CUDA。参考NVIDIA官网:https://developer.nvidia.com/cuda-gpus

并且,只有当电脑上显卡的Compute Capability大于等于3.0时,才能支持TensorFlow-GPU。否则,即使成功地安装了CUDA,也不能使用GPU加速TensorFlow的运算。

1 安装双系统——Ubuntu18.04

安装双系统是指,原先的电脑已经安装了一个操作系统,比如Windows7、Windows10等操作系统,然后再重新安装一个操作系统。在安装的时候,两个系统是分别装在不同的分区内,后安装的系统不会覆盖前一个系统。而且每个单独的系统都有自己的分区格式,不会造成冲突的。安装了双系统后,在启动的时候,有一个多重启动的选择菜单,可以选择进入那个操作系统。当前状态下,只有一个系统是在运行的,不能随意的切换。如果想要进入另外一个,就要重新启动,重新选择。

本文介绍的是如何在Windows7或者Windows10的电脑上安装Linux操作系统之Ubuntu18.04。需要注意的是,如果对安装操作系统、磁盘分区等操作不熟悉,建议在执行以下操作前备份电脑中的数据。

1.1 制作Ubuntu18.04的启动U盘

在Ubuntu的官网上下载18.04,下载地址为:http://releases.ubuntu.com/18.04/

使用UltraISO软件,制作启动U盘。首先需要准备一个空白的或者备份过的U盘,U盘大小在4GB及以上。将U盘插入电脑,进入UltraISO,打开镜像文件(即下载好的Ubuntu18.04 ISO镜像文件)。

         

点击"启动"->"写入硬盘映像..."

          

按照默认设置的参数并执行写入操作

           

           

至此,完成了Ubuntu18.04启动U盘的制作。

1.2 创建磁盘分区

同时按下Windows键和X键,在弹出的列表中选择“磁盘管理”

          

选择剩余可用空间较大的磁盘分区,右键并选择“压缩卷”。图中选择的是压缩E盘60G的空间。

          

点击“压缩”之后,E盘后部出现黑色的60G“未分配空间”

           

至此,磁盘分区过程完成。

1.3 安装Ubuntu

插入U盘,重启电脑。在出现电脑品牌的LOGO界面时,按下BIOS的快捷键(电脑型号不同快捷键不同)。进入系统BIOS后设置优先U盘启动,设置后电脑自动重启并进入Ubuntu安装界面。

         

用户根据自己的需要选择语言等选项,这些设置都不是非常重要。

但是,下图“安装类型”的设置至关重要。一定要选择“其他选项”。

          

         

分配空间时需要注意:

第一次分区:

“空闲”处点“+”,进行如下设置:

大小:25600MB(设置分配给Ubuntu 根目录的空间。因为避免出现CUDA和TensorFlow安装时根目录存储空间不够的情况,建议设置20GB以上。)

新分区的类型:主分区

新分区的位置:空间起始位置

用于:EXT4日志文件系统

挂载点:“/”

           

第二次分区:

“空闲”处,继续点“+”,如下设置,

大小:4096MB

新分区的类型:逻辑分区

新分区的位置:空间起始位置

用于:交换空间

挂载点:(不需要设置)

          

第三次分区:

“空闲”处,继续点“+”,如下设置,

大小:512MB(网上有的文章设置的200MB,但是会导致安装时GRBU配置出现问题“GRUB installation failed”)

新分区的类型:逻辑分区

新分区的位置:空间起始位置

用于:EXT4日志文件系统

挂载点:/boot

          

第四次分区:

“空闲”处,继续点“+”,如下设置,

大小:剩余的全部空间,剩下多少就显示多少

新分区的类型:逻辑分区

新分区的位置:空间起始位置

用于:EXT4日志文件系统

挂载点:/home

          

分区设置完毕后,下方还有一个设置项“安装启动引导器的设备”,选择/boot 所在分区进行安装,然后点击“现在安装”。

        

接下来的设置按照提示一步一步进行下去就可以了。

完成所有的安装设置后,会提示重启电脑。重启过后,就安装成功了。

需要注意的是,按照如下的安装方式,在Windows7操作系统下,开机时会有选项让用户选择打开哪个操作系统(Windows7还是Ubuntu18.04),不会有任何的影响。但是,如果主操作系统是Windows10,在Windows10重启后会自动地修改电脑BIOS的BOOT选项,使得无法引导打开Ubuntu18.04的操作系统。此时,可以在开机时打开BIOS,手动调整BOOT顺序,从而打开Ubuntu18.04操作系统。

3 安装NVIDIA显卡驱动

打开Ubuntu18.04的命令行,输入以下命令以安装Ubuntu18.04的显卡驱动。

sudo ubuntu-drivers autoinstall
 
  
  

驱动安装完成后,一定要重新启动电脑。打开Ubuntu18.04的“设置"->"详细信息"->"关于"。如果"图形处理"处对应于自己的独立显卡的型号,那么说明安装成功。

4 安装CUDA

根据我的多次实验,目前在Ubuntu18.04系统上,适合安装的CUDA版本是9.0版本。安装9.0以上的版本会导致TensorFlow-GPU在运行时报错,“import error:libcuda.so.9.0:cannot open shared object file:no such file or directory”。

下载地址:https://developer.nvidia.com/cuda-90-download-archive

按照下图进行选择

需要下载5个文件,第一个是主文件,后面的4个是补丁。

         

下载完成后,开始安装:

4.1 手动进行降级

在命令行逐行输入下面的命令


 
  
  
  1. sudo apt-get install gcc -4.8
  2. sudo apt- get install g++ -4.8
  3. cd /usr/ bin
  4. sudo mv gcc gcc.bak
  5. sudo ln -s gcc -4.8 gcc
  6. sudo mv g++ g++.bak
  7. sudo ln -s g++ -4.8 g++

分别查看gcc和g++版本号


 
  
  
  1. gcc -v
  2. g++ -v

如果显示version为4.8,那么说明降级成功。

4.2 安装CUDA及其补丁

4.2.1 如果之前安装过CUDA,可通过下面命令卸载:

sudo /usr/local/cuda-8.0/bin/uninstall_cuda_8.0.pl(运行CUDA自带的卸载功能)

或者 先进入bin目录:cd /usr/local/cuda-8.0/bin 再执行: ./uninstall_cuda_8.0.pl(运行CUDA自带的卸载功能)

卸载之后,删除原来的安装文件夹即可:sudo rm -rf /usr/local/cuda-8.0/

4.2.2 安装CUDA之前需要先安装一些文件,否则可能安装不成功:

sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev/

4.2.3 输入命令安装Base Installer

sudo sh cuda_9.0.176_384.81_linux.run
 
  
  

执行代码后,会出现Notice内容,按下键盘上的D按键可以快速翻页(或者直接ctrl+c完成阅读)。

需要注意的是,由于已经安装过NVIDIA显卡驱动程序,故在提问是否安装显卡驱动时选择No,其他选择默认路径或者选择Yes即可。

4.2.4 然后,继续执行以下命令逐一安装4个patch(补丁不装也行):


 
  
  
  1. sudo sh cuda_9 .0 .176 .1_linux .run
  2. sudo sh cuda_9 .0 .176 .2_linux .run
  3. sudo sh cuda_9 .0 .176 .3_linux .run
  4. sudo sh cuda_9 .0 .176 .4_linux .run

4.2.5 安装完毕之后,在命令行输入下面的代码

sudo gedit ~/.bashrc
 
  
  

将以下两条语句加入.bashrc文件中


 
  
  
  1. export PATH= /usr/local /cuda-9.0/bin${ PATH:+ :$PATH}} #注意,根据自己的版本,修改cuda-9.2/9.0...
  2. export LD_LIBRARY_PATH= /usr/local /cuda-9.0/lib64${ LD_LIBRARY_PATH:+ :${LD_LIBRARY_PATH}} #注意,根据自己的版本,修改cuda-9.2/9.0...

然后使用source命令更新使路径生效:source ~/.bashrc

至此,CUDA安装完成。

4.3 测试CUDA是否安装成功

在命令行中输入下列命令


 
  
  
  1. cd ~/NVIDIA_CUDA -9.0_Samples/ 1_Utilities/deviceQuery
  2. make
  3. sudo ./deviceQuery

查看输出结果,如果最后一行是"Result = Pass"表示CUDA安装成功。

           这里写图片描述

再输入下列命令


 
  
  
  1. cd ../bandwidthTest
  2. make
  3. sudo ./bandwidthTest

查看输出结果,如果出现"Result = Pass"表示CUDA安装成功。

           这里写图片描述

5 安装cuDNN

由于安装的是CUDA9.0版本,所以安装的cuDNN的版本对应的是7.2.1

5.1 下载

下载"cuDNN v7.2.1 Library for Linux",下载完毕后,进入到Downloads文件夹路径下,可以看到压缩包,然后解压。

5.2 复制cuDNN内容到CUDA相关文件夹内

在命令行中输入


 
  
  
  1. sudo cp cuda/include/cudnn.h /usr/ local/cuda/include 注意,解压后的文件夹名称为cuda ,将对应文件复制到 /usr/ local中的cuda内
  2. sudo cp cuda/lib64/libcudnn* /usr/ local/cuda/lib64
  3. sudo chmod a+r /usr/ local/cuda/include/cudnn.h /usr/ local/cuda/lib64/libcudnn*

至此,cuDNN安装完成。

5.3 安装libcupti-dev

sudo apt-get install libcupti-dev

6 安装TensorFlow-GPU

6.1 安装

在命令行中输入

pip3 install tensorflow-gpu
 
  
  

(指定某个版本的tensorflow-gpu安装:pip3 install tensorflow-gpu==1.10.0)

安装完成之后输入

python3
 
  
  

在python3的交互模式中输入


 
  
  
  1. >>> from tensorflow.python.client import device_lib
  2. >>> device_lib.list_local_devices()

如果出现下图所示,GPU被列出来,那么表明安装成功。

        

6.2 测试安装是否成功

在Python环境中输入下列代码


 
  
  
  1. import numpy
  2. import tensorflow as tf
  3. a = tf.constant([ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[ 2, 3], name= 'a')
  4. b = tf.constant([ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[ 3, 2], name= 'b')
  5. c = tf.matmul(a, b)
  6. sess = tf.Session(config=tf.ConfigProto(log_device_placement= True))
  7. print(sess.run(c))

如果输出的信息类似下图,则表明TensorFlow-GPU安装成功,并且利用GPU加速运算。

           

目录

猜你喜欢

转载自blog.csdn.net/qq_41870658/article/details/92973281