台式机双显卡ubuntu17.10安装Cuda9 + cudnn7 + Anaconda3 + tensorflow-gpu

13 篇文章 0 订阅
4 篇文章 0 订阅

一 硬件配置和系统安装

二 安装cuda9

2.1 直接安装cuda9.2---不提前安装显卡驱动

2.2 先安装显卡驱动,再安装cuda9.0

安装显卡驱动

安装cuda9.0

2.3检查cuda是否安装成功

三 安装cudnn

3.1下载

3.2 安装

3.3检查是否安装成功

四 安装Anaconda3

4.1下载

4.2安装

五 安装tensorflow

5.1利用conda管理不同的python版本

5.2 激活conda环境

5.2安装tensorflow


 

一 硬件配置和系统安装

1.1 华硕主板,GTX 970显卡 + 集成显卡

    最初不插独立显卡GTX 970时安装ubuntu17一切正常。但是安装独显后发现,显示屏始终黑屏,此时信号数据线使用VGA线,连接主板插口和显示屏插口。在这种情况下使用DMI线连接显卡插口和显示器插口,一切正常。后来寻找问题发现是因为主板上bios上有一个显示启动的选项,默认是自动:表示如果有独立显卡,则使用独立显卡,否则使用集显。

    处理办法:进入bios,进入高级选项,进入高级设置,有一个选项北桥,选择首选显卡,改成IGPU(集显),保存退出即可。然后就可以使用原来的集显点亮屏幕了。(如果追求画质,请继续使用独立显卡借口)

    此处参考一篇文章《台式机双显卡切换

1.2安装ubuntu17

 

二 安装cuda9

我采用了两种方式2.1和2.1安装。

2.1 直接安装cuda9.2---不提前安装显卡驱动

    最初没有考虑版本是否支持,所以直接安装了cuda9.2。cuda内部是含有显卡驱动的。此处安装参考系统准备工作。注意cuda9支持gcc6.3,gcc7是否支持未知。

一、前提

ubuntu系统:17
不要安装任何系统补丁和进行系统升级
cuda9.2
GPU:GeForce GTX970(只要是支持cuda的就好)
查看GPU是否支持cuda https://developer.nvidia.com/cuda-gpus

二、推荐安装前最好先看一遍官方手册

三、安装cuda前的准备工作

1.检查自己的GPU是否是CUDA-capable
在终端中输入:

lspci | grep -i nvidia

去CUDA的官网查看自己的GPU版本是否在CUDA的支持列表中
https://developer.nvidia.com/cuda-gpus
2.检查自己的Linux版本是否支持 CUDA
Ubuntu 17.10是没问题的
3.检查自己的系统中是否装了gcc
在终端中输入:

gcc  --version

 

4.检查是否安装了kernel header和 package development
在终端中输入:

uname -r       

 

在终端中输入:

sudo apt-get install linux-headers-$(uname -r)

可以安装对应kernel版本的kernel header和package development

 

5.禁用 nouveau

1)打开终端,先删除旧的驱动:

sudo apt-get purge nvidia*

2)禁用自带的 nouveau nvidia驱动

创建一个文件通过命令 sudo vim /etc/modprobe.d/blacklist-nouveau.conf

并添加如下内容:

blacklist nouveau
options nouveau modeset=0

再更新一下

sudo update-initramfs -u

修改后需要重启系统。

设置完毕可以再次运行

 lsmod | grep nouveau

检查是否禁用成功,如果运行后没有任何输出,则代表禁用成功。

6.下载cuda
https://developer.nvidia.com/cuda-downloads
按自己电脑要求选择对应版本。
这个cuda有两个安装方式:一个是runfile,另一个是deb。
这里我们选择第一个runfile下载。
下载后放在一个目录下,我这里为 /home/jains/

7.安装cuda的一些依赖库
因为这个依赖的原因,导致我重装了好几次系统,缺少这些依赖会无法安装成功。

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

如无法安装,请看cuda安装错误解决篇

8.重启电脑
在进入到登录界面时候,按住Ctrl+Alt+F2,进入到text mode,登录账号
9.关闭图形界面
终端命令:

sudo service lightdm stop

如果出现lightdm未加载或者不存在没有关系,当作没有,此时这一步可以省略。

10.切换到cuda文件目录

cd到下载好的cuda目录,例如我的cuda包在/home/jains/中

再ls查看cuda名字
11.给cuda可执行的权限

 sudo chmod a+x cuda_9.2_linux.run

 

12.安装步骤

sudo sh cuda_9.2_linux.run

(a)会先有个阅读声明,一直按D即可,然后accept

(b)第一个选项install nvidia accelerated Graphics Driver (y)
(c)第二个选项install the OpenGL libraries
双显卡(指的是集成显卡+独立显卡)选n,单卡(如果没有集成显卡,只有一个或多个支持GPU的显卡)选y。双显卡选y的话,会出现黑屏或登录界面无限循环的问题。
(d)后面的选项都是yes,或者按默认路径即直接按回车即可。
13.若出现下列显示
上面无警告和报错

Driver :Installed
Toolkit :Installed in /usr/local/cuda-7.5
Samples :Installed in /home/tony

即安装暂时成功。

14.输入

sudo service lightdm start 

这一步如果上面每没有可以忽略,直接reboot重启即可。

重新启动图形化界面
Alt + ctrl +F7,返回到图形化登录界面,输入密码登录。
如果能够成功登录,则表示不会遇到循环登录的问题,基本说明cuda的安装成功了。
15.搭配环境
终端输入

echo 'export PATH=/usr/local/cuda-7.5/bin:$PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda-9.2/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc

 

重启电脑。

注意:此处安装的cuda9.2,后来发现目前tensorflow还不支持cuda9.2,所以我重新安装了ubuntu17,就有了第二种方法。

 

2.2 先安装显卡驱动,再安装cuda9.0

为什么我这么做,那是因为按照2.1方式安装cuda和显卡时候,一直提示显卡驱动安装失败,所以我采用先安装显卡驱动,再安装cuda9。

安装显卡驱动

有三种方式:软件更新安装;ppa源安装;下载本地安装。我采用的是软件更新安装驱动384版本显卡驱动(这种方式很快),具体操作如下:

软件更新器安装:

    全部应用--软件更新器--设置--附加驱动--NVIDIA Corporation:GM204[GeForece GTX 970]使用NVIDIA binary driver-version********

下载本地安装:NVIDIA官网下载驱动,存放在本地

1)打开终端,先删除旧的驱动:

sudo apt-get purge nvidia*

2)禁用自带的 nouveau nvidia驱动

创建一个文件通过命令 sudo vim /etc/modprobe.d/blacklist-nouveau.conf

并添加如下内容:

blacklist nouveau
options nouveau modeset=0

再更新一下

sudo update-initramfs -u

修改后需要重启系统。确认下Nouveau是已经被你干掉,使用命令: lsmod | grep nouveau,如果没有任何显示则说明成功。

重启系统,登陆前按住CTRL + ALT + F2进入文本命令行,登陆账户密码,使用命令

sudo sh NVIDIA****

安装显卡完毕,再reboot重启。

打开命令终端,使用如下命令检查是否安装成功

nvidia-smi
nvidia-settings

此处可以看到驱动的版本号等信息。注意:cuda要求驱动版本号在cuda官网有说明,cuda9要求驱动版本 >= 384,也就是说只要高于384版本的驱动都可以。

 

安装cuda9.0

此处操作大体与2.1操作一致。具体区别就在安装cuda接受协议后,有一个问题:是否安装显卡驱动,此处一定要选择no,因为这种方式已经安装了显卡驱动,否则会出现安装失败,其余与2.1一样。

 

2.3检查cuda是否安装成功

1.检查路径 ~/dev 下 有无存在名为 nvidia* (以nvidia开头)的多个文件(device files)
若无,安装错误,见解决篇。
2.检查 CUDA Toolkit是否安装成功
终端输入 :

nvcc -V

3.编译samples例子
进入到Samples安装目录,然后在该目录下终端输入make,等待十来分钟。
4.编译完成后测试
4.1 可以在Samples里面找到bin/x86_64/linux/release/目录,并切换到该目录
运行deviceQuery程序,sudo ./deviceQuery
查看输出结果,重点关注最后一行,Result = Pass表示通过测试

 

4.2运行bandwidthTest程序,sudo ./bandwidthTest
查看输出结果,显示结果为Result = PASS表示通过测试

 

三 安装cudnn

3.1下载

cuDNN是GPU加速计算深层神经网络的库。首先去官网(https://developer.nvidia.com/rdp/cudnn-download)下载cuDNN,需要注册一个账号才能下载,没有的话自己注册一个。最新的版本是v7: 

3.2 安装

下载完毕后,可以手动提取到目录,也可以使用命令提取。

tar -zxvf cudnn-9.0-linux-x64-v7.tgz
#切换到刚刚解压出来的文件夹路径
cd cuda 
#复制include里的头文件(记得转到include文件里执行下面命令)
sudo cp /include/cudnn.h  /usr/local/cuda/include/

#复制lib64下的lib文件到cuda安装路径下的lib64(记得转到lib64文件里执行下面命令)
sudo cp lib*  /usr/local/cuda/lib64/

#设置权限
sudo chmod a+r /usr/local/cuda/include/cudnn.h 
sudo chmod a+r /usr/local/cuda/lib64/libcudnn*

#======更新软连接======
cd /usr/local/cuda/lib64/ 
sudo rm -rf libcudnn.so libcudnn.so.7   #删除原有动态文件,版本号注意变化,可在cudnn的lib64文件夹中查看   
sudo ln -s libcudnn.so.7.1.4 libcudnn.so.7  #生成软衔接(注意这里要和自己下载的cudnn版本对应,可以在/usr/local/cuda/lib64下查看自己libcudnn的版本)
sudo ln -s libcudnn.so.7 libcudnn.so #生成软链接
sudo ldconfig -v #立刻生效

3.3检查是否安装成功

到目前为止,cuDNN已经安装完了,但是,是否成功安装,我们可以通过cuDNN sample测试一下(https://developer.nvidia.com/rdp/cudnn-archive 页面中找到V5.0版本,里面有 cuDNN v5 Code Samples,点击该链接下载即可)

下载完,转到解压出的目录下的mnistCUDNN,

#运行cudnn-sample-v5
tar –zxvf cudnn-sample-v5.tgz  #解压压缩包
cd mnistCUDNN  #转到解压的mnistCUDNN目录下
make  #make 命令下
./mnistCUDNN   #在mnistCUDNN目录下执行./mnistCUDNN
#改程序运行成功,如果结果看到Test passed!说明cudnn安装成功。

 

四 安装Anaconda3

4.1下载

4.2安装

sudo bash Anaconda3-5.4.0-Linux-x86_64.sh

安装anaconda,回车后,是许可文件,接收许可。直接回车即可。最后会询问是否把anaconda的bin添加到用户的环境变量中,选择yes。在终端输入python发现依然是系统自带的python版本,这是因为环境变量的更新还没有生效,命令行输入如下命令:

source /etc/profile 或者 source ~/.bashrc 

 

五 安装tensorflow

5.1利用conda管理不同的python版本

#Python 2.7
conda create -n tensorflow python=2.7

#Python 3.4
conda create -n tensorflow python=3.4

#Python 3.5
conda create -n tensorflow python=3.5

#Python 3.6
conda create -n tensorflow python=3.6   #我下的TensorFlow对应的Python是3.6版本,那么我就使用这行
备注:(根据TensorFlow版本号,一定要设置Python版本号,切记切记切记!!!!!重要的事情说三遍!否则后面会报各种错的)

5.2 激活conda环境

source activate tensorflow

激活后最前面会出现一个(tensorflow)。

5.2安装tensorflow

tensorflow官方安装文档地址:https://www.tensorflow.org/install/install_linux#the_url_of_the_tensorflow_python_package

GPU版本安装:https://pypi.org/project/tf-nightly-gpu/

目前conda的python版本是3.6,所以可以直接使用网站里的命令安装tensorflow-gpu,命令如下

pip install tf-nightly-gpu

如果想要添加python2.7版本

此处贴出百度经验一篇文章,里面有详细介绍。

注意:如果使用pycharm,则在配置python执行时候,需要选择python位置。home/username/.conda/envs/目录下会有不同版本的python包。切换不同版本的python,可以使用source avtivate/deactivate python27

 

 

六、错误情况

1.ImportError: libcublas.so.9.0: cannot open shared object file: No such file or directory

我在pycharm版本中没有发现tensorflow-gpu安装情况,所以在里面安装tensorflow-gpu后错误消失。

2.ImportError: libcudart.so.9.0: cannot open shared object file: No such file or directory

make sure your LD_LIBRARY_PATH includes your lib64 directory in whichever path you installed your cuda package in. You can do this by adding an export line in your .bashrc. For Omar, it looked like the following:

I fixed this just adding the cuda path to my .bashrc

export LD_LIBRARY_PATH=/usr/local/cuda/lib64/


For me, I had to do Omar's line and also: export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64/ because I have two directories involving cuda (probably not the best).


Second, are you sure you installed cuDNN? Note that this is different from the regular cuda package. You will need to register, then download and install the package from the following page:https://developer.nvidia.com/cudnn


Third, I had this same problem:

ImportError: libcudnn.5: cannot open shared object file: No such file or directory

It turns out there is no libcudnn.5 in my /usr/local/cuda/lib64 or /usr/local/cuda-8.0/lib64 directories. However, I do have a libcudnn.so.6.* file. To solve the problem, I created a soft link:

ln -s libcudnn.so.6.* libcudnn.so.5

in my /usr/local/cuda/lib64 directory. Now everything works for me. Your directory might be different if you already had cuDNN, and your libcudnn.so.6.* might be a different version, so check that.

 

 

https://blog.csdn.net/u012235003/article/details/54575670

http://www.cnblogs.com/xuliangxing/p/7575586.html

https://blog.csdn.net/jasonzhangoo/article/details/54866049

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值