国服亚马逊的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/lib64source ~/.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

.

延伸二:实时查看NVIDIA

nvidia-smi
watch -n 0.1 nvidia-smi(watch实时查看数据)

caffe+GPU︱AWS.G2+Ubuntu14.04+GPU+CUDA8.0+cudnn8.0相关推荐

  1. CV:Visual Studio 2015版本+CUDA8.0+Cudnn8.0+OpenCV 3.1.0版本完美解决的详细攻略

    CV:Visual Studio 2015版本+CUDA8.0+Cudnn8.0+OpenCV 3.1.0版本完美解决的详细攻略 导读:网上教程一大把,瞎指挥的不少,剪不断理还乱,可气的事,还误人子弟 ...

  2. DL之IDE:深度学习环境安装之Visual Studio 2015版本+CUDA8.0+Cudnn8.0+OpenCV 3.1.0版本完美搭配安装图文教程之详细攻略

    DL之IDE:深度学习环境安装之Visual Studio 2015版本+CUDA8.0+Cudnn8.0+OpenCV 3.1.0版本完美搭配安装图文教程之详细攻略 导读:网上教程一大把,瞎指挥的不 ...

  3. 玩玩机器学习1——ubuntu16.04 64位安装TensorFlow GPU+python3+cuda8.0+cudnn8.0

    如今的机器学习运算大多数都是利用gpu进行,包括很大大型游戏,比特币的开采,都离不开GPU的运算,GPU已成为大型运算能力的主要硬件. 大名鼎鼎的机器学习开源框架,如TensorFlow和Caffe, ...

  4. 联想小新锐7000(笔记本)+ubuntu14.04+gtx1050+cuda8.0+cudnn5.1+caffe完整配置记录

    一.NVIDIA驱动安装 1.关闭security boot 现在的笔记本电脑,特别是使用security boot方式安装Ubuntu.要正确安装驱动,必须关闭security boot(进入bio ...

  5. ubuntu14.04安装CUDA8.0

    ubuntu安装CUDA 因为深度学习需要用到CUDA,所以写篇博客,记录下自己安装CUDA 的过程. 1 安装前的检查 安装CUDA之前,首先要做一些事情,检查你的机器是否可以安装CUDA. 1.1 ...

  6. caffe镜像︱window10+docker+ubuntu14.04+caffe镜像的简单尝试

    win10专业版可以利用Hyper-V开启docker,一般升级而来的都是家庭版,现在要升级到win10专业版, 需要产品秘钥. github网址:https://github.com/docker/ ...

  7. 群星怎么让服务器稳定,DL服务器主机环境配置(ubuntu14.04+GTX1080+cuda8.0)解决桌面重复登录...

    前面部分是自己的记录,后面方案部分是成功安装驱动+桌面的正解 问题的开始在于:登录不了桌面,停留在重复输入密码界面 博文中分析的结论: 虚拟机中不能直接调用物理显卡进行 CUDA 编程:虚拟机中运行 ...

  8. Ubuntu14.04安装和配置Tomcat8.0.12(转)

    Ubuntu14.04长的好看,所以一时间很感兴趣,研究各种软件的安装和开发环境的配置.今天先把安装的tomcat 8.0.12的教程分享给大家.如果你需要,请收藏!!! 工具/原料 系统环境:Ubu ...

  9. 海思Hi3519AV100深度学习方案(一)darknet转caffmodel之caffe安装(基于Ubuntu16.04+python3.5+opencv3.4.0+cuda10.0)

    系列文章目录 海思Hi3519AV100深度学习方案(二)darknet转caffmodel之模型转换(yolov3+caffe+python3.5) 文章目录 系列文章目录 前言 一.系统已有环境检 ...

最新文章

  1. 读书笔记《鸟哥的Linux私房菜-基础学习篇》man page 查询数据后数字的意思
  2. Java-Web 基础加强之泛型、注解和Servlet3.0新特性
  3. zcmu-1181(大数相加)
  4. 第四范式推出业界首个基于持久内存、支持毫秒级恢复的万亿维线上预估系统...
  5. c语言释放整个链表,最简单的链表删除第一个节点时释放内存的问题
  6. 看技术笔记,提高嵌入式基础
  7. 企业级rancher搭建Kubernetes(采用rancher管理平台搭建k8s)
  8. 拉格朗日乘子法的通俗理解
  9. 区块链 xuperchain 命令行 部署使用EVM solidity合约 教程
  10. 【Ubuntu^Java】Ubuntu下JDK环境变量的配置
  11. linux 初步学习
  12. Qt QT_BEGIN_NAMESPACE
  13. window平台使用网络抓包工具wireshark打开后卡死崩溃的解决
  14. 深度学习入门:基于Python的理论与实现——第一章Python入门
  15. 基于matlab实现双路音频信号的AM调制与解调
  16. 深度学习笔记(15) 人的表现
  17. INVALID_PARAMETER 订单信息无法识别,建议联系卖家。 支付宝
  18. AtCoder Beginner Contest 171 D - Replacing
  19. Access Key / Secret key 密钥安全原理架构
  20. 模拟赛Day1(20200203) T1 垃圾题【分类讨论+枚举+dp解决等价匹配问题】

热门文章

  1. 【javascipt】Generator函数(生成器)
  2. Mispelling4
  3. Recursive Depth first search graph(adj matrix)
  4. 使用Web Service Interface. (转)
  5. Github访问慢的问题
  6. 设计模式之观察者模式(Observer Pattern)
  7. Referrer Policy 介绍
  8. oracle视图建主键
  9. Centos 7系统目录结构
  10. jni java与c++交互返回三维数组jobjectArray