参考:https://blog.csdn.net/u010094199/article/details/54380086

参考:https://blog.csdn.net/jonms/article/details/79318566

参考:https://blog.csdn.net/jonms/article/details/79318566

cuDnn的配置可以参考:https://blog.csdn.net/lucifer_zzq/article/details/76675239

首先介绍一下我的电脑配置,我的显卡是NVIDIA GTX970

1. 安装双系统(Ubuntu16.04 + Windows 7)全都是64位的操作系统

我用U盘制作系统盘安装Ubuntu16.04的时候,遇到如下问题:无法将启动引导正常安装

重新安装了好几次都是这样,找不到解决方案,有同学知道怎么解决的可以安利一下我~

由于Ubuntu14.04安装cuda的时候坑太多,看好几个帖子都这么说的,我还是坚定地想装Ubunt16.04。

然后参考:从Ubuntu 14.04 LTS版升级到Ubuntu 16.04 LTS。到此,Ubuntu16.04安装成功!

2. 安装NVIDIA显卡驱动

这里要引用PPA第三方库,因为直接从NVIDIA官方安装,会有显示器黑屏、进入不了tty1界面等一系列问题,没办法,Ubuntu对于NVIDIA显卡驱动的支持不太好

sudo add-apt-repository ppa:graphics-drivers/ppa    //引入PPA库里的显卡驱动

如果引用成功,则会显示如下图所示:

Fresh drivers from upstream, currently shipping Nvidia.

## Current Status

Current official release: `nvidia-370` (370.28)
   Current long-lived branch release: `nvidia-367` (367.57)

For GeForce 8 and 9 series GPUs use `nvidia-340` (340.98)
   For GeForce 6 and 7 series GPUs use `nvidia-304` (304.132)

## What we're working on right now:

- Normal driver updates
   - Help Wanted: Mesa Updates for Intel/AMD users, ping us if you want to help do this work, we're shorthanded.

接下来安装当前的长期稳定版nvidia-367驱动

sudo service lightdm stop                    
     sudo apt-get install nvidia-367             
     sudo service lightdm start                
     sudo reboot                                  
     nvidia-smi

这里需要先关闭图形桌面,如果不关闭,可能会在安装显卡驱动的时候提示X server未关闭的错误,从而导致安装失败

如果显卡驱动安装成功,则在执行完nvidia-smi语句后,输出如下:

Sat Jan 14 10:41:03 2017       
  +-----------------------------------------------------------------------------+
  | NVIDIA-SMI 367.57                 Driver Version: 367.57                    |
  |-------------------------------+----------------------+----------------------+
  | GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
  | Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
  |===============================+======================+======================|
  |   0  GeForce GTX 970     Off  | 0000:01:00.0     Off |                  N/A |
  | 30%   30C    P8    19W / 200W |    121MiB /  4036MiB |      0%      Default |
  +-------------------------------+----------------------+----------------------+
                                                                               
  +-----------------------------------------------------------------------------+
  | Processes:                                                       GPU Memory |
  |  GPU       PID  Type  Process name                               Usage      |
  |=============================================================================|
  |    0      1386    G   /usr/lib/xorg/Xorg                             111MiB |
  |    0      2341    G   compiz                                           8MiB |
  +-----------------------------------------------------------------------------+

若安装失败,卸载未安装成功的显卡驱动,再重新安装

$ sudo apt-get remove --purge nvidia-*                   #卸载显卡驱动

3. Cuda安装

Cuda官方下载地址:https://developer.nvidia.com/cuda-downloads      我用的是 cuda_8.0.44_linux.run 版本

进入cuda_8.0.44_linux.run 所在目录,执行下面的语句开始安装cuda

$  sudo sh cuda_8.0.44_linux.run

可能遇到的选项:
        是否接受许可条款:       accept        
        是否安装NVIDIA driver:no                #因为我们已经安装了NVIDIA显卡驱动
        是否安装cuda toolkit :   yes
        是否安装cuda samples:yes
        中间会有提示是否确认选择默认路径当作安装路径,按Enter键即可。

若安装失败,且最后错误的提示为:

Not enough space on parition mounted at /tmp.Need 5091561472 bytes.
   Disk space check has failed. Installation cannot continue.

即错误提示为/tmp空间不足,可执行下面的操作:

====如果执行$ sudo sh cuda_8.0.44_linux.run 时提示/tmp空间不足,则执行下面的操作===============
    $ sudo mkdir /opt/tmp         #在根目录下的opt文件夹中新建tmp文件夹,用作安装文件的临时文件夹
    $ sudo sh cuda_8.0.44_linux.run --tmpdir=/opt/tmp/  
    ====如果执行$ sudo sh cuda_8.0.44_linux.run 时提示/tmp空间不足,则执行上面的操作================

配置环境变量

$ sudo vim  ~/.bashrc   #打开配置文件,如果没安装vim,可执行 $ sudo apt-get install vim  #安装vim

按 i 键,在文件末尾插入下面两行,按esc键,输入 :wq ,保存退出。

export PATH=/usr/local/cuda-8.0/bin:$PATH
   export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:$LD_LIBRARY_PATH

立即使配置的环境变量生效

source ~/.bashrc

判断cuda是否安装成功
      执行:

$ nvcc --version

输出:

nvcc: NVIDIA (R) Cuda compiler driver
  Copyright (c) 2005-2016 NVIDIA Corporation
  Built on Sun_Sep__4_22:14:01_CDT_2016
  Cuda compilation tools, release 8.0, V8.0.44

则表示安装成功。

===========若不幸安装失败,执行下面的命令卸载cuda,然后重新安装=========
   $ sudo /usr/local/cuda-8.0/bin/uninstall_cuda_8.0.pl

测试cuda的Samples

$ cd /usr/local/cuda-8.0/samples/1_Utilities/deviceQuery
   $ make
   $ sudo ./deviceQuery

输出的最后两行类似这样的信息:

deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 8.0, CUDA Runtime Version = 8.0, NumDevs = 1, Device0 = GeForce GTX 970
   Result = PASS

4.使用Cudnn加速
        我们去官网下载与cuda8.0匹配的cudnn,https://developer.nvidia.com/cudnn ,我下载的是cudnn v5.05 for cuda8.0
        直接将文件解压,拷贝到cuda相应的文件夹下即可

$ tar xvzf cudnn-8.0-linux-x64-v5.0-ga.tgz
    $ sudo cp cuda/include/cudnn.h /usr/local/cuda/include
    $ sudo cp cuda/lib64/*.* /usr/local/cuda/lib64
    $ sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*

5. 安装编译Caffe
     下载caffe

$ sudo git clone https://github.com/BVLC/caffe.git

安装第三方库

$ sudo apt-get install libatlas-base-dev
   $ sudo apt-get install libprotobuf-dev
   $ sudo apt-get install libleveldb-dev
   $ sudo apt-get install libsnappy-dev
   $ sudo apt-get install libopencv-dev
   $ sudo apt-get install libboost-all-dev
   $ sudo apt-get install libhdf5-serial-dev
   $ sudo apt-get install libgflags-dev
   $ sudo apt-get install libgoogle-glog-dev
   $ sudo apt-get install liblmdb-dev
   $ sudo apt-get install protobuf-compiler

安装OpenCV
       当前最新版OpenCV是3.2.0版本的

$ cd caffe
   $ sudo git clone https://github.com/jayrambhia/Install-OpenCV
   $ cd Install-OpenCV/Ubuntu
   $ sudo chmod +x *
   $ sudo ./opencv_latest.sh

我们可以通过如下命令查看OpenCV安装版本

$ pkg-config --modversion opencv

编译caffe

编译前,先配置变量

$ sudo cp Makefile.config.example Makefile.config
   $ sudo vim Makefile.config

设置以下内容:
USE_CUDNN := 1 #取消该句注释
PYTHON_INCLUDE := /usr/include/python2.7 \
/usr/lib/python2.7/dist-packages/numpy/core/include
WITH_PYTHON_LAYER := 1 #取消注释
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib \

/usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/hdf5/serial

保存退出

$ sudo make clean   #每次需要重新编译Caffe的时候,在caffe文件夹下清除掉之前的编译结果
   $ cd build  
   $ sudo cmake ..  
   $ sudo make all  
   $ sudo make install  
   $ sudo make runtest
   $ sudo make -j8
   $ sudo make runtest
   $ sudo make pycaffe

配置环境

caffe运行时需要调用cuda的库,我们在/etc/ld.so.conf.d目录下新建一个caffe.conf文件,将所需要用的库的目录写入

$ sudo vim /etc/ld.so.conf.d/caffe.conf

添加:  /usr/local/cuda/lib64

保存并退出      :wq

更新配置     $ sudo ldconfig

6.测试caffe

下载mnist数据集

$ cd ~/caffe        #切换到caffe目录
   # 注意:执行命令的时候最好在当前的caffe目录下,否则会报错,会找不到XXX文件
   $ sudo sh data/mnist/get_mnist.sh  #获取mnist数据集
   $ sudo sh examples/mnist/create_mnist.sh

开始训练

$ sudo sh examples/mnist/train_lenet.sh

训练结果

Test net output #0: accuracy = 0.9908  
I0114 13:41:23.117681  4189 solver.cpp:404]     Test net output #1: loss = 0.0286537 (* 1 = 0.0286537 loss)  
I0114 13:41:23.117684  4189 solver.cpp:322] Optimization Done.  
I0114 13:41:23.117687  4189 caffe.cpp:254] Optimization Done.

因为一些原因还是需要使用别人基于Caffe的代码,但是代码比较老,默认不支持高版本的cuda或者cudnn

怎么办呢?基本上就是把最新官方Caffe-BVLC的几个关键文件拿过来替换即可。

脚本如下:

#########################################################################
# File Name: xxx.sh
# Author: ChrisZZ
# mail: imzhuo AT foxmail.com
# Created Time: 2018年05月18日 星期五 16时20分20秒
#########################################################################
#!/bin/bash # 先准备用到的别人的老本的caffe,比如放在了~/work/caffe_xxx
cd ~/work
MY_CAFFE=~/work/caffe_xxx # 下载官方的最新Caffe
git clone https://github.com/BVLC/caffe caffe-BVLC --depth=1 BVLC_CAFFE=~/work/caffe-BVLC # 现在执行如下文件替换。直接执行即可。 cp $BVLC_CAFFE/include/caffe/layers/cudnn_relu_layer.hpp $MY_CAFFE/include/caffe/layers/cudnn_relu_layer.hpp
cp $BVLC_CAFFE/include/caffe/layers/cudnn_sigmoid_layer.hpp $MY_CAFFE/include/caffe/layers/cudnn_sigmoid_layer.hpp
cp $BVLC_CAFFE/include/caffe/layers/cudnn_tanh_layer.hpp $MY_CAFFE/include/caffe/layers/cudnn_tanh_layer.hpp
cp $BVLC_CAFFE/include/caffe/util/cudnn.hpp $MY_CAFFE/include/caffe/util/cudnn.hpp
cp $BVLC_CAFFE/src/caffe/layers/cudnn_relu_layer.cpp $MY_CAFFE/src/caffe/layers/cudnn_relu_layer.cpp
cp $BVLC_CAFFE/src/caffe/layers/cudnn_relu_layer.cu $MY_CAFFE/src/caffe/layers/cudnn_relu_layer.cu
cp $BVLC_CAFFE/src/caffe/layers/cudnn_sigmoid_layer.cpp $MY_CAFFE/src/caffe/layers/cudnn_sigmoid_layer.cpp
cp $BVLC_CAFFE/src/caffe/layers/cudnn_sigmoid_layer.cu $MY_CAFFE/src/caffe/layers/cudnn_sigmoid_layer.cu
cp $BVLC_CAFFE/src/caffe/layers/cudnn_tanh_layer.cpp $MY_CAFFE/src/caffe/layers/cudnn_tanh_layer.cpp
cp $BVLC_CAFFE/src/caffe/layers/cudnn_tanh_layer.cu $MY_CAFFE/src/caffe/layers/cudnn_tanh_layer.cu

然后,再编译你的caffe_xxx时,CUDA和CuDNN都用起来,都可以编译了。

Ubuntu 16.04 + GTX970 + cuda8.0.44安装配置等问题(转)的更多相关文章

  1. Vmvare + Ubuntu 16.04环境搭建 + 相关软件安装配置笔记【深度学习】

    前言 由于学习与工作的需要,加上之前配置好的vmmachines都损坏了,我就重新弄一个ubuntu虚拟机,配置一下环境,给自己留个记录 1.文件 2.配置过程 1.在Vmware中新建虚拟机,自定义 ...

  2. Ubuntu 16.04+GTX970 黑屏无法安装解决方法

    参考http://www.linuxidc.com/Linux/2017-01/139318.htm http://blog.sciencenet.cn/blog-655584-877622.html ...

  3. tensorflow 1.8, ubuntu 16.04, cuda 9.0, nvidia-390,安装踩坑指南。

    被tensorflow 1.8, ubuntu 16.04, cuda 9.0, nvidia-390折磨了5天,终于上坑,留下指南,造福后人. 1.先把依赖搞清楚: tensorflow 1.8依赖 ...

  4. Ubuntu 16.04下EasyOpenJTAG+OpenOCD的安装和使用【转】

    本文转载自:http://www.linuxdiyf.com/linux/24086.html Ubuntu 16.04下EasyOpenJTAG+OpenOCD的安装和使用 发布时间:2016-09 ...

  5. Ubuntu 16.04 + CUDA 8.0 + cuDNN v5.1 + TensorFlow(GPU support)安装配置详解

    随着图像识别和深度学习领域的迅猛发展,GPU时代即将来临.由于GPU处理深度学习算法的高效性,使得配置一台搭载有GPU的服务器变得尤为必要. 本文主要介绍在Ubuntu 16.04环境下如何配置Ten ...

  6. ubuntu 16.04上 mysql 5.7 安装笔记

    一 安装 ubuntu 采用APT安装方式,可参考: Ubuntu 安装mysql和简单操作 Ubuntu 16.04安装MySQL(5.7.18) A Quick Guide to Using th ...

  7. Ubuntu 16.04系统上NFS的安装与使用

    摘要:本文介绍了NFS服务器的安装过程.配置文件和常用命令行工具,以及NFS客户端上如何安装常用工具,介绍如何挂载共享目录,并通过实验进行验证. 一.服务器端: 1.1安装NFS服务: #执行以下命令 ...

  8. Windows 10+Ubuntu 16.04在MBR分区上安装双系统(转)

    以下内容转自这篇博客: http://www.cnblogs.com/Duane/p/5424218.html http://www.cnblogs.com/Duane/p/6776302.html( ...

  9. ubuntu 16.04 英伟达驱动安装

    参考:https://blog.csdn.net/breeze5428/article/details/80013753 换了一个新的地方,得重新配置Ubuntu 16.04,在配置NVIDIA驱动的 ...

随机推荐

  1. nginx创建默认虚拟主机

    创建默认虚拟主机配置文件作用:禁止任何人通过ip或未允许的域名访问web服务. 如:vim vhosts/default.conf server { listen 80 default; server ...

  2. 阶段3 1.Mybatis_02.Mybatis入门案例_2.mybatis入门案例中的设计模式分析

    读取配合文件 创建工厂 最终图

  3. 用例a失败,跳过测试用例b和c并标记失败xfail

    前言 当用例a失败的时候,如果用例b和用例c都是依赖于第一个用例的结果,那可以直接跳过用例b和c的测试,直接给他标记失败xfail用到的场景,登录是第一个用例,登录之后的操作b是第二个用例,登录之后操 ...

  4. C#SQL小结

    对于c#获取Sql数据目前我采用的是 System.Data.SqlClient.SqlDataReader类. 主要用到如下API: SqlDataReader.Read():每次获取一行的数据,直 ...

  5. Delphi IDE使用的一些主要技巧

    Delphi IDE使用的一些主要技巧 1.查找和替换 (1)<ctrl>+F[1]:选择页“Find”,进行查找,则根据查找方向继续查找.选择页“Findin Files”,则进行该工程 ...

  6. EFI系统分区如何删除

    U盘或者硬盘被做了系统安装盘. 结果在格式化都是失败,分区也不行. 有了新招 EFI分区是您的系统启动引导的分区,存放引导启动的文件的,因此它是一个操作系统独立的分区,实际上它是UEFI加载的固件和应 ...

  7. 深入理解java:1.3.1 JVM内存区域的划分(运行时数据区)

    学习Java GC机制,可以帮助我们在日常工作中 排查各种内存溢出或泄露问题,解决性能瓶颈,达到更高的并发量,写出更高效的程序. 我们将从4个方面学习Java GC机制, 1,内存是如何分配的: 2, ...

  8. CentOS安装部署sha##dow**socks

    注意事项,pip版本不能太低,实测9.0.3可行(需要python 2.7,低版本python升级办法另有文章介绍). pip --version 以shadowsocks-2.8.2为例: pip ...

  9. HDU1181 题解(Floyd最短路)

    题面: 变形课 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others) Total Subm ...

  10. CSP-S全国模拟赛第二场 【nan】

    A.count 本场比赛最难的题... 隔板法组合数容斥 xjb 搞搞就好了 //by Judge #include<cstdio> #include<iostream> #d ...