以前是word排版,加上没有些技术博客经验,相当的糟心. 现在想改,发现博文太多,找不到对应在那一页了,所以老的博文留着吧.

caffe,这是是数据组需要做一些大数据模型的训练(深度学习), 要求 服务器+显卡(运算卡), 刚开始老板让买的牌子是泰坦的(这是2年前的事情了). 后来买不到这个牌子的,(jd,tb)看过丽台的,看过gtx1080系列的,不过感觉太那啥了, 也不合适,后来买的特斯拉显卡,忍痛,因为比较贵.

此前我还负责买过dellr730的服务器, ups等设备. 买过服务器的内存条

初始化过xenserver虚拟化 及其维护 维护2 都是一些老的文章了, 感觉那时候整理的有点仓促

查了下一些知名的显卡牌子

最终敲定买特斯拉系列Tesla K20Xm.

第一次买的这个玩意可以识别,也可以跑,就是跑着跑着发烧服务器就自动重启了. 后来联系厂家后寄回,他们发了个有风扇的给我, 之后跑起来就没啥问题了.

  1. Graphics Card Interface: PCI-E
  2. Graphics Coprocessor: Tesla K20
  3. Graphics Card Ram: 5 GB
  4. Graphics Ram Type: GDDR5

这个卡好像是2-32w左右吧. 忘记了.总之上万了.

caffe安装过程相当的麻烦,步骤较多. 后台发现docker可以轻易的安装,免费了很多烦恼

不过经历了这些麻烦后,发现老当益壮, 无论什么linux新的服务都不惧了(因为当初接触linux时间不是很长)

1. 环境及安装前检查

  1. - 服务器硬件:
  2. 戴尔T630,类似台式机一样,立式的. CPU32核/64G内存/4G硬盘
  3. - 显卡:
  4. root@shendu:~# lspci |grep -i nvidia
  5. 02:00.0 3D controller: NVIDIA Corporation GK110GL [Tesla K20Xm] (rev a1)
  6. - 软件:
  7. Ubuntu14.04 server64bit版本:ubuntu-14.04.5-server-amd64.iso
  8. Python 2.7.12
  9. root@shendu:~# uname -a
  10. Linux shendu.pp100.net 4.4.0-31-generic #50~14.04.1-Ubuntu SMP Wed Jul 13 01:07:32 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
  11. 说明:购买服务器和显卡就费了不少时间,蛋疼点是两者兼容性,不太好买,买回来后有些主板可能不兼容导致lspci|grep i nvidia没结果,就是主板识别不了显卡。折腾了好久返回厂家换了一次,搞好了。
  12. - 安装说明:
  13. 依赖+cudnn+ Anaconda2 +caffe
  14. 安装过程统一用root账号,统一安装在 /root/caffe目录下。
  15. - 安装前检查:
  16. *首先验证你是否有nvidia的显卡(http://developer.nvidia.com/cuda-gpus这个网站查看你是否有支持gpu的显卡):
  17. $ lspci | grep -i nvidia
  18. *查看linux发行版本
  19. uname -m && cat /etc/*release*看gcc版本
  20. $ gcc --version
  21. 说明:是cuda 32位尚未找到合适的安装包,所以这里的linux要64位的)

2. 安装依赖

  1. apt-get install build-essential # basic requirement
  2. apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev libgflags-dev libgoogle-glog-dev liblmdb-dev protobuf-compiler #required by caffe
  3. apt-get install libatlas-base-dev -y
  4. apt-get install libprotobuf-dev -y
  5. apt-get install libleveldb-dev -y
  6. apt-get install libsnappy-dev -y
  7. apt-get install libopencv-dev -y
  8. apt-get install libboost-all-dev -y
  9. apt-get install libhdf5-serial-dev -y
  10. apt-get install libgflags-dev -y
  11. apt-get install libgoogle-glog-dev -y
  12. apt-get install liblmdb-dev -y
  13. apt-get install protobuf-compiler y
  14. apt-get install libatlas-base-dev #安装Intel MKL 或Atlas,默认我们用显卡来运算,软件默认就是Atlas,保持不变

3. 安装cuda7.5

*在cuda官网(https://developer.nvidia.com/cuda-downloads#linux )下载对应版本

下载并安装

  1. dpkg -i cuda-repo-ubuntu1404-7-5-local_7.5-18_amd64.deb

安装cuda(安装cuda的同时就会把显卡驱动也全部安装好)

  1. apt-get update
  2. apt-get install cuda y

4. 安装cudnn

  1. tar xf cudnn-7.5-linux-x64-v5.0-ga.tgz #自行下载
  2. cd cuda
  3. cp lib64/* /usr/local/cuda/lib64/
  4. cp include/cudnn.h /usr/local/cuda/include/
  5. - 更新软连接
  6. cd /usr/local/cuda/lib64/
  7. sudo chmod +r libcudnn.so.5.0.5
  8. sudo ln -sf libcudnn.so.5.0.5 libcudnn.so.5
  9. sudo ln -sf libcudnn.so.5 libcudnn.so
  10. sudo ldconfig
  11. echo '/usr/local/cuda/lib64' >> /etc/ld.so.conf.d/cuda.conf
  12. echo '/root/anaconda2/lib' >> /etc/ld.so.conf
  13. - 统一设置环境变量
  14. export PATH="/usr/local/cuda/bin:$PATH"
  15. export LD_LIBRARY_PATH="/root/anaconda2/lib:$LD_LIBRARY_PATH"
  16. export LD_LIBRARY_PATH=/usr/local/cuda-7.5/lib64:$LD_LIBRARY_PATH
  17. export PYTHONPATH=/root/caffe/caffe-master/python

5. 安装CUDA SAMPLE

  1. cd /usr/local/cuda/samples
  2. make all j12 #此处会报错,看后文解决.
  3. reboot
  4. cd /usr/local/cuda/samples/bin/x86_64/linux/release
  5. ./deviceQuery #如果出现显卡信息, 则驱动及显卡安装成功

6. 安装opencv

  1. https://github.com/bearpaw/Install-OpenCV #下载zip包,拖进Ubuntu解压到/root/caffe
  2. 下载opencv-2.4.9.zip 到/root/caffe #自行网上下载
  3. root@shendu:~/caffe# ls
  4. caffe-master caffe-master.zip Install-OpenCV Install-OpenCV-master.zip opencv-2.4.9 opencv-2.4.9.zip
  5. root@shendu:~/caffe# pwd
  6. /root/caffe
  7. #安装依赖
  8. /root/caffe/Install-OpenCV-master/Ubuntu/dependencies.sh
  9. #安装脚本修改
  10. root@shendu:~/caffe/Install-OpenCV/Ubuntu/2.4# cat opencv2_4_9.sh
  11. arch=$(uname -m)
  12. if [ "$arch" == "i686" -o "$arch" == "i386" -o "$arch" == "i486" -o "$arch" == "i586" ]; then
  13. flag=1
  14. else
  15. flag=0
  16. fi
  17. echo "Installing OpenCV 2.4.9"
  18. mkdir OpenCV
  19. cd OpenCV
  20. echo "Removing any pre-installed ffmpeg and x264"
  21. sudo apt-get -y remove ffmpeg x264 libx264-dev
  22. echo "Installing Dependenices"
  23. sudo apt-get -y install libopencv-dev
  24. sudo apt-get -y install build-essential checkinstall cmake pkg-config yasm
  25. sudo apt-get -y install libtiff4-dev libjpeg-dev libjasper-dev
  26. sudo apt-get -y install libavcodec-dev libavformat-dev libswscale-dev libdc1394-22-dev libxine-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libv4l-dev
  27. sudo apt-get -y install python-dev python-numpy
  28. sudo apt-get -y install libtbb-dev
  29. sudo apt-get -y install libqt4-dev libgtk2.0-dev
  30. sudo apt-get -y install libfaac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev
  31. sudo apt-get -y install x264 v4l-utils ffmpeg
  32. # sudo apt-get -y install libgtk2.0-dev # duplicate
  33. echo "Downloading OpenCV 2.4.9"
  34. #wget -O OpenCV-2.4.9.zip http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/2.4.9/opencv-2.4.9.zip/download #注释掉
  35. echo "Installing OpenCV 2.4.9"
  36. unzip OpenCV-2.4.9.zip
  37. cd opencv-2.4.9
  38. mkdir build
  39. cd build
  40. cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D BUILD_EXAMPLES=ON -D WITH_QT=ON -D WITH_OPENGL=ON -D WITH_CUBLAS=OFF -D WITH_CUDA=OFF -D WITH_CUFFT=OFF .. #添加这三项
  41. make -j12
  42. sudo make install
  43. sudo sh -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf'
  44. sudo ldconfig
  45. cd ../../..
  46. rm -rf OpenCV
  47. echo "OpenCV 2.4.9 ready to be used"
  48. mkdir p /root/caffe/Install-OpenCV/Ubuntu/2.4/
  49. cp /root/caffe/opencv-2.4.9.zip /root/caffe/Install-OpenCV/Ubuntu/2.4/OpenCV/OpenCV-2.4.9.zip
  50. /root/caffe/Install-OpenCV/Ubuntu/2.4/opencv2_4_9.sh

7. 安装Caffe所需要的Python环境

  1. https://www.continuum.io/downloads#all
  2. bash /root/Anaconda2-4.2.0-Linux-x86_64.sh #一路yes即可。
  3. reboot
  4. cd /root/caffe/caffe-master/python
  5. for req in $(cat requirements.txt); do pip install $req; done #安装前先看看你的echo $PATH正常不。有问题重启下机器。

8. 安装caffe(操作前重启下机器,确保$PATH正常)

  1. cd /root/caffe/caffe-master
  2. cp Makefile.config.example Makefile.config
  3. ldconfig
  4. conda remove libtiff
  5. make all j12
  6. make test
  7. make runtest
  8. make pycaffe

9. 测试验证

  1. 1.
  2. sudo sh ./examples/mnist/create_mnist.sh
  3. 生成mnist-train-leveldb/ mnist-test-leveldb/文件夹,这里包含了LDB格式的数据集
  4. 注:新版caffe都需要从根目录上执行,如果使用下列命令执行:
  5. # cd examples/mnist
  6. # sudo sh ./create_mnist.sh
  7. 可能会遇到这个错误:./create_mnist.sh: 16: ./create_mnist.sh: build/examples/mnist/convert_mnist_data.bin: not found,全路径试试。
  8. 2,验证python
  9. import caffe #此处不要用ipython,可以用bpython。
  10. 3,查看显卡驱动版本
  11. 查看显卡的驱动版本
  12. cat /proc/driver/nvidia/version
  13. 4) Verify the driver version:
  14. $ cat /proc/driver/nvidia/version
  15. 5) Check CUDA driver version:
  16. $ nvcc -V
  17. cd /usr/local/cuda/samples/bin/x86_64/linux/release
  18. ./deviceQuery
  19. ./bandwidthTest
  20. nvidia-settings v
  1. 查看gpu温度等:
  2. nvidia-smi
  3. nvidia-smi -a|grep "GPU Current Temp"|awk -F" " '{print $5}'
  4. nvidia-smi -a|grep -A 4 "Utilization"|sed -n '2p'|awk -F':' '{print $2}'|awk -F' ' '{print $1}'
  5. nvidia-smi -a|grep -A 4 "Utilization"|sed -n '3p'|awk -F':' '{print $2}'|awk -F' ' '{print $1}'
  6. gpu当前温度
  7. UserParameter=gpu_temper,nvidia-smi -a|grep "GPU Current Temp"|awk -F" " '{print $5}'
  8. gpu使用率:
  9. UserParameter=gpu_ulim,nvidia-smi -a|grep -A 4 "Utilization"|sed -n '2p'|awk -F':' '{print $2}'|awk -F' ' '{print $1}'
  10. UserParameter=gpu_mem_ulim,nvidia-smi -a|grep -A 4 "Utilization"|sed -n '3p'|awk -F':' '{print $2}'|awk -F' ' '{print $1}'

10. 第5步报错解决

  1. 原因: /usr/local/cuda/samples下是nvidia-352,而我的NVIDIA367,需要批量替换掉sample下的不正确的文件(即将sample下所有文件包含nvidia-352关键字替换为nvidia-367),我写了个脚本处理这事.
  2. cd /usr/local/cuda/samples
  3. grep -r "nvidia-352" . > aaa.txt
  4. root@shendu:/usr/local/cuda/samples# cat t.sh
  5. for i in `cat aaa.txt`;do
  6. sed -i 's#nvidia-352#nvidia-367#g' $i
  7. done
  8. sh t.sh
  9. 参考:https://devtalk.nvidia.com/default/topic/769578/cuda-6-5-cannot-find-lnvcuvid/

11. 监控gpu使用率

  1. 先决条件: 你需要安装好CUDA
  2. echo $PATH 含有类似/usr/local/cuda/bin
  3. Linux系统,在程序运行的时候,如何实时监控GPU卡的使用率呢?
  4. 在终端窗口输入如下命令:
  5. # nvidia-smi -l
  6. nvidia-smi(NVIDIA System Management Interface)可以实时监控GPU卡的使用情况,-l是其参数,用于循环显示。

下图是插有1片K20卡的机器运行nvidia-smi-l后的显示示意图:

可以看到,这时没有调用GPU的程序在运行,GPU卡的使用率为0%。

有程序运行时,显示示意如下图。下面的大框显示程序名,GPU卡的使用率为59%。



K80是双核心卡,1片K80即2个GPU设备。没有使用率时的显示示意图如下:



如果程序调用1个GPU设备,那么nvidia-smi –l 的执行结果如下图所示:



如果程序调用2个GPU设备,那么nvidia-smi –l 的执行结果如下图所示:

[svc]caffe安装笔记的更多相关文章

  1. [svc]caffe安装笔记-显卡购买

    caffe,这是是数据组需要做一些大数据模型的训练(深度学习), 要求 服务器+显卡(运算卡), 刚开始老板让买的牌子是泰坦的(这是2年前的事情了). 后来买不到这个牌子的,(jd,tb)看过丽台的, ...

  2. caffe+CPU︱虚拟机+Ubuntu16.04+CPU+caffe安装笔记

    由于本机是window10系统,所以想尝试caffe就在自己电脑上整了一个虚拟机(详情可见:win10系统搭建虚拟机:VMware Workstation Player 12环境+Ubuntu Kyl ...

  3. [置顶] caffe+CPU︱虚拟机+Ubuntu16.04+CPU+caffe安装笔记

    由于虚拟机下的Ubuntu系统一般不包含GPU,故这次安装时为了在无GUP环境下运行caffe.所以只需安装CPU版本的caffe 由于本机是window10系统,所以想尝试caffe就在自己电脑上整 ...

  4. Caffe学习笔记2--Ubuntu 14.04 64bit 安装Caffe(GPU版本)

    0.检查配置 1. VMWare上运行的Ubuntu,并不能支持真实的GPU(除了特定版本的VMWare和特定的GPU,要求条件严格,所以我在VMWare上搭建好了Caffe环境后,又重新在Windo ...

  5. Caffe学习笔记4图像特征进行可视化

    Caffe学习笔记4图像特征进行可视化 本文为原创作品,未经本人同意,禁止转载,禁止用于商业用途!本人对博客使用拥有最终解释权 欢迎关注我的博客:http://blog.csdn.net/hit201 ...

  6. Caffe 学习笔记1

    Caffe 学习笔记1 本文为原创作品,未经本人同意,禁止转载,禁止用于商业用途!本人对博客使用拥有最终解释权 欢迎关注我的博客:http://blog.csdn.net/hit2015spring和 ...

  7. MonoDevelop 4.2.2/Mono 3.4.0 in CentOS 6.5 安装笔记

    MonoDevelop 4.2.2/Mono 3.4.0 in CentOS 6.5 安装笔记 说明 以root账户登录Linux操作系统,注意:本文中的所有命令行前面的 #> 表示命令行提示符 ...

  8. 基于Ubuntu14.04系统的nvidia tesla K40驱动和cuda 7.5安装笔记

    基于Ubuntu14.04系统的nvidia tesla K40驱动和cuda 7.5安装笔记 飞翔的蜘蛛人 注1:本人新手,文章中不准确的地方,欢迎批评指正 注2:知识储备应达到Linux入门级水平 ...

  9. sublime 安装笔记

    sublime 安装笔记 下载地址 安装package control 根据版本复制相应的代码到console,运行 按要求重启几次后再按crtl+shift+p打开命令窗口 输入pcip即可开始安装 ...

随机推荐

  1. git多仓库管理

    使用git建立多仓库管理 以下操作为命令行下操作 一:先创建服务器端口,总仓库和子仓库: ssh git@192.168.1.110        连接git服务器 输入密码 mkdir iOSPro ...

  2. U872-结算成本处理步骤及索引处理

    U872每月都须要做月结,对于制造企业来说,结算成本处理是不可缺少的一个处理环节,每次查询出来待暂估记录也比較多(我接触到的有3万左右),暂估时间一般要2-3小时左右,若调用的大表索引碎片多时,会须要 ...

  3. rpm常用命令及rpm参数介绍

    RPM是RedhatPackageManager的缩写,是由RedHat公司开发的软件包安装和管理程序,同Windows平台上的Uninstaller比较类似.使用RPM,用户可以自行安装和管理Lin ...

  4. 建立与读取.ini文件

    一般读写ini文件被读写Registry所取代,但我们还是可以透过 win31的传统方式读写ini文件,以存程式目前的相关设定,而於下一次程式执行时再 读回来.目前建议使用GetSetting Sav ...

  5. html-webpack-plugin插件 根据模板生成多页面

    1.项目目录结构为: 2.webpack.config.js配置文件为: var htmlWebpackPlugin = require('html-webpack-plugin'); module. ...

  6. red5源代码编译并打包公布

    编译环境:ubuntu14.04/JDK7 步骤: 1.svn检出源代码(两种方式) svn co --depth empty https://github.com/Red5/red5-server ...

  7. vim插件之pathogen,NERDTree,Command-T,Powerline

    pathogen 功能说明 一个插件包往往具备多种功能,每个文件根据Vim的路径约定会放置到不同的目录下,通用插件放到plugin下,语法高亮插件放到syntax下,自动加载插件放到autoload下 ...

  8. python字符串格式化--dict传参

    # -*- coding: utf-8 -*- #python 27 #xiaodeng #python字符串格式化--dict传参 print "I'm %(name)s. I'm %(a ...

  9. centos 6.4 调整home和root分区大小

    调整过程中可以随时查看硬盘分区情况,命令: lsblk df -h 压缩home分区到5G: [root@fscp-dev /]# df -h 文件系统 容量 已用 可用 已用%% 挂载点 /dev/ ...

  10. SSO之安装CAS Server

    JA-SIG CAS(Central Authentication Service)为Web应用系统提供了单点登录服务.它的特性包括:一个开放和具有很好文档支持的协议:一个Java开源服务器组件:提供 ...