Ubuntu 16.04 + GTX 1080 Ti + CUDA 9.0 + Cudnn 7.1 安装配置

1. 安装显卡驱动

首先查看一下自己的电脑需要怎样的驱动,我们可以先到 http://www.nvidia.com/Download/index.aspx 查询下我们需要的是怎样的驱动,这里我的显卡是 GTX 1080 Ti,所以以此为例说明,勾选好对应的配置:

点击search并下载驱动

打开terminal,卸掉系统原有驱动:

sudo apt-get remove --purge nvidia*

在安装新驱动前,禁用nouveau:

在终端中运行 lsmod | grep nouveau

若没有输出则nouveau已禁用;若有输出则说明nouveau正在运行,需要手动禁用:

sudo vim /etc/modprobe.d/blacklist-nouveau.conf

在该文件尾部输入以下内容:

blacklist nouveau 
options nouveau modeset=0

保存并关闭文件。

在终端中执行:sudo update-initramfs -u

再次运行 lsmod | grep nouveau 检查nouveau是否禁用,若未禁用则重复上述操作。

关闭图形化界面:sudo service lightdm stop

按Ctrl + Alt + F1 进入字符终端页面,

进入驱动所在的目录,运行:

sudo
sh 驱动名

安装完之后重启: sudo reboot

打开终端输入命令: nvidia-smi, nvidia-settings查看驱动安装状态:

2. 安装CUDA 9.0

sudo sh
cuda_9.0.176_384.81_linux.run

是否Accept EULA:Accpet

Install driver:Yes/No

Install OpenGL:No

Run nvidia_xconfig: No

Install Cuda Toolkit: Yes

Yes

Yes

配置CUDA的环境变量:

sudo gedit ~/.bashrc

在文件尾部输入:

  1. export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH
  2. export LD_LIBRARY_PATH=/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH

运行source ~/.bashrc 使其生效

3. 配置 Cudnn

下载Cudnn并解压:

tar -zxvf cudnn-7.0-linux-x64-v3.0-prod.tgz

解压后会看到一个cuda文件夹,里面包含了include以及lib64两个子目录。我们需要做的就是将这两个字母里面的文件复制到cuda对应的安装目录。这里以cuda的安装目录为/usr/local/cuda/,这个目录下也会包含include/以及lib64/这两个文件夹,将之前目录的文件复制过来即可。

sudo cp cuDNN/cuda/include/cudnn.h /usr/local/cuda/include

sudo cp cuDNN/cuda/lib64/* /usr/local/cuda/lib64/

这时候本来已经可以了,但是由于权限的原因原来的两个符号链接文件(libcudnn.so,libcudnn.so.7.0)已经失效了,直接编译便会报错,所以这时手动生成符号链接。

#下面的操作在/usr/local/cuda/lib64/目录下进行

sudo rm -rf libcudnn.so libcudnn.so.7.0#删除两个符号链接;

sudo ln -s libcudnn.so.7.0.64 libcudnn.so.7.0

sudo ln -s libcudnn.so.7.0 libcudnn.so

运行source ~/.bashrc 使其生效

如果出现下面问题:

/sbin/ldconfig.real:
/usr/local/cuda/lib64/libcudnn.so.7 is not a symbolic link

则参考如下解决方法,版本需对应安装的cudnn的相应版本(link:https://askubuntu.com/questions/1025928/why-do-i-get-sbin-ldconfig-real-usr-local-cuda-lib64-libcudnn-so-7-is-not-a):

sudo rm libcudnn.so

sudo ln libcudnn.so.7.0.5
libcudnn.so.7

sudo ln libcudnn.so.7 libcudnn.so

sudo ldconfig

Cudnn配置完毕

4. 安装Anaconda

根据环境下载对应的anaconda 软件,运行:

Sudo bash Anaconda3-5.1.0-Linux-x86_64.sh

安装完之后创建python虚拟环境:

conda create -n tensorflow pip python=2.7 #
or python=3.3, etc.

(根据需要选择合适的python版本)

5. 安装Tensorflow-gpu

输入命令:source activate
tensorflow-gpu

pip install --ignore-installed --upgrade
tfBinaryURL

(我装的是tensorflow-gpu 1.10版本,把tfBinaryURL 替换如下

https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-1.10.0-cp36-cp36m-linux_x86_64.whl

链接不好使~需要多试几次,tensorflow会自动下载安装

6. 缺少的一些包用pip安装:

Pip install
opencv-python

Pip install matplotlib,
etc

Ubuntu安装配置Tensorflow-GPU的更多相关文章

  1. 【转】Ubuntu 16.04安装配置TensorFlow GPU版本

    之前摸爬滚打总是各种坑,今天参考这篇文章终于解决了,甚是鸡冻\(≧▽≦)/,电脑不知道怎么的,安装不了16.04,就安装15.10再升级到16.04 requirements: Ubuntu 16.0 ...

  2. Ubuntu安装配置protobuf 2.5

    Ubuntu安装配置protobuf 2.5 一.安装配置环境 Linux 1.安装protobuf 下载文件 https://github.com/protocolbuffers/protobuf/ ...

  3. [转载]Ubuntu安装配置 git 服务器和客户端

    原文地址:Ubuntu安装配置 git 服务器和客户端作者:ding404 1.配置前准备 服务器:安装ssh server另外还装了gitosis做git的权限管理 sudo apt-get ins ...

  4. ubuntu 安装配置 JDK7和Android Studio(apt-get方式)

    Ubuntu 安装配置JKD 7 $ sudo add-apt-repository ppa:webupd8team/java $ sudo apt-get update $ sudo apt-get ...

  5. Ubuntu 安装配置MySQL,并使用VS的Server Explorer UI界面远程管理MySQL

    为安装配置方便,使用root账号登入Ubuntu. step1: 键入下面命令安装MySQL. 过程十分简单.安装过程中只需根据提示输入root账号的密码即可. step2:安装完成后检查MySQL是 ...

  6. 英文版Ubuntu安装配置搜狗拼音输入法

    下载搜狗输入法 1 进入搜狗输入法官网,进入上面导航兰的 "输入法Linux版"   2 根据你安装的ubuntu是32位还是64位下载 END ubuntu安装搜狗输入法 1 进 ...

  7. UBuntu安装配置记录

    记得是06年左右第一次安装的 Linux,当时是下载的 Fedora镜像,版本已经记不清了,在商业街的电脑维修店刻的盘,回来后兴冲冲地和XP一起安装的双系统.其实就是直接的体验了一把,只是看了看X-W ...

  8. Ubuntu安装配置Qt 4.86环境

    安装 QT4.8.6库+QT Creator 2.4.1 下载地址公布 QT4.8.6库  http://mirrors.hustunique.com/qt/official_releases/qt/ ...

  9. ubuntu安装anaconda3+tensorflow(cpu)+pycharm(windows几乎一样)

    网上乱七八糟有的都是别人怎么写自己也怎么写,其实很简单. 首先是anaconda3的安装: 直接上官网:https://www.anaconda.com/download/ 下载下来之后进入文件所在目 ...

随机推荐

  1. python接口自动化框架搭建

    一.在搭建接口自动化测试框架前,我觉得先需要想明白以下几点: ① 目前情况下,绝大部分接口协议是http,所以需要对http协议有个基本的了解,如:http协议请求.响应由哪些部分组成,常用的meth ...

  2. 前端Ajax跨域解决方案

    业务场景: 前后端分离需要对接数据接口. 接口测试是在postman做的,今天才开始和前端对接,由于这是我第一次做后端接口开发(第一次嘛,问题比较多)所以在此记录分享我的踩坑之旅,以便能更好的理解,应 ...

  3. Ubuntu16.04使用apt安装完nginx常见问题

    1.安装完并remove掉后重新install后没nginx.conf文件 解决办法: apt-get -y --purge remove nginx* apt-get -y autoremove a ...

  4. 网络分析:WireShark

    安装 WireShark 官网 过滤器 类别 显示过滤器模式 捕获过滤器模式 逻辑表达式 and:&& or:|| 成组:() 过滤实例 仅监听某域名 http.host == &qu ...

  5. Vue实现点击时间获取时间段查询功能

    二话不说,先上图 实现如上代码: //获取本周第一天 showWeekFirstDay: function () { let Nowdate = new Date(); let WeekFirstDa ...

  6. Mybatis是什么?mybatis中的对一和对多关系怎么配置

    Mybatis是什么? 1.mybatis出来之前,由java的jdbc连接数据库,mybatis出来之后,将jdbc进行封装,实现更有效的连接:   2.mybatis的对象SqlSession,s ...

  7. Leetcode之广度优先搜索(BFS)专题-529. 扫雷游戏(Minesweeper)

    Leetcode之广度优先搜索(BFS)专题-529. 扫雷游戏(Minesweeper) BFS入门详解:Leetcode之广度优先搜索(BFS)专题-429. N叉树的层序遍历(N-ary Tre ...

  8. 记录Linq中lambda动态表达式的使用方式

    项目中有的时候我们会用到动态表达式的方式去查询数据,这里简单记录下个人的使用方式,方便使用↓ //构建参数表达式 ParameterExpression parameter = Expression. ...

  9. MessageBox显示位置

    假设存在2个窗口类CImDlg与CChatDlg,如果希望MessageBox跟随CChatDlg,方法是 CChatDlg *pDlg = xxx; pDlg->MessageBox();

  10. typedef 定义结构体数组或其他数组

    typedef 定义结构体数组或其他数组 C\C++语言下 typedef其实是对一个变量类型的名字进行重新定义,例如下面中: typedef struct { int num[10]; char n ...