Caffe + Ubuntu 14.04 + CUDA 6.5 新手安装配置指南

洋洋洒洒一大篇,就没截图了,这几天一直在折腾这个东西,实在没办法,不想用Linux但是,为了Caffe,只能如此了,安装这些东西,遇到很多问题,每个问题都要折磨很久,大概第一次就是这样的。想想,之后应用,应该还会遇到很多问题吧,不过没办法了,骑虎难下!!这里有个建议是,如果将来要做大数据集,最好事先给Linux留多点空间,比如Imagenet,估计500G都不为过。
这篇安装指南,适合零基础,新手操作,请高手勿要吐槽!

本文主要包含5个部分,包括:
第一部分 Linux安装
第二部分 nVidia驱动和CUDA Toolkit的安装和调试
第三部分 Caffe的安装和测试
第四部分 Python安装和调试
第五部分 Matlab安装和调试

PS:第四、五部分暂未完成,后面补上。

  • 第一部分 Linux安装
Linux的安装,如果不是Linux粉,只是必须,被迫要用它来作作科研什么的,建议安装成双系统,网上方法很多,这里我就不详细写了,安装还算是傻瓜式的,和windows的过程类似,至于语言,如果觉得难度还不够大的话,完全可以装E文版的,甚至日文,德文~~~,我是装的简体中文版,我总共用分出的100G的空间来安装Ubuntu 14.04,这个版本是最新的版本,有个好处是,可以直接访问Windows8.1的NTFS分区,不用做额外的操作,而且支持中文,例如:$ cd /media/yourname/分区名字/文件夹名,当然GUI就更方便了
我的分区设置如下:
根分区: \  50G,
Swap交换分区:16G ,这里,我设置和我的内存一样,据说小于16G的内存,就设置成内存的1.5-2倍
Home分区:剩余的34G
装好之后,重启电脑,有的人会直接进Linux,有的会直接Windows,谷歌或者百度解决方法吧,因为我也说不清这个具体怎么搞定。
我的台式机,搞定了,可是笔记本,把Windows分区也给破坏了,最后只能重装Windows 8.1,但因为笔记本没有nVidia的GPU所以不想再折腾了。
PS: 其实到现在感觉空间可能小了, 想想Imagenet 137G的训练文件,觉得应该把Home设置成300-500G以上,会更合适吧。下次安装的时候,再改了,现在暂时不想动了。
  • 第二部分:nVidia驱动和CUDA Toolkit的安装和调试
PS:这里其实可以参考nVidia 官方提供的CUDA安装手册,非常相近,32页的,不过是全英文的,我就是参考这个文档完成后面的配置和验证工作。https://developer.nvidia.com/rdp/cuda-65-rc-toolkit-download#linux。一般要输入你的用户名和密码,就是下载6.5的那个账号。
一、Verify You Have a CUDA-Capable GPU
执行下面的操作,然后验证硬件支持GPU CUDA,只要型号存在于 https://developer.nvidia.com/cuda-gpus,就没问题了
$ lspci | grep -i nvidia

二、Verify You Have a Supported Version of Linux

$ uname -m && cat /etc/*release
重点是“x86_64”这一项,保证是x86架构,64bit系统

三、Verify the System Has gcc Installed

$ gcc --version
没有的话就先安装吧,这个是必须的用来编译CUDA Toolkit,不过Ubuntu 14.04是默认有的

四、Download the NVIDIA CUDA Toolkit

下载地址: https://developer.nvidia.com/cuda-toolkit
验证地址: https://developer.nvidia.com/rdp/cuda-rc-checksums
$ md5sum <filename>
例如: md5sum cuda_6.5.11_rc_linux_64.run  ,这个文件的正确  md5 = a47b0be83dea0323fab24ca642346351
这个感觉蛮重要,我第一次安装的时候md5就没通过,强制安装,结果就有问题,后面重新下载了再安装了一次

五、Handle Conflicting Installation Methods

根据官网介绍,之前安装的版本都会有冲突的嫌疑
所以,之前安装的Toolkit和Drievers就得卸载,屏蔽,等等

六、Graphical Interface Shutdown

退出GUI,也就是X-Win界面,操作方法是:同时按:CTRL+ALT+F1(F2-F6),切换到TTY1-6命令行模式。
关闭桌面服务:
$ sudo stop lightdm

七、Interaction with Nouveau

Nouveau是一个开源的显卡驱动,Ubuntu 14.04 默认安装了,但是它会影响nVidia驱动的安装,所以只有请他回老家了,sorry!
1. 将nouveau添加到黑名单,防止它启动,实现目标是添加到 /etc/modprobe.d.blacklist.conf,但由于权限和只读的问题,可以用下面的变通方法:
a. 在home中创建文件nvdia-graphics-drivers.conf ,并写入: blacklist nouveau
$ cd /home/username
$ touch nvdia-graphics-drivers.conf 
$ sudo vi nvdia-graphics-drivers.conf
写入:blacklist nouveau
PS: 我这里直接vi 无法保存不知道为什么,望赐教。

b. 然后把该文件拷贝到黑名单列表所在的目录中:

$ sudo cp nvdia-graphics-drivers.conf /etc/modprobe.d

2. 对于:/etc/default/grub,添加rdblacklist=nouveau nouveau.modeset=0到末尾。

3. 官网提供的操作:

$ sudo mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r)-nouveau.img
然后重新生成initrd文件
$ sudo dracut /boot/initramfs-$(uname -r).img $(uname -r)
$ sudo update-initramfs -u  
上面那条是nVidia官方提供的命令,不知道为什么在我这里会提示dracut是不存在的命令,也许是版本问题,或者少了什么包,不过无所谓,第二条命令也可以搞定,应该是一样的功能。(如果我理解错误,欢迎小朋友们指教,我会改正)
PS:其实,这一连串的工作,有点没搞懂,因为有的命令和文件不存在。原理理解了,但是步骤还是有点模糊,不过,我是照上面的操作完成了,后面的也没出问题,应该应付过去了吧。

八、Installation

切换到cuda_6.5.11_rc_linux_64.run 所在的目录,然后执行安装命令:

$ sudo sh cuda_6.5.11_rc_linux_64.run

再次提醒,安装前一定要执行 md5sum ,我第一次安装就是执行了,发现不一样,然后没有理它直接安装,导致安装的Sumary里显示Driver成功,Toolkit和Samples失败,第二次在装就好了。

至于如果发现md5检测不一致,怎么办?别逗了,去nVidia重新下载就行了,地球人都知道,别无限循环就好^_^!

这里会一路问你各种问题,基本上就是Accept-yes-Enter-yes-Enter-yes-Enter,  其实就是让你接受协议,然后安装的默认位置确认等等,recruit就别自定义安装位置了,默认才是天堂。

九、Extra Libraries

安装一些必要的库文件,譬如:OpenGL (e.g., Mesa), GLU, GLUT, and X11 (including Xi, Xmu, and GLX).
$ sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev
这个可以切换到GUI界面在操作,要不然那些提示信息,都是乱码,什么都看不懂,不过如果你的系统是E文的,这句话忽略。
这里,保证网络不要中断就行了,吐槽一下:该死的锐捷认证,这Ubuntu都出到14.04了,你12版本的客户端还没出来,害我之前折腾了1整天网络,现在被迫沦落到蹭网族,有点想吐的感觉!!!!

十、驱动装完了,可以回到GUI界面了,也可以继续留这里玩文本。。。

$ sudo start lightdm
 
十一、POST-INSTALLATION ACTIONS
这一步就是验证一下安装是否正确,编译和完成以下CUDA自带的程序,建议做一下~
1. Environment Setup
$ export PATH=/usr/local/cuda-6.5/bin:$PATH
$ export LD_LIBRARY_PATH=/usr/local/cuda-6.5/lib64:$LD_LIBRARY_PATH

2. (Optional) Install Writable Samples

$ cuda-install-samples-6.5.sh <dir>
安装到Home下,搞定了之后可以在GUI下调整一下,主要是前面的要求,会有一个Sample的文件夹 NVIDIA_CUDA-6.5_Samples在Home的根目录下就ok了。因为后面编译测试各方面什么的方便。其实如果之前安装CUDA驱动和Toolkit一切正常,这一步基本可以省略,应该会自动建立,但检查一下无妨。

3. Verify the Installation

a. 验证驱动的版本,其实主要是保证驱动程序已经安装正常了
$ cat /proc/driver/nvidia/version
b. Compiling the Examples
$ nvcc -V
不出意外的话应该会提示,nvcc没有安装,其实就是,nvidia-cuda-toolkit的编译器没有安装完整,总之,根据提示继续就好了
$ sudo apt-get install nvidia-cuda-toolkit
我这里还差接近400MB的文件要下载,它是全自动的,所以只要保证网络畅通,一杯咖啡在手,然后就可以XXX了。可悲的是,我这里天色已晚,隔壁的Wifi也断了,笔记本的360随身Wifi连上一会也断了,只有收东西回宿舍,明天再继续了。看看表,靠,00:03,今天打卡时间又错过了。

次日,这里安装完,就可以编译了,切换目录到~/NVIDIA_CUDA-6.5_Samples,记性没问题的话,应该还记得它是安装在Home文件夹的,穿越过去就好了,然后执行:

$ cd /home/username/NVIDIA_CUDA-6.5_Samples
$ make
 
c. Running the Binaries
运行编译好的文件,看看设备的基本信息和带宽信息:
$ cd /bin/x86_64/linux/release
$ ./deviceQuery

$ ./bandwidthTest

好了,到这里所有nVidia CUDA的安装就结束了,下面看看Caffe如何安装。

  • 第三部分 Caffe的安装和测试

对于Caffe的安装严格遵照官网的要求来:http://caffe.berkeleyvision.org/installation.html


一、安装BLAS,这里可以选择(ATLAS,MKL或者OpenBLAS),我这里使用MKL,首先下载并安装英特尔® 数学内核库 Linux* 版MKL,下载链接是: https://software.intel.com/en-us/intel-education-offerings,可以下载Student版的,先申请,然后会立马收到一个邮件(里面有安装序列号),打开照着下载就行了。下载完之后,要把文件解压到home文件夹(或直接把tar.gz文件拷贝到home文件夹,为了节省空间,安装完记得把压缩文件给删除喔~),或者其他的ext4的文件系统中。
接下来是安装过程,先授权,然后安装:
$ tar zxvf cpp_studio_xe_2013_sp1_update3.tar.gz  (如果你是直接拷贝压缩文件过来的)
$ chmod a+x /home/username/cpp_studio_xe_2013_sp1_update3 -R
$ sudo ./install_GUI.sh
PS: 这里安装的时候,我遇到一些插曲,先在这里特别提醒大家一下,避免在犯错,这些都是我安装的时候,遇到的"little bug"。
1. 一个很2的问题,在启动linux的时候,手贱点了一下系统自动更新,可能正好更新到某个关键组件,授权的时候,始终无效,这个大概解决就是记得更新完,重启,然后关机,我弄的时候,重启也没用。
2. 记得把解压后的studio_xe软件包丢到home下,或者干脆直接在home里解压,注意这里它是保存在home/ username , 这里的 username 是你的用户名。这一步主要是,让安装程序处于linux的文件系统中,为了修改权限做保证。
3. 使用chmod对文件夹及其子文件进行授权,安装程序是install_GUI.sh,它调用了install.sh,接下来又调用了一连串的文件,这些文件都必须具有可执行的权限,所以,你懂了~照着上面的步骤就好了
4. 安装的时候,可以安装到root权限下,或者sudo权限,我是装在root权限下,避免麻烦,这时就必须确保已经为root设置过密码了,然后会让你输入你申请的时候发给你的序列号。没设置的话,执行:

$ sudo passwd root

5. Everything is OK!
PS2:我不会告诉你,我第一次安装的时候,不仅仅装了Studio XE,还装了MKL,也装了OpenBLAS,为了装OpenBLAS还装来gFortran编译器,因为一直编译Caffe不通过,其实这都是白费功夫,都是没有认真读官网的说明导致的。至于这集中库的性能,应该是MKL>OpenBLAS>ATLAS,官网的介绍也提到。在装完MKL,需要做的一件事是:SET BLAS := open in Makefile.config,这个我在后面安装Caffe到时候会写。

二、MKL与CUDA的环境设置

文件夹切换到/etc/ld.so.conf.d,并进行如下操作
1. 新建intel_mkl.conf, 并编辑之:
$ cd /etc/ld.so.conf.d

$ sudo  touch intel_mkl.conf
$ sudo vi intel_mkl.conf
/opt/intel/lib/intel64
/opt/intel/mkl/lib/intel64

2. 新建cuda.conf,并编辑之:

$ sudo touch cuda.conf
$ sudo vi cuda.conf
/usr/local/cuda/lib64
/lib

3. 完成lib文件的链接操作,执行:

$ sudo ldconfig -v

三、安装OpenCV

1. 下载地址: https://github.com/jayrambhia/Install-OpenCV,如果觉得难度不够的话,可以选择官网的安装包: http://opencv.org/,我这里是根据大神编译过的版本进行安装的。

2. 切换到文件保存的文件夹,然后安装依赖项:

sudo ./dependencies.sh

3. 安装openCV,因为不知道有什么区别,所以就安装最新版opencv2_4_8吧,有偏好可以根据自己的要求进行设置:

sudo ./opencv2_4_8.sh

四、安装其他依赖项

1. Google Logging Library(glog),下载地址: https://code.google.com/p/google-glog/,然后解压安装:
$ tar zxvf glog-0.3.3.tar.gz
$ ./ configure

$ make
$ sudo make install

2. 其他依赖项,确保都成功

$ sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev
         如果安装过程中出现错误,E: Sub-process /usr/bin/dpkg returned an error code (1),可能是因为sudo apt-get install出现到意外,不用着急,可以试试这个解决办法:
$ cd /var/lib/dpkg
$ sudo mv info info.bak
$ sudo mkdir info
$ sudo apt-get --reinstall install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev

五、安装Caffe并测试

1. 切换到Caffe的下载文件夹,然后执行:
$ cp Makefile.config.example Makefile.config
修改新生成的Makefile.config文件,修改“BLAS := mkl”,这个非常重要。

$ make all
$ make test

$ make runtest 
错误Fixed:
1. 如果提示: make: protoc: 命令未找到,那是因为protoc没有安装,安装一下就好了。
$ sudo apt-get install protobuf-c-compiler protobuf-compiler

2. 提示“src/caffe/util/math_functions.cu(140): error: calling a host function("std::signbit ") from a globalfunction("caffe::sgnbit_kernel ") is not allowed”

解决办法:

修改  ./include/caffe/util/math_functions.hpp 224行
删除(注释):using std::signbit;
修改:DEFINE_CAFFE_CPU_UNARY_FUNC(sgnbit, y[i] = signbit(x[i]));
为:DEFINE_CAFFE_CPU_UNARY_FUNC(sgnbit, y[i] = std::signbit(x[i]));
这个方法感谢网友:嗆熱DJ$998。

六、使用MNIST数据集进行测试

Caffe默认情况会安装在$CAFFE_ROOT,就是解压到那个目录,例如:$ home/username/caffe-master,所以下面的工作,默认已经切换到了该工作目录。下面的工作主要是,用于测试Caffe是否工作正常,不做详细评估。具体设置请参考官网:http://caffe.berkeleyvision.org/gathered/examples/mnist.html
1. 数据预处理
可以用下载好的数据集,也可以重新下载,我网速快,这里就偷懒直接下载了,具体操作如下:
$ cd data/mnist
$ ./get_mnist.sh

2. 重建LDB文件,就是处理二进制数据集为Caffe识别的数据集,以后所有的数据,包括jpe文件都要处理成这个格式

$ cd examples/lenet  
$ ./create_mnist.sh
生成mnist-train-leveldb/ 和 mnist-test-leveldb/文件夹,这里包含了LDB格式的数据集

3. 训练mnist

$ cd examples/lenet
$ ./train_lenet.sh

至此,Caffe安装的所有步骤完结,下面是一组简单的数据对比,实验来源于MNIST数据集,主要是考察一下不同系统下CPU和GPU的性能。可以看到明显的差别了,虽然MNIST数据集很简单,相信复杂得数据集,差别会更大,Ubuntu+GPU是唯一的选择了。

测试平台:i7-4770K/16G/GTX 770/CUDA 6.5
Windows8.1 on CPU:620s
Windows8.1 on GPU:190s
Ubuntu 14.04 on CPU:270s 
Ubuntu 14.04 on GPU:160s

myown:

#install openblas
git clone https://github.com/xianyi/OpenBLAS.git
cd OpenBLAS/
sudo apt-get install gfortran
sudo apt-get install gfortran-dev
sudo apt-get install libgfortran-4.8-dev
make
sudo make PREFIX=/usr/local/openblas install

#opencv
tar -xvf opencv-3.0.0-beta.zip
cmake ../ -DWITH_IPP=OFF
make && make install

for ubuntu 14.04:
        sudo apt-get install libgflags-dev libgoogle-glog-dev

for ubuntu 12.04
       #install glog-0.3.3.tar.gz
       tar -xvf glog-0.3.3.tar.gz
       sudo make && sudo make install

#install gflags-master.zip
       mkdir build
       add set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC")
       cd build
       cmake ../
       make && sudo make install

#install cudnn-6.5-linux-x64-v2
tar -zxvf cudnn-6.5-linux-x64-v2.tgz
cd cudnn-6.5-linux-x64-v2
sudo cp lib* /usr/local/cuda/lib64/
sudo cp cudnn.h /usr/local/cuda/include/

cd /usr/local/cuda/lib64/
sudo rm -rf libcudnn.so libcudnn.so.6.5
sudo ln -s libcudnn.so.6.5.48 libcudnn.so.6.5
sudo ln -s libcudnn.so.6.5 libcudnn.so

#install lmdb
wget (https://code.launchpad.net/~ubuntu-branches/ubuntu/vivid/lmdb/vivid)
cd mdb/libraries/liblmdb
make && make install

#other 3th party
sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev protobuf-compiler

#caffe cmake/Dependencies.cmake
---[ BLAS
find_package(OpenBLAS REQUIRED)
include_directories(SYSTEM ${OpenBLAS_INCLUDE_DIR})
list(APPEND Caffe_LINKER_LIBS ${OpenBLAS_LIB})

change caffe/cmake/Modules/FindOpenBLAS.cmake, set path

#五、buildCaffe

1. cd caffe path
$ cp Makefile.config.example Makefile.config
$ change:Makefile.config file:“BLAS := open”
$ set blas path/lib:

$ make all
$ make test

$ make runtest

Caffe + Ubuntu 14.04 + CUDA 6.5相关推荐

  1. Ubuntu 14.04+cuda 7.5+caffe安装配置

    换了新电脑,整个人喜气洋洋,然后就屁颠屁颠地开始配置caffe的使用环境. 可是!!!配置这个坑爹的caffe环境让我重装系统N次加上重装cudaN次,后来发现有好多都是很琐碎的注意事项,好多人都没有 ...

  2. 2015.08.17 Ubuntu 14.04+cuda 7.5+caffe安装配置

    2016.06.10 update cuda 7.5 and cudnn v5 2015.10.23更新:修改了一些地方,身边很多人按这个流程安装,完全可以安装 折腾了两个星期的caffe,windo ...

  3. NVIDIA DIGITS-2.0 + Ubuntu 14.04 + CUDA 7.0 + cuDNN 7.0 + Caffe 0.13.0环境配置

    引言 DIGITS简介 DIGITS特性 资源信息 说明 DIGITS安装 软硬件环境 硬件环境 软件环境 操作系统安装 DIGITS安装前准备 安装CUDA70deb方式 安装cuDNN70 安装C ...

  4. 从零安装 Caffe (Ubuntu 14.04) Install Caffe in Ubuntu 14.04 from Scratch

    Coldmooon's Blog HOME ABOUT CONTACT 从零安装 Caffe (Ubuntu 14.04) Install Caffe in Ubuntu 14.04 from Scr ...

  5. Caffe配置简明教程 ( Ubuntu 14.04 / CUDA 7.5 / cuDNN 5.1 )

    1. 前言 本教程使用的系统是Ubuntu 14.04 LTS 64-bit,使用的CUDA版本为7.5,使用的NVIDIA驱动版本为352. 如果您使用的Pascal架构显卡,如GTX1080或者新 ...

  6. Caffe + Ubuntu 14.04 64bit + CUDA 6.5 配置说明

    FROM:https://gist.github.com/realmyth/f368ba0fea429342236c 本步骤能实现用Intel核芯显卡来进行显示, 用NVIDIA GPU进行计算. 1 ...

  7. Caffe在Ubuntu 14.04 64bit 下的安装------pycaffe 配置

    这里我主要参考 pycaffe 的 安装配置 http://www.linuxidc.com/Linux/2015-07/120449.htm 最近因为各种原因,装过不少次Caffe,安装过程很多坑, ...

  8. Ubuntu 14.04 64 bit+ Torch 7 + CUDA7安装配置

    本文记录了本人配置Ubuntu 14.04 LTS + Torch7 + CUDA环境的过程,以及遇到的一些问题,简要介绍了Torch的使用. Torch简介 什么是Torch 为什么选择Torch ...

  9. ubuntu 14.04 双显卡安装NVIDIA GPU驱动+CUDA+编译配置caffe

    ******************************** 安装ubuntu************************* 1.在bios里设置使用集成显卡 2.安装ubuntu 14.04 ...

  10. 64位双系统Ubuntu 14.04 LTS + Caffe + CUDA 7.5 + Opencv 3.0 安装配置实战

    一切的一切,开端便是这caffe,作为博客的第一篇文章,自然要讲讲一个哲学问题"我是从哪来的" 一.windows情况下安装双系统64位Ubuntu 本段落根据http://www ...

最新文章

  1. 遗传算法与直接搜索工具箱学习笔记 -----从直接搜索算法开始
  2. [转]终结PHP中文乱码的问题
  3. Zookeeper的功能以及工作原理 (转自:http://www.cnblogs.com/felixzh/p/5869212.html)
  4. Android笔记之平移View
  5. SSL-ZYC 1760 商店选址问题
  6. MyBatis整合Spring的实现(13)
  7. MySQL数据查询SELECT大全
  8. Java集合源码解析之ArrayList
  9. 使用POI转换word doc文件
  10. c51语言语句 指令集,MCU
  11. GTUG的推荐给大家的一本书
  12. 日志分析工具Awstats实战之Nginx篇-分析结果静态化
  13. 【优化调度】基于matlab人工鱼群算法求解梯级水库调度优化问题【含Matlab源码 415期】
  14. OTC场外交易平台源码/虚拟场外交易源码
  15. 思科、华为、Dell visio图下载
  16. 从零开始学习编程_从这里开始学习编程
  17. Spark机器学习-LDA算法09
  18. 传统BI+敏捷BI+智能BI
  19. DIY微信朋友圈截图制作生成小程序源码下载
  20. 第五人格亚服服务器不稳定,【关于第五人格网络问题的部分原因及解决方法】...

热门文章

  1. Python爬取世纪佳缘的数据,是否能证明它的不靠谱?
  2. AMD cpu编译VASP
  3. 如何在linux下安装驱动程序,如何在Linux上安装硬件驱动程序 | MOS86
  4. AM3359 中利用GPMC控制器驱动FIFO
  5. 澳洲联储会议纪要 对于市场影响不大
  6. Springboot开心学习(第九天)
  7. oppo都有哪些android版本,如今手机8+256的版本是否已然成为标配,哪些手机又值得入手呢...
  8. Airbnb JavaScript 代码规范
  9. SSM博雅学校教务管理系统 毕业设计-附源码86203
  10. 【数据结构】药品销售系统