caffe+GPU︱AWS.G2+Ubuntu14.04+GPU+CUDA8.0+cudnn8.0
国服亚马逊的GPU实例G2.2xlarge的python+caffe的安装过程,被虐… 一周才装出来…
BVLC/caffe的在AWS安装的官方教程github:
https://github.com/BVLC/caffe/wiki/Install-Caffe-on-EC2-from-scratch-(Ubuntu,-CUDA-7,-cuDNN-3)
如果要在AWS试的话,推荐不要用其他教程了,太坑爹了,被国内的很多教程虐死。
当然,AWS也是遍地是坑,教程开篇也直接告诉你,一定要多给自己AWS的实例开EBS的存储量,因为原始实例只有8G,完全不够啊。还有60G的临时实例附送,那么这个60G临时实例,再次启动就会被重新刷新,等于没啥用,所以caffe系统安装一定要EBS扩展,你看AWS收费还是高明——设坑收费法?
报错:
报错一:
dpkg: error: failed to write available database record about 'krb5-locales' to '/var/lib/dpkg/available': No space left on device
sh: echo: I/O error
E: Sub-process /usr/bin/dpkg returned an error code (2)
E: Problem executing scripts DPkg::Post-Invoke 'if [ -d /var/lib/update-notifier ]; then touch /var/lib/update-notifier/dpkg-run-stamp; fi; if [ -e /var/lib/update-notifier/updates-available ]; then echo > /var/lib/update-notifier/updates-available; fi '
E: Sub-process returned an error code
报错二:
dpkg: error processing package initramfs-tools (--configure):
cp: error writing ‘/tmp/mkinitramfs_WnwvEK//lib/modules/3.13.0-48-generic/kernel/crypto/ghash-generic.ko’: No space left on device
.
一、安装NVIDIA Drivers
1、Drivers的安装包下载
AWS中原本就有一套NVIDIA drivers,之前的有点老了,好像是340.46的,那么现在就需要根据实例的GPU配置,重新设置一个drivers,来到NVIDIA Driver的安装网页,这时候你得挑一下到底是什么driver,那么AWS的G2实例中的配置到底是啥呢?来看看AWS的官方怎么解释G2配置,网址。
笔者选择了一个375.26的:Linux x64 (AMD64/EM64T) Display Driver BETA
同时笔者也下载了CUDA 8.0的安装文件:sudo sh cuda_8.0.61_375.26_linux.run
.
2、Drivers的安装
接下来就是安装了:
chmod +x cuda_8.0.61_375.26_linux.run
mkdir nvidia_installers
./cuda_8.0.61_375.26_linux.run -extract=`pwd`/nvidia_installers
这里的’pwd’要指定到nvidia_installers创建的目录。
更新linux的NVIDIA’s drivers:
sudo apt-get install linux-image-extra-virtual
执行后有可能跳出来:What would you like to do about menu.lst?
选择:keep the local version currently installed
需要禁用一些有冲突的内核:
sudo vi /etc/modprobe.d/blacklist-nouveau.conf
加上以下内容:
blacklist nouveau
blacklist lbm-nouveau
options nouveau modeset=0
alias nouveau off
alias lbm-nouveau off
回到shell命令行执行:
echo options nouveau modeset=0 | sudo tee -a /etc/modprobe.d/nouveau-kms.conf
sudo update-initramfs -u
sudo reboot
重启之后,需要安装一下这些内容:
sudo apt-get install linux-source
sudo apt-get install linux-headers-`uname -r`
正式到了可以安装的时候了:
cd nvidia_installers
sudo ./NVIDIA-Linux-x86_64-375.26.run
其中会跳到另外的界面:
出现“nvidia-installer was forced to guess the X library path ‘/usr/lib’ and X module path ”点ok,
出现“The CC version check failed”,点击不理他;
出现问你更新 X configuration file,默认选No,
安装之后,可以通过
nvidia-smi
来看看是否正确,安装,如何正确安装就会出现Nvidia的一些信息。
- 出现报错一:
按照教程,你可以更新这个版本,也可以删除这个重新装。
要说删除之前的Nvidia的话,AWS也有官方教程:
http://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/accelerated-computing-instances.html
sudo yum erase nvidia cuda
- 出现报错二:
按提示安装:
apt-get install linux-3.13.0-108-generic
.
二、安装CUDA8.0
一般来说,各类教程中不要越级安装,CAFFE教程里面的版本是7.0,而且CUDA7.5比较稳定,一般会选择低一点。不过… 笔者当时并不知道这些,于是直接安装了CUDA8.0,最后也是可以用的。说明,可以兼容。
sudo modprobe nvidia
sudo apt-get install build-essential
sudo ./cuda-linux64-rel-8.0.61-19326674.run
sudo ./cuda-samples-linux-8.0.61-19326674.run
出现“Would you like to add desktop menu shortcuts?”随便你;
出现“Would you like to create a symbolic link? ”选择yes
安装好之后,一定要指定path。
打开“~/.bashrc”,输入:
export PATH=$PATH:/home/usr/local/cuda-8.0/bin
export LD_LIBRARY_PATH=/home/usr/local/cuda-8.0/lib64
source ~/.bashrc
sudo ldconfig
同时需要主要path的路径一定要对应,笔者照着教程抄,没想到一直没有输入正确,然后一直报错“lib”的错误。
输入完需要键入,让环境应用起来:
source ~/.bashrc
最后:
还有:
.
.
三、cuDNN8.0的安装
cuDNN这里笔者吃了很多亏… 因为cuDNN和CUDA一定要配套,不然不适配,笔者当时在CUDA8.0的情况,用了cuDNN出现了一堆报错,最后只能改过来。
下载链接:https://developer.nvidia.com/rdp/cudnn-download
一定选择跟CUDA8.0配套的选项。同时,如果是GTX1080,GTX1070最好是v5以上的版本。
其中,该网站需要注册,你注册一下很快就可以用。一个包只有75MB
tar -zxf cudnn-8.0-linux-x64-v5.0-prod.tgz
cd cuda
sudo cp lib64/* /usr/local/cuda/lib64/
sudo cp include/cudnn.h /usr/local/cuda/include/
至此基本按照完毕了。于是乎,你可以nvidia-smi检查一下,是否ok.
.
.
四、caffe的安装
.
1、caffe安装
相关的lib库安装:
sudo apt-get install -y libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev protobuf-compiler gfortran libjpeg62 libfreeimage-dev libatlas-base-dev git python-dev python-pip libgoogle-glog-dev libbz2-dev libxml2-dev libxslt-dev libffi-dev libssl-dev libgflags-dev liblmdb-dev python-yaml python-numpy
需要下载pillow,
sudo easy_install pillow
- 如果报错一:TypeError: ‘NoneType’ object is not callable
那么先执行:
sudo apt-get install pypy-dev
- 如果报错二:
ImportError: No module named packaging.version
解决:
wget https://bootstrap.pypa.io/get-pip.py
python get-pip.py
然后就是从github把caffe挪下来:
cd caffe
git clone https://github.com/BVLC/caffe.git
接下里的步骤比较耗时,需要30min左右。
cd caffe
cat python/requirements.txt | xargs -L 1 sudo pip install
.
2、配置Makefile文件
制作一个Makefile:
cp Makefile.config.example Makefile.config
vi Makefile.config
需要修改里面的:
USE_CUDNN := 1,去掉#,让其激活
CUDA_DIR 的路径一定要对。
.
3、make过程
make pycaffe -jX
make all -jX
make test -jX
x是你想调用的CPU核心数量,但是笔者之前的疑问。
.
4、pycaffe的使用
进入cd caffe/python
试试能不能import caffe当然这一步报错就更多了。
- 报错一:No module named caffe
export PYTHONPATH=/home/username/caffe/python
- 报错二:Failed to initialize libdc1394
sudo ln /dev/null /dev/raw1394
- 报错三:
Gdk-CRITICAL **: gdk_cursor_new_for_display: assertion 'GDK_IS_DISPLAY (display)' failed
Traceback (most recent call last):
.
.
.
TypeError: constructor returned NULL
这个错误的原因在于ssh连接服务器时候,import pyplot因为没有图形界面所导致的故障.两个办法:
办法一:直接在ssh连接服务器的时候,添加-X的标记
ssh 192.168.0.1 -X
以上参考博客:http://nfeng.cc/2016/03/28/caffe-python-gtk-error/
当然AWS因为需要密钥,这一步骤,比较繁琐。
办法二:使用matplotlib
进入Python后:
import matplotlib
matplotlib("Pdf")
#matplotlib("Agg")都可以
- 报错四:还是报错三的问题
Gdk-CRITICAL **: gdk_cursor_new_for_display: assertion 'GDK_IS_DISPLAY (display)' failed
Traceback (most recent call last):
.
.
.
TypeError: constructor returned NULL
还是报错三,前面的办法解决不了,那么可以先删除一下matplotlib:
sudo pip uninstall matplotlib
sudo apt-get install python-matplotlib
如果还是报错,那么重启一下AWS的shell
以上解决办法来源于github
- 报错五:
ImportError: libcudart.so.8.0: cannot open shared object file: No such file or directory
这个问题在tensorflow中出现极多。那么解决方案更多了:
如果之前的make all出现该报错:
(1)ImportError问题,一般是之前的lib库没有安装好;
(2)TF_BINARY_URL修改,可见lfzCarlosC这个是因为CUDA7.5和CUDA8.0的binary有很大的不同,那么nvidia、cudnn不适配出现的,github里面没有CUDA8.0,不过可以在以下网址找到:
https://github.com/tensorflow/tensorflow/blob/master/tensorflow/g3doc/get_started/os_setup.md
TF_BINARY_URL=https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-1.0.0-cp27-none-linux_x86_64.whl
如果make all可以启动:
在import caffe时候单独出现,那么就是你的LD_LIBRARY_PATH没设置好。需要在~/.bashrc修改,然后source:
LD_LIBRARY_PATH=/home/usr/local/cuda-8.0/lib64
source ~/.bashrc
sudo ldconfig
- 报错六:
make: *** [.build_release/src/caffe/common.o] Error 1
make: *** [.build_release/src/caffe/layer_factory.o] Error 1
make: *** [.build_release/src/caffe/solver.o] Error 1
make: *** [.build_release/src/caffe/internal_thread.o] Error 1
没有正确配置cudnn和CUDA的型号,特别是cudnn的型号进行调整、配置
最后:
.
延伸一:linux很多命令不可用,崩溃
因为安装过程中,需要添加环境变量,譬如/etc/profile中,添加:
PATH=/usr/local/cuda/bin:$PATH
export PATH
source /etc/profile
真是惨,以上是国产教程让我修改的,那么崩溃了。于是不得不改回来,参考教程:
http://xjsunjie.blog.51cto.com/999372/1384468
第一步:
export PATH=/usr/bin:/usr/sbin:/bin:/sbin:/usr/X11R6/bin
第二步:
需要把这句保存到/etc/profile里才能永久生效
第三步:
source /etc/profile
caffe+GPU︱AWS.G2+Ubuntu14.04+GPU+CUDA8.0+cudnn8.0的更多相关文章
- DL服务器主机环境配置(ubuntu14.04+GTX1080+cuda8.0)解决桌面重复登录
DL服务器主机环境配置(ubuntu14.04+GTX1080+cuda8.0)解决桌面重复登录 前面部分是自己的记录,后面方案部分是成功安装驱动+桌面的正解 问题的开始在于:登录不了桌面,停留在重复 ...
- 二、Ubuntu14.04下安装Hadoop2.4.0 (伪分布模式)
在Ubuntu14.04下安装Hadoop2.4.0 (单机模式)基础上配置 一.配置core-site.xml /usr/local/hadoop/etc/hadoop/core-site.xml ...
- 简单实现Ubuntu16.04 + caffe2 + CUDA9.0 + cuDNN8.0
在Ubuntu16.04 CUDA9.0 cuDNN8.0的环境下安装caffe2 本博客比较简单,cuda9.0 cudnn8.0部分请看上一篇博客,其中详细讲了: 如何安装驱动 安装cuda 安装 ...
- Caffe使用: Ubuntu 14.04(x64) 从cuda 7.0 升级到 cuda8.0
由于之前已经在Ubuntu 14.04 x64上面安装cuda7.0+caffe, 并且已经配置好,caffe也已经跑通. 但是最近需要使用Torch,而Torch对cuda的要求是8.0,因此决定对 ...
- ubuntu14.04安装CUDA8.0
ubuntu安装CUDA 因为深度学习需要用到CUDA,所以写篇博客,记录下自己安装CUDA 的过程. 1 安装前的检查 安装CUDA之前,首先要做一些事情,检查你的机器是否可以安装CUDA. 1.1 ...
- Ubuntu14.04安装和配置Tomcat8.0.12(转)
Ubuntu14.04长的好看,所以一时间很感兴趣,研究各种软件的安装和开发环境的配置.今天先把安装的tomcat 8.0.12的教程分享给大家.如果你需要,请收藏!!! 工具/原料 系统环境:U ...
- Ubuntu14.04安装和配置Tomcat8.0.12
Ubuntu14.04长的好看,所以一时间很感兴趣,研究各种软件的安装和开发环境的配置.今天先把安装的tomcat 8.0.12的教程分享给大家.如果你需要,请收藏!!! 官方网站下载最新的tom ...
- Ubuntu14.04 安装配置Hadoop2.6.0
目前关于Hadoop的安装配置教程书上.官方教程.博客都有很多,但由于对Linux环境的不熟悉以及各种教程或多或少有这样那样的坑,很容易导致折腾许久都安装不成功(本人就是受害人之一).经过几天不断尝试 ...
- caffe学习笔记(一),ubuntu14.04+GPU (用Pascal VOC2007训练数据,并测试)
把源代码跑起来了,将实验过程记录如下,用于新手入门. 今天和师兄师姐才跑通,来分享下心得.(预训练网络:ImageNet_model,训练集:PASCAL VOC2007, GPU) 首先,整个tra ...
随机推荐
- js 判断一个文本框是否获得焦点
1.js 判断一个文本框是否获得焦点 // 可以用document.activeElement判断 // document.activeElement表示当前活动的元素 // 查找你要判断的文本框 ...
- spring之AspectJ基于xml AOP编程
一.引言: AspectJ框架不仅实现了面向切面编程,而且还支持注解,spring将它引入自己的规范之中. 二.需要了解: AspectJ是基于java语言的AOP框架 spring2.0之后支持As ...
- Linux下php+imagemagick支持webp格式的图片
摘要 ImageMagick是一款功能强大的图片处理工具包,很多互联网应用中都会涉及到图片处理工作,比如切割.缩放.水印.格式转换等.ImageMagick就是一个理想的工具包. 安装基础依赖 先检查 ...
- Redis服务启动失败,提示:redis-server:command not found
今天我开始做主从复制的集群模式的测试,所以需要再装一个Linux操作系统,我在虚拟机里已经安装了一个Linux操作系统,Redis也已经配置好了.今天打算再安装一个Linux操作系统,Linux系统的 ...
- Oracle的一些简单语句
drop后的表被放在回收站(user_recyclebin)里,而不是直接删除掉.这样,回收站里的表信息就可以被恢复,或彻底清除. 1.通过查询回收站user_recyclebin获取被删除的表信息, ...
- BZOJ 1898: [Zjoi2005]Swamp 沼泽鳄鱼 [矩阵乘法]
1898: [Zjoi2005]Swamp 沼泽鳄鱼 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 1082 Solved: 602[Submit][S ...
- python实现时间o(1)的最小栈
这是毕业校招二面时遇到的手写编程题,当时刚刚开始学习python,整个栈写下来也是费了不少时间.毕竟语言只是工具,只要想清楚实现,使用任何语言都能快速的写出来. 何为最小栈?栈最基础的操作是压栈(pu ...
- zzcms8.2#任意用户密码重置#del.php时间盲注#复现
00x0 引言 早上起来,发现seebug更新了一批新的洞, 发现zzcms8.2这个洞好多人在挖,于是我就默默的踏上了复现之路(要不是点进去要买详情,我何必这么折腾~) 环境:zzcms8.2(产品 ...
- chrome无法登陆账号,显示操作超时的解决方案
起因 今天重装了下windows操作系统,准备登陆chrome浏览器,以同步各种插件(你懂的),结果是...无法登陆账号,显示操作超时,真是无语了. 碰到了这个问题第一个直觉是:FQ.突然想到如果修改 ...
- 聊聊一直困扰前端程序员的浏览器兼容-【css】
1.为什么会出现浏览器兼容问题? 由于各大主流浏览器由不同的厂家开发,所用的核心架构和代码也很难重和,这就为各种莫名其妙的Bug(代码错误)提供了温床.再加上各大厂商出于自身利益考虑而设置的种种技术壁 ...