AMD显卡安装Caffe|深度学习|Ubuntu

caffe基本不更新了,而且caffe2也已经是pytorch的一部分了。如果想考古可以用用caffe,但是如果时间比较紧的话还是学学Pytorch吧,大势所趋
去年双十一前, 苦苦对比买了台组装机,最终因为贪图便宜300块钱选择了AMD的处理器和显卡。后来才发现CUDA是英伟达公司开发的,AMD显卡的架构不一样所以不能使用。而我心心念念的Caffe官网上只有关于CUDA的安装使用教程,但是好在AMD公司自己也开发了ROCm来和CUDA对标,虽然比CUDA小众很多但是好在买的显卡不至于只能用来打游戏。
之前有些买AMD显卡的选择安装各个神经网络的Opencl版本,但是毕竟没有专门用来深度学习工具的香。
如果还不了解OpenCL和CUDA是什么可以参考下面这个短文
CUDA和OpenCL的区别

本文主要参考ROCm官网,半搬运文章 https://rocm.github.io/

更新:官网上的引导教程有错误,我已经在GitHub上提交了,虽然GitHub上改了但是网站上估计还有一段时间。嘿嘿嘿 可以在direct contributors找到我

AMD显卡安装Caffe|深度学习|Ubuntu_第1张图片

预备阶段

1.硬件检查

首先看看自己的显卡是否支持ROCm ,在这个网页里ROCm硬件支持列表
搜索自己显卡的型号,如果在可使用的列表内那可以继续看本文,如果在不支持的列表内,关闭本网页就好了。

2.软件准备

(1)首先将ROCm存储库地址添加到系统

wget -qO - http://repo.radeon.com/rocm/apt/debian/rocm.gpg.key | sudo apt-key add -
echo 'deb [arch=amd64] http://repo.radeon.com/rocm/apt/debian/ xenial main' | sudo tee /etc/apt/sources.list.d/rocm.list

然后更新一下库,并且安装ROCm的核心组建 romc-dkms (下载大小500m解压后大小在2G+)需要等一段时间

sudo apt update
sudo apt install rocm-dkms

(2)检查自己是否在用户组里,因为必须有权限才能调用硬件GPU(如果是自己的个人电脑只有一个账户那肯定在里面)

groups

添加用户代码(其中LOGNAME是你的用户名,自动补全应该能显示)

sudo usermod -a -G video $LOGNAME 

也可以把全部用户加入进来

//非必要命令行,注意条件
echo 'ADD_EXTRA_GROUPS=1' | sudo tee -a /etc/adduser.conf
echo 'EXTRA_GROUPS=video' | sudo tee -a /etc/adduser.conf

(3)检查是否安装成功(检查前最好重启电脑)

/opt/rocm/bin/rocminfo 
/opt/rocm/opencl/bin/x86_64/clinfo

分别运行这两行,看看有没有自己的显卡信息 而且没有红色的报错
然后把ROCm添加到系统环境里面

echo 'export PATH=$PATH:/opt/rocm/bin:/opt/rocm/profiler/bin:/opt/rocm/opencl/bin/x86_64' | sudo tee -a /etc/profile.d/rocm.sh

(4)选装
交叉编译
在不同的系统上进行开发和测试通常很有用。例如,某些开发或构建系统可能未安装AMD GPU。在这种情况下,您可能希望避免在开发系统中安装ROCK内核驱动程序。
在这种情况下,请安装软件包的开发子集:

sudo apt update
sudo apt install rocm-dev

(5)安装caffe部分

sudo apt-get install rocm-libs
sudo apt-get install miopen-hip miopengemm
sudo apt-get install -y \
     g++-multilib \
     libunwind-dev \
     git \
     cmake cmake-curses-gui \
     vim \
     emacs-nox \
     curl \
     wget \
     rpm \
     unzip \
     bc

(6)检查安装情况

cp -r /opt/rocm/hip/samples ~/hip-samples && cd ~/hip-samples/0_Intro/square/
make
./square.out

(第三行官网上写的生成文件名和实际文件名不一样,应该是更新后没有及时改,可以按照我的,最重要的还是依照你make后显示生成的文件名来)运行后应该有显示显卡信息之类

(7)编译程序

cd ~
git clone https://github.com/ROCmSoftwarePlatform/hipCaffe.git
cd hipCaffe
cp ./Makefile.config.example ./Makefile.config
make -j$(nproc)

(make出现warning是没什么问题的)
注意!这里make可能会报错:关于recipe for target ‘.build_release/tools/caffe.bin’ failed
我的原因是使用的是opencv3,解决方法是:把Makefile.config文件里,关于OpenCV的
OPENCV_VERSION := 3
前的#号注释删除掉就好了。
还有一点就是如果一次失败以后,修改过config文件后要执行 make clean 再重新make -j$(nproc) 要不然会有上次错误的信息留下了。

如果执行以后没有报错正常结束,则说明我们的安装成功了。

3.mnist例子测试

在hipCaffe目录下:

./data/mnist/get_mnist.sh
./examples/mnist/create_mnist.sh
./examples/mnist/train_lenet.sh

第一行是下载mnist数据集的脚本,终端下载有点慢,也可以自己到官网上下载,放到./data/mnist/文件夹下解压。
第二行是把数据集转化成带标签的训练文件。
第三行是训练。

训练成功会一直输出accrency和loss
例如这样
… …
I1111 22:04:58.524817 15519 solver.cpp:404] Test net output #0: accuracy = 0.9907
I1111 22:04:58.524850 15519 solver.cpp:404] Test net output #1: loss = 0.0291341 (* 1 = 0.0291341 loss)
I1111 22:04:58.524858 15519 solver.cpp:322] Optimization Done.
I1111 22:04:58.524863 15519 caffe.cpp:254] Optimization Done.

你可能感兴趣的:(计算机视觉)