Advertisement

Ubuntu16.04+CUDA8.0+cudnn5.1+TensorFlow-GPU详细安装步骤

阅读量:

为了更好地掌握机器学习的基础算法知识并结合Python2.7版本与TensorFlow-gpu框架进行实践学习,在Windows环境下发现该框架仅支持Python3.5及以上的版本这一限制后,在虚拟机环境中发现使用Ubuntu系统时对硬件资源的调用功能仍然不足。无奈之下特意安装了双系统环境:在Windows10操作系统下安装并运行了Ubuntu Kylin 16.04LTS版本的操作系统。然而对于长期习惯于运行在Windows系统的个人而言这一操作过程可谓举步维艰、异常艰难繁琐,在此特别感谢CaptainChen同学及其他师兄师姐们的支持与帮助。现将整个操作流程详细记录下来以便大家共同参考和交流


安装准备

这里我仅列出我自己的安装准备:

  1. 该笔记本配备GeForce GT 750M独立显卡2GB显存配置、8GB内存以及Windows10操作系统,建议您自行检查自己电脑上的显卡是否支持深度学习计算。
  2. 准备一个空U盘,并确保其至少拥有2GB以上的可用空间。
  3. 从网上下载所需的Ubuntu镜像文件,并选择Kylin 16.04LTE版本作为安装系统。
  4. 使用 UltraISO 软件下载并刻录必要的系统安装文件。
  5. 右键点击目标电脑,进入"管理"选项,在"磁盘管理"设置中找到并展开对应的分区,选择一个未被占用的空间较大的分区进行操作.
  6. 右击目标分区,进入属性对话框后找到压缩卷选项,默认情况下该区域已无卷划分.
  7. 输入所需的存储空间大小(例如:100G)。完成后会自动生成新的卷空间,默认状态下无已存在的卷,如有则需删除现有卷即可完成设置。

U盘安装Ubuntu系统

U盘启动

第一步操作是利用UltraISO程序工具将Ubuntu系统iso文件刻录到USB存储设备中。具体的刻录步骤可通过百度搜索获取到很多参考资料,并提供了一个详细的例子供参考。

接下来计划重启Windows系统。这相当于即将安装双系统的最后一步,在操作之前先处理必要的事项。插入包含刻录文件的USB启动盘后重启。通过USB启动进行重启的方式有两种不同的USB启动方法。

  1. 重启进入BIOS界面,不同主板的电脑进入BIOS界面的方法不同,反正总之是开机疯狂按F1、F2、F11、F12、DEL键中的一个,我的电脑是按F1。然后在BIOS界面里进入boot菜单栏,里面可以看见启动顺序应该是Windows启动是首位,将USB启动调到第一位,然后保存退出,重启。
  2. 在Windows10下可以不用BIOS进入U盘启动,在系统设置中,进入“更新和安全”,然后在侧栏选择进入“恢复”,选择“高级启动”下的“立即重启”。然后自动重启后会进入一个选择界面,选择“疑难与解答”,然后里面可以选从U盘启动。

启动U盘后,通常会呈现一个选项列表,在其中可以选择类似“不安装Ubuntu”或“安装Ubuntu”的操作来启动操作系统。选择“不安装Ubuntu”时会进入一个迷你Kylin系统,“安装Ubuntu”则会自动运行相应的安装文件。由于U盘中包含了必要的操作系统文件,在这种情况下通过U盘启动实际上模拟了使用独立操作系统进行操作的过程。值得注意的是,在此过程中只需要能够进入相应的安装程序即可完成初始化设置。

Ubuntu安装

简单的安装选项就不讲了,主要讲一下安装过程中的系统分区。

在安装过程中有一个界面用于选择安装模式,默认情况下电脑会同时支持Ubuntu和Windows操作系统。你可以根据需求选择以下任意一种模式:仅在系统上运行Ubuntu、清空系统并仅安装Ubuntu或按照个人需求进行定制化配置。目前我们选择了定制化配置选项。进入该设置后会显示该电脑的磁盘分区状态,请找到我们之前划分的一个100G空间区域并选中它,在下方可以看到一个加号图标。点击加号按钮进行分区划分。每次创建一个新分区时,原有的100G空间会相应地减少容量。接下来的操作包括创建四个不同的存储区域:一个用于系统存储、一个用于应用程序存放、一个作为临时存储区以及最后一个作为备份专用空间。

  1. /boot为8GB(系统内核分区)
  2. /home为8TB(用户数据存储区域)
  3. /root directory partition为9TB(操作系统安装区域)
  4. /swap为8KB(内存缓存区域)

根据个人需求来确定具体的分区大小。接着,在Ubuntu系统中运用Gparted软件进行硬盘分区的优化划分。

随后对系统进行全面安装。重启后将引导你选择操作系统类型,在选项中可以选择并启动Ubuntu操作系统。随后将允许你根据个人需求进行各种配置和自定义设置。至此整个Ubuntu系统的安装过程已完成。

Ubuntu下显卡驱动的安装

首先检查本机的显卡信息,并查看推荐驱动

复制代码
    ubuntu-drivers devices

这里可以看出GPU model为GK107M [GeForce GT 750M]这一配置下运行深度学习计算表现优异,并且该显卡具备深度学习计算能力。此外我们注意到driver的推荐版本为NVIDIA-375这一配置下运行深度学习计算表现优异,并因此决定安装375系列的显卡驱动器,在常规情况下通常都会选择NVIDIA-375版本的原因在于随后提供的CUDA8.0官方指导版也对其兼容性进行了验证和支持

再查看本机的显卡驱动:在右上角的菜单里选择“关于这台电脑”

在查看当前设备信息时,可以看到'图形'表示为GeForce。由于我的显卡驱动已成功安装,请确保其默认配置应采用开源兼容型驱控方案。若未安装驱动,则默认配置将基于现有独立显卡架构设计。

现在开始安装显卡驱动程序。由于显示器连接时非常容易损坏设备,请特别注意不要随意连接这会导致设备受损。笔记本电脑无需连接外置显示器;而台式机的显示器应连接至集线器接口,并且在完成集线器接口的驱动安装后,在独立显示器上插入请务必注意这一点

屏蔽开源驱动nouveau

以下内容由CaptainChen同学提供

在操作之前,在系统中禁用默认配置的开源框架nouveau以避免冲突。若未提前禁用该框架,则会导致后续安装过程出现错误。接下来将详细讲解三种不同的安装策略。无需特别禁用该框架即可直接进入第一种方案的操作说明。

屏蔽开源驱动:打开终端执行

复制代码
    sudo gedit /etc/modprobe.d/blacklist-nouveau.conf

在新增的文件中写入以下内容保存:

复制代码
    blacklist nouveau
    blacklist lbm-nouveau
    options nouveau modeset=0
    alias nouveau off
    alias lbm-nouveau off

然后在终端中执行:

复制代码
    echo options nouveau modeset=0 | sudo tee -a /etc/modprobe.d/nouveau-kms.conf
    sudo update-initramfs -u

重启电脑
开机后,终端中执行:

复制代码
    lsmod | grep nouveau

若无输出内容,则表明nouveau已成功屏蔽上述操作;反之,则需对前述操作进行详细核查。

安装N卡驱动

N卡驱动有三种安装方法:系统附加驱动、ppa安装、runfile安装。

进入系统设置后,在"软件和更新"选项中打开列表界面,并勾选所有可用的软件源(特别注意源代码选项)。完成更新后,在"附加驱动"部分选择与NVIDIA相关的专用驱动程序进行安装,并重启电脑以完成设置。

这里写图片描述

在安装N卡驱动的过程中,如果遇到进度条长时间未向前移动的情况,则可以通过终端使用top命令来查找占用CPU资源的进程。如果发现aptd进程长时间占据100%的CPU资源,则应在系统设置中关闭与系统更新相关的选项以解决问题。

在安装PPA之前,请提前将相关代码保存下来,并切换到文本编辑界面。

关闭图形界面:
sudo /etc/init.d/lightdm stop
添加ppa源并更新缓存:
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
安装驱动:
sudo apt-get install nvidia-xxx # xxx是版本号,这里按tab选择版本即可
重启电脑

  1. runfile安装:
    自行从官网下载对应的runfile文件(注意版本兼容性问题),然后按照上一步骤的方法关闭图形界面,并切换至文本编辑模式,在其间输入以下内容:
    a.run文件赋予执行权限(使用chmod命令)。
    然后以超级用户权限运行./a.run脚本(使用sudo sh命令)。
    安装完成后重启电脑即可完成配置。

装完驱动之后,可在终端执行nvidia-smi查看有driver version:xxx字样

这里写图片描述

这个时候就可以把外接显示器接上了啦,台式机也可以接独显了。

CUDA8.0的安装

首先去官网下载CUDA toolkit8.0的runfile:Linux–》x86_64–》Ubuntu–》16.04–》runfile
我下载下来的版本是cuda_8.0.61_375.26_linux.run,可以看到他是支持375版本驱动的
然后终端进入runfile的下载目录,执行:

复制代码
    sudo sh cuda_8.0.61_375.26_linux.run --override

随后将启动安装流程,并且所有操作均基于EULA协议进行,请通过快捷键Ctrl+C快速跳过该协议页面直接进入下一步骤。在完成所有必要的配置后,请点击"接受"以继续下一步操作。接下来是安装交互界面的展示,在启动步骤中第一个任务是安装NVIDIA加速图形驱动程序。具体来说,在Linux-x86_64系统中,默认情况下已经配置好了相关驱动程序,请按照提示选择跳过此步骤(选项n),因为您已提前完成相应设置。

Using more to view the EULA.

End User License Agreement

Preface

The document includes detailed license terms and conditions for four distinct NVIDIA products. Upon accepting this agreement, you commit to complying with the various terms and conditions pertaining to the specific NVIDIA products outlined in this document.

NVIDIA CUDA Toolkit

Description

The NVIDIA CUDA Toolkit offers a range of command-line utilities and graphical interfaces to aid in building、debugging、and optimizing high-performance computing tasks utilizing NVIDIA GPUs、runtime libraries、and mathematical functions. It also provides comprehensive documentation resources including programming guides、user manuals、and API references to support developers. The NVIDIA CUDA Toolkit License Agreement can be found in Chapter 1 of this document.

Default Install Location of CUDA Toolkit

Windows platform:

Do you accept the previously read EULA?
accept/decline/quit: accept

Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 xxx?
(y)es/(n)o/(q)uit: n

Install the CUDA 8.0 Toolkit?
(y)es/(n)o/(q)uit: y

Enter Toolkit Location
[ default is /usr/local/cuda-8.0 ]:

Do you want to install a symbolic link at /usr/local/cuda?
(y)es/(n)o/(q)uit: y

Install the CUDA 8.0 Samples?
(y)es/(n)o/(q)uit: y

Enter CUDA Samples Location
[ default is /home/kinny ]:

Installing the CUDA Toolkit in the specified location

Configuring the CUDA Samples within the specified directory, which is located at /home/kinny.
Replicating the samples into a designated folder located at /home/kinny/NVIDIA_CUDA-8.0_Samples has been successfully completed.
The process of copying samples has been successfully completed.

===========
Summary

driver未被选择
tool包位于/usr/local/cuda-8.0
样本文件位于/home/kinny, 但缺少必要的库文件

请确保以下设置:
- 该变量设置为包含/usr/local/cuda-8.0/bin。
- 该变量设置为包含/usr/local/cuda-8.0/lib64;或者将该路径添加到/etc/ld.so.conf,并运行ldconfig作为root。

Execute the CUDA Toolkit uninstall script located in the /usr/local/cuda-8.0/bin directory.

Check out CUDA_Installation_Guide_Linux.pdf, which is located in /usr/local/cuda-8.0/doc/pdf, for comprehensive details regarding CUDA setup.

***WARNING: 当前安装状态不完整!此安装程序未成功安装CUDA驱动程序。
至少需要使用版本号不低于361.00的CUDA驱动以支持CUDA 8.0功能。
为了通过此安装程序安装驱动,请运行以下命令:
sudo .run -silent -driver

Logfile is /tmp/cuda_install_17494.log

然后在终端根目录下编辑环境变量:

复制代码
    sudo gedit .bashrc

在文件的最末行换行添加两个环境变量:

复制代码
    export PATH="$PATH:/usr/local/cuda-8.0/bin"
    export LD_LIBRARY_PATH="/usr/local/cuda/lib64:/usr/local/cuda/lib64:/usr/local/cuda/extras/CPUTI/lib64"

保存退出,使环境生效:

复制代码
    source .bashrc

深度学习库cudnn5.1的安装

在线获取文件cudnn-8.0-linux-x64-v5.1.tgz

复制代码
    tar xvzf cudnn-8.0-linux-x64-v5.1.tgz

然后将库和头文件copy到cuda目录:

复制代码
    sudo cp cuda/include/cudnn.h /usr/local/cuda/include
    sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
    sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*

tensorflow-gpu for python2.7的安装

先安装Python的库支持:

复制代码
    sudo apt-get install python-pip python-dev
    sudo pip install --upgrade pip

再安装tensorflow-gpu:

复制代码
    sudo pip install tensorflow-gpu #如果是Python3就是pip3 install tensorflow -gpu

我这边系统的默认设置导致下载速度非常迟缓到几乎让人难以忍受的地步;使用pip时如果下载速度过于迟缓会导致无法正常连接;不过幸运的是我们可以在此时切换为国内镜像站点下的资源(目前我们使用的是清华大学提供的资源库;其他镜像站点也可以通过简单的搜索找到):

复制代码
    sudo pip install -i https://pypi.tuna.tsinghua.edu.cn/simple tensorflow-gpu #即在install后面加 -i 源地址

如果想永久更改下载源,可以修改~/.pip/pip.conf (没有就创建一个),在里面添加:

复制代码
    [global]
    index-url = https://pypi.tuna.tsinghua.edu.cn/simple

安装成功后,所有安装工程结束!进入Python shell调试吧!

这里写图片描述

附加内容:pycharm的库环境添加

通常在启动PyCharm并运行import tensorflow as tf时会遇到无法找到.so文件的问题。如果未遇到此问题,则表示你的环境配置已经成功。教程到这里已经结束了。

复制代码
    LD_LIBRARY_PATH="/usr/local/cuda/lib64:/usr/local/cuda/lib64:/usr/local/cuda/extras/CPUTI/lib64"

如图:

这里写图片描述

然后在终端启动pycharm.sh一下:

复制代码
    sudo ./pycharm.sh

再次import tensorflow as tf就不会报错了,会显示GPU信息,大功告成!

第一次写博客,请大家多多支持!

全部评论 (0)

还没有任何评论哟~