Ubuntu 18.04 + CUDA 9.2 + cuDNN 7.1.4 + Caffe2 安装

版权声明:欢迎转载,转载请保留文章出处。 https://blog.csdn.net/junzia/article/details/80871145

安装Ubuntu 18.04

Ubuntu 18.04的安装参考官网步骤,很容易安装。我在安装的时候比较坎坷,拿到了一个有问题的U盘,写入ISO后,启动一直启动不了。
主要步骤如下:

  1. 下载系统。
  2. 下载Rufus工具,也可以是其他的,只要能刻录光盘就行。然后把下载的Ubuntu ISO文件写入U盘。
  3. 写好U盘后,查上电脑,选择从U盘启动。一般是开机按F12来选择启动方式。
  4. 安装时,按F6,然后将启动参数后面的---改成nomodeset,然后安装。
  5. 安装完成后,重启电脑。
    有些电脑安装完成后启动不了。可以选择参数nomodeset来启动,然后进入安装必要的驱动就可以正常启动。 Ubuntu 可以用ubuntu-drivers autoinstall来安装驱动。

安装CUDA 9.2

安装CUDA 9.2首先需要你的电脑是有Nvidia显卡的,我的显卡是GTX 1050,所以是可以装的。安装显卡的时候首先我们要安装显卡的驱动。CUDA 9.2 要求显卡驱动是 nvidia-driver 396.26以上,低版本的不可以。如果已经安装了的需要升级到396.26以上。
可以直接输入以下指令进行安装:

sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
sudo apt-get install nvidia-396

如果在安装过程中遇到问题,可以根据提示来进行解决。

驱动安装成功后,就可以安装CUDA 9.2了,直接在官方下载 Ubuntu 16.04 deb(local)即可,也可以选择其他安装方式。

然后输入以下指令:

sudo dpkg -i 'your download file.deb'
sudo apt-get update
sudo apt-get install cuda

验证是否安装成功,可进入/usr/local/cuda/samples/,然后编译并运行示例,运行成功则表示安装成功。

cd /usr/local/cuda/samples/1_Utilities/deviceQuery
sudo make 
./deviceQuery

安装成功会输出:

deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 9.2, CUDA Runtime Version = 9.2, NumDevs = 1
Result = PASS

安装cuDNN 7.1.4

如果Cuda安装好了,cuDNN一般就不会有什么问题了。同样是进入官网下载。注意版本,选择cuDNN v7.1.4 for CUDA9.2。然后我下载了cuDNN v7.1.4 Runtime Library for Ubuntu 16.04 以及相应的Developer Library和Code Samples。然后利用dpkg安装即可。注意安装顺序,需要先安装Runtime Library,再安装Developer Library,最后Code Samples.

sudo dpkg -i 'Your Runtime Library.deb'
sudo dpkg -i 'Your Developer Library.deb'
sudo dpkg -i 'Your Code Sample.deb'
sudo apt-get update

安装成功后,依然通过Sample来验证是否安装成功。

cd /usr/src/cudnn_samples_v7/mnistCUDNN
sudo make 
./mnistCuDNN

如果安装成功,最后面会输出:

Result of classification: 1 3 5

Test passed!

安装 Caffe2

我使用的Source的方式来进行安装的。在官网上有比较详细的教程,安装Ubuntu 16.04的方式操作即可。

# 安装必要的依赖
sudo apt-get update
sudo apt-get install -y --no-install-recommends \
      build-essential \
      cmake \
      git \
      libgoogle-glog-dev \
      libgtest-dev \
      libiomp-dev \
      libleveldb-dev \
      liblmdb-dev \
      libopencv-dev \
      libopenmpi-dev \
      libsnappy-dev \
      libprotobuf-dev \
      openmpi-bin \
      openmpi-doc \
      protobuf-compiler \
      python-dev \
      python-pip                          
sudo pip install \
      future \
      numpy \
      protobuf
# for Ubuntu 14.04
sudo apt-get install -y --no-install-recommends libgflags2
# for Ubuntu 16.04
sudo apt-get install -y --no-install-recommends libgflags-dev

# Clone Caffe2's source code from our Github repository
git clone --recursive https://github.com/pytorch/pytorch.git && cd pytorch
git submodule update --init

# 最新的可以直接用下面方式编译安装,不必要cmake 然后make。用自带的脚本更方便python3和python2都能用caffe2
python3 setup.py install
# Create a directory to put Caffe2's build files in
mkdir build && cd build

# Configure Caffe2's build
# This looks for packages on your machine and figures out which functionality
# to include in the Caffe2 installation. The output of this command is very
# useful in debugging.
cmake ..

# Compile, link, and install Caffe2
sudo make install

需要注意的是,我在安装的时候使用的是gcc7,会报如下错误。换成gcc6就可以了。问题解决方案来自github上
可以用update-alternatives工具来指定编译工具使用gcc6。

 In constructor ‘caffe2::YellowFinOp<T, Context>::YellowFinOp(const caffe2::OperatorDef&, caffe2::Workspace*)’:
/home/john/pytorch/caffe2/sgd/yellowfin_op.h:20:171: error: ‘GetSingleArgument<int>’ is not a member of ‘caffe2::YellowFinOp<T, Context>’
   YellowFinOp(const OperatorDef& operator_def, Workspace* ws)

NCCL 编译错误,可以选择在cmake时加上-DUSE_NCCL = OFF来解决,我遇到的编译错误是通过进入third_party/nccl下,把nccl目录删除,重新clone github上的nccl项目来解决的。
如果编译有其他失败,可以google一下,一般都能搜到答案,大多数都是环境或者依赖的问题。编译完成之后。输入以下命令测试是否成功。

python -c 'from caffe2.python import core' 2>/dev/null && echo "Success" || echo "Failure"
# GPU 测试为:
python -m caffe2.python.operator_test.relu_op_test
# 如果遇到失败,缺少一些第三方可以直接用pip命令安装 

如果cd 到其他目录下,在执行输出Failure时,需要刷新动态库链接:

cd /usr/local/lib
sudo ldconfig

没有更多推荐了,返回首页