[svc]caffe安装笔记-显卡购买
caffe,这是是数据组需要做一些大数据模型的训练(深度学习), 要求 服务器+显卡(运算卡), 刚开始老板让买的牌子是泰坦的(这是2年前的事情了). 后来买不到这个牌子的,(jd,tb)看过丽台的,看过gtx系列的哪个型号来着, 也不合适,后来买的特斯拉显卡
[查了下一些知名的显卡牌子](https://www.zhihu.com/question/42110806)

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

第一次买的这个玩意可以识别,也可以跑,就是跑着跑着发烧服务器就自动重启了. 后来联系厂家后寄回,他们发了个有风扇的给我, 之后跑起来就没啥问题了.
```
Graphics Card Interface: PCI-E
Graphics Coprocessor: Tesla K20
Graphics Card Ram: 5 GB
Graphics Ram Type: GDDR5
```
这个卡好像是2-32w左右吧. 忘记了.总之上万了.
caffe安装过程相当的麻烦,步骤较多. 后台发现[docker可以轻易的安装](https://hub.docker.com/r/bvlc/caffe/tags/),免费了很多烦恼

不过经历了这些麻烦后,发现老当益壮, 无论什么linux新的服务都不惧了(因为当初接触linux时间不是很长)
# 1. 环境及安装前检查
```
- 服务器硬件:
戴尔T630,类似台式机一样,立式的. CPU32核/64G内存/4G硬盘
- 显卡:
root@shendu:~# lspci |grep -i nvidia
02:00.0 3D controller: NVIDIA Corporation GK110GL [Tesla K20Xm] (rev a1)
- 软件:
Ubuntu14.04 server64bit版本:ubuntu-14.04.5-server-amd64.iso
Python 2.7.12
root@shendu:~# uname -a
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
说明:购买服务器和显卡就费了不少时间,蛋疼点是两者兼容性,不太好买,买回来后有些主板可能不兼容导致lspci|grep –i nvidia没结果,就是主板识别不了显卡。折腾了好久返回厂家换了一次,搞好了。
- 安装说明:
依赖+cudnn+ Anaconda2 +caffe
安装过程统一用root账号,统一安装在 /root/caffe目录下。
- 安装前检查:
*首先验证你是否有nvidia的显卡(http://developer.nvidia.com/cuda-gpus这个网站查看你是否有支持gpu的显卡):
$ lspci | grep -i nvidia
*查看linux发行版本
uname -m && cat /etc/*release*看gcc版本
$ gcc --version
说明:是cuda 32位尚未找到合适的安装包,所以这里的linux要64位的)
```
# 2. 安装依赖
```
apt-get install build-essential # basic requirement
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
apt-get install libatlas-base-dev -y
apt-get install libprotobuf-dev -y
apt-get install libleveldb-dev -y
apt-get install libsnappy-dev -y
apt-get install libopencv-dev -y
apt-get install libboost-all-dev -y
apt-get install libhdf5-serial-dev -y
apt-get install libgflags-dev -y
apt-get install libgoogle-glog-dev -y
apt-get install liblmdb-dev -y
apt-get install protobuf-compiler –y
apt-get install libatlas-base-dev #安装Intel MKL 或Atlas,默认我们用显卡来运算,软件默认就是Atlas,保持不变
```
# 3. 安装cuda7.5
*在cuda官网(https://developer.nvidia.com/cuda-downloads#linux )下载对应版本

下载并安装

```
dpkg -i cuda-repo-ubuntu1404-7-5-local_7.5-18_amd64.deb
```
安装cuda(安装cuda的同时就会把显卡驱动也全部安装好)
```
apt-get update
apt-get install cuda –y
```
# 4. 安装cudnn
```
tar xf cudnn-7.5-linux-x64-v5.0-ga.tgz #自行下载
cd cuda
cp lib64/* /usr/local/cuda/lib64/
cp include/cudnn.h /usr/local/cuda/include/
- 更新软连接
cd /usr/local/cuda/lib64/
sudo chmod +r libcudnn.so.5.0.5
sudo ln -sf libcudnn.so.5.0.5 libcudnn.so.5
sudo ln -sf libcudnn.so.5 libcudnn.so
sudo ldconfig
echo '/usr/local/cuda/lib64' >> /etc/ld.so.conf.d/cuda.conf
echo '/root/anaconda2/lib' >> /etc/ld.so.conf
- 统一设置环境变量
export PATH="/usr/local/cuda/bin:$PATH"
export LD_LIBRARY_PATH="/root/anaconda2/lib:$LD_LIBRARY_PATH"
export LD_LIBRARY_PATH=/usr/local/cuda-7.5/lib64:$LD_LIBRARY_PATH
export PYTHONPATH=/root/caffe/caffe-master/python
```
# 5. 安装CUDA SAMPLE
```
cd /usr/local/cuda/samples
make all –j12 #此处会报错,看后文解决.
reboot
cd /usr/local/cuda/samples/bin/x86_64/linux/release
./deviceQuery #如果出现显卡信息, 则驱动及显卡安装成功
```
# 6. 安装opencv
```
https://github.com/bearpaw/Install-OpenCV #下载zip包,拖进Ubuntu解压到/root/caffe
下载opencv-2.4.9.zip 到/root/caffe下 #自行网上下载
root@shendu:~/caffe# ls
caffe-master caffe-master.zip Install-OpenCV Install-OpenCV-master.zip opencv-2.4.9 opencv-2.4.9.zip
root@shendu:~/caffe# pwd
/root/caffe
#安装依赖
/root/caffe/Install-OpenCV-master/Ubuntu/dependencies.sh
#安装脚本修改
root@shendu:~/caffe/Install-OpenCV/Ubuntu/2.4# cat opencv2_4_9.sh
arch=$(uname -m)
if [ "$arch" == "i686" -o "$arch" == "i386" -o "$arch" == "i486" -o "$arch" == "i586" ]; then
flag=1
else
flag=0
fi
echo "Installing OpenCV 2.4.9"
mkdir OpenCV
cd OpenCV
echo "Removing any pre-installed ffmpeg and x264"
sudo apt-get -y remove ffmpeg x264 libx264-dev
echo "Installing Dependenices"
sudo apt-get -y install libopencv-dev
sudo apt-get -y install build-essential checkinstall cmake pkg-config yasm
sudo apt-get -y install libtiff4-dev libjpeg-dev libjasper-dev
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
sudo apt-get -y install python-dev python-numpy
sudo apt-get -y install libtbb-dev
sudo apt-get -y install libqt4-dev libgtk2.0-dev
sudo apt-get -y install libfaac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev
sudo apt-get -y install x264 v4l-utils ffmpeg
# sudo apt-get -y install libgtk2.0-dev # duplicate
echo "Downloading OpenCV 2.4.9"
#wget -O OpenCV-2.4.9.zip http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/2.4.9/opencv-2.4.9.zip/download #注释掉
echo "Installing OpenCV 2.4.9"
unzip OpenCV-2.4.9.zip
cd opencv-2.4.9
mkdir build
cd build
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 .. #添加这三项
make -j12
sudo make install
sudo sh -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf'
sudo ldconfig
cd ../../..
rm -rf OpenCV
echo "OpenCV 2.4.9 ready to be used"
mkdir –p /root/caffe/Install-OpenCV/Ubuntu/2.4/
cp /root/caffe/opencv-2.4.9.zip /root/caffe/Install-OpenCV/Ubuntu/2.4/OpenCV/OpenCV-2.4.9.zip
/root/caffe/Install-OpenCV/Ubuntu/2.4/opencv2_4_9.sh
```
# 7. 安装Caffe所需要的Python环境
```
https://www.continuum.io/downloads#all
bash /root/Anaconda2-4.2.0-Linux-x86_64.sh #一路yes即可。
reboot
cd /root/caffe/caffe-master/python
for req in $(cat requirements.txt); do pip install $req; done #安装前先看看你的echo $PATH正常不。有问题重启下机器。
```
# 8. 安装caffe(操作前重启下机器,确保$PATH正常)
```
cd /root/caffe/caffe-master
cp Makefile.config.example Makefile.config
ldconfig
conda remove libtiff
make all –j12
make test
make runtest
make pycaffe
```
# 9. 测试验证
```
1.
sudo sh ./examples/mnist/create_mnist.sh
生成mnist-train-leveldb/ 和 mnist-test-leveldb/文件夹,这里包含了LDB格式的数据集
注:新版caffe都需要从根目录上执行,如果使用下列命令执行:
# cd examples/mnist
# sudo sh ./create_mnist.sh
可能会遇到这个错误:./create_mnist.sh: 16: ./create_mnist.sh: build/examples/mnist/convert_mnist_data.bin: not found,全路径试试。
2,验证python
import caffe #此处不要用ipython,可以用bpython。
3,查看显卡驱动版本
查看显卡的驱动版本
cat /proc/driver/nvidia/version
4) Verify the driver version:
$ cat /proc/driver/nvidia/version
5) Check CUDA driver version:
$ nvcc -V
cd /usr/local/cuda/samples/bin/x86_64/linux/release
./deviceQuery
./bandwidthTest
nvidia-settings –v
```
```
查看gpu温度等:
nvidia-smi
nvidia-smi -a|grep "GPU Current Temp"|awk -F" " '{print $5}'
nvidia-smi -a|grep -A 4 "Utilization"|sed -n '2p'|awk -F':' '{print $2}'|awk -F' ' '{print $1}'
nvidia-smi -a|grep -A 4 "Utilization"|sed -n '3p'|awk -F':' '{print $2}'|awk -F' ' '{print $1}'
gpu当前温度
UserParameter=gpu_temper,nvidia-smi -a|grep "GPU Current Temp"|awk -F" " '{print $5}'
gpu使用率:
UserParameter=gpu_ulim,nvidia-smi -a|grep -A 4 "Utilization"|sed -n '2p'|awk -F':' '{print $2}'|awk -F' ' '{print $1}'
UserParameter=gpu_mem_ulim,nvidia-smi -a|grep -A 4 "Utilization"|sed -n '3p'|awk -F':' '{print $2}'|awk -F' ' '{print $1}'
```
# 10. 第5步报错解决

```
原因: /usr/local/cuda/samples下是nvidia-352,而我的NVIDIA是367,需要批量替换掉sample下的不正确的文件(即将sample下所有文件包含nvidia-352关键字替换为nvidia-367),我写了个脚本处理这事.
cd /usr/local/cuda/samples
grep -r "nvidia-352" . > aaa.txt
root@shendu:/usr/local/cuda/samples# cat t.sh
for i in `cat aaa.txt`;do
sed -i 's#nvidia-352#nvidia-367#g' $i
done
sh t.sh
参考:https://devtalk.nvidia.com/default/topic/769578/cuda-6-5-cannot-find-lnvcuvid/
```
# 11. 监控gpu使用率
```
先决条件: 你需要安装好CUDA
echo $PATH 含有类似/usr/local/cuda/bin
Linux系统,在程序运行的时候,如何实时监控GPU卡的使用率呢?
在终端窗口输入如下命令:
# nvidia-smi -l
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安装笔记-显卡购买的更多相关文章
- [svc]caffe安装笔记
以前是word排版,加上没有些技术博客经验,相当的糟心. 现在想改,发现博文太多,找不到对应在那一页了,所以老的博文留着吧. caffe,这是是数据组需要做一些大数据模型的训练(深度学习), 要求 服 ...
- caffe+CPU︱虚拟机+Ubuntu16.04+CPU+caffe安装笔记
由于本机是window10系统,所以想尝试caffe就在自己电脑上整了一个虚拟机(详情可见:win10系统搭建虚拟机:VMware Workstation Player 12环境+Ubuntu Kyl ...
- [置顶]
caffe+CPU︱虚拟机+Ubuntu16.04+CPU+caffe安装笔记
由于虚拟机下的Ubuntu系统一般不包含GPU,故这次安装时为了在无GUP环境下运行caffe.所以只需安装CPU版本的caffe 由于本机是window10系统,所以想尝试caffe就在自己电脑上整 ...
- Caffe学习笔记2--Ubuntu 14.04 64bit 安装Caffe(GPU版本)
0.检查配置 1. VMWare上运行的Ubuntu,并不能支持真实的GPU(除了特定版本的VMWare和特定的GPU,要求条件严格,所以我在VMWare上搭建好了Caffe环境后,又重新在Windo ...
- 基于Ubuntu14.04系统的nvidia tesla K40驱动和cuda 7.5安装笔记
基于Ubuntu14.04系统的nvidia tesla K40驱动和cuda 7.5安装笔记 飞翔的蜘蛛人 注1:本人新手,文章中不准确的地方,欢迎批评指正 注2:知识储备应达到Linux入门级水平 ...
- [Caffe]史上最全的caffe安装过程
Linux下的GPU版Caffe安装方法 系统环境:Ubuntu 14.04LTS + NV TitanX 1.1 (可选)显卡驱动的安装(有风险) 如果需要重装,需要先卸载已有版本 sudo apt ...
- 深度学习框架-caffe安装-环境[Mac OSX 10.12]
深度学习框架-caffe安装 [Mac OSX 10.12] [参考资源] 1.英文原文:(使用GPU) [http://hoondy.com/2015/04/03/how-to-install-ca ...
- 深度学习框架-caffe安装-Mac OSX 10.12
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px ".PingFang SC"; color: #454545 } p.p2 ...
- caffe 安装记录
为了使用caffe,特地装了linux系统,版本:Ubuntu14.04 X64 可参照 http://www.cnblogs.com/platero/p/3993877.html 这个博客写的更好h ...
随机推荐
- THttpClientSocket token验证
THttpClientSocket uses SynCrtSock非WINHTTP.DLL里面的控件,可以用于手机端. function Client(const SQL: RawUTF8): Raw ...
- 加速 Android Studio 的编译速度 2.2
Android studio 2.2 当中有一项新的功能:Dex In Process. 这项功能可以动态的加快编译速度,以及提高Instant Run 的效率. 那么怎么来使用这项新功能呢?你只需要 ...
- Mac下php 5升级到php 7的步骤详解
前言 在MAC OS X 10.11中php的版本是5.5的,近来一年多里,看到了很多关于php7介绍,以为php7增加了很多新特性,也删除了原来很多的老特性,所以一直以来并没想去尝试使用php7,但 ...
- [Java]在窗口界面上画出硬盘中图片文件
利用类javax.swing.JPanel来在窗口界面上画图.图片文件通过javax.imageio.ImageIO类来获取. import java.awt.Graphics; import jav ...
- jQuery 当页面 ID 不唯一时,寻找元素
$(需要寻找元素的父层).find(元素ID,元素Class)
- QT5.11下载与安装教程
一.QT软件下载 Qt 5.9 之后的安装包与之前相比,不再区分 VS 版本和 MinGW 版本,而是全都整合到了一个安装包中.因此,与之前的安装包相比,体积也是大了不少,以前是 1G 多,现在是 2 ...
- centOS6.5 Hadoop1.0.4安装
前段时间去培训,按照教程装了一遍Hadoop.回来又重新装一次,捋下思路,加深理解. 基本配置如下,三个节点,一个namenode,两个datanode. Namenode 192.168.59.14 ...
- echarts图形报表缓存问题(option数据缓存)
这几天我在工作中用到了echarts开发报表.每次查询出来的数据都是新的,但是echart展现的图形报表却还是之前的数据.网上找了搜索了很多次也没能解决,后面加了技术群才解决的. 我开始已经确定是报表 ...
- LightOJ - 1265 Island of Survival 期望
题目大意:有一个生存游戏,里面t仅仅老虎,d仅仅鹿,另一个人,每天都要有两个生物碰面,如今有下面规则 1.老虎和老虎碰面.两仅仅老虎就会同归于尽 2.老虎和人碰面或者和鹿碰面,老虎都会吃掉对方 3.人 ...
- POJ 1275-Cashier Employment(差分约束系统)
题目地址:id=1275">POJ 1275 题意: 给出一个超市24小时各须要R[i]个雇员工作,有N个雇员能够雇佣.他们開始工作时间分别为A[i],求须要的最少的雇员人数. 思路: ...