GPU 这类东西还是必须的……
不过我的 GPU 实在太老了,而且之前驱动版本不太对,所以就当作 “没有 GPU” 来处理了。
这几天在跑 Faster rcnn 的 demo,发现没有 GPU 实在实在太慢了!于是下定决心配出来个 GPU 版的。
编译和准备
首先,你要 clone 源代码。使用 git clone --recursive https://github.com/rbgirshick/py-faster-rcnn.git
获取到源代码。
然后编译 Caffe。但是这里直接使用 GPU 编译 Caffe 会报错,我也不知道为什么。但是使用最新版进行编译就不会报错。
那么,我们要做的就是把这里面的 caffe“升级” 成为新版。
cd caffe-fast-rcnn
git remote add caffe https://github.com/BVLC/caffe.git
git fetch caffe
git merge caffe/master
出现让输入 merge message 的时候,直接快捷键退出即可。
更新: 从 RC5 开始,直接 Merge 会出现冲突。这时候只需要保留新的代码即可。
之后我们还要修改几个文件:
- 这个可以不做:找到
caffe-fast-rcnn/include/caffe/layers/python_layer.hpp
,将里面的self_.attr("phase") = static_cast<int>(this->phase_);
注释掉。 - 找到
caffe-fast-rcnn/src/caffe/test/test_smooth_L1_loss_layer.cpp
,将里面的#include "caffe/vision_layers.hpp"
注释掉。 - 找到
caffe-fast-rcnn/src/caffe/test/test_smooth_L1_loss_layer.cpp
和caffe-fast-rcnn/src/caffe/test/test_roi_pooling_layer.cpp
,去掉最前面的typedef ::testing::Types<GPUDevice<float>, GPUDevice<double> > TestDtypesGPU;
,并将TestDtypesGPU
改为TestDtypesAndDevices
。
最后再 配置 Makefile.conf
并进行编译 即可。注意需要打开 WITH_PYTHON_LAYER
。
跑测试 Demo
./tool/demo.py --cpu
应该可以看到效果。但是我的 GPU 太老了,只出现了 relu_layer.cu:26] Check failed: error == cudaSuccess (9 vs. 0) invalid configuration argument
就挂掉了。Google 了一下原因,好象是因为线程什么的不够用。
跑训练 Demo
上面测试都没办法跑,下面的 Demo 就更别指望了。显卡是 GeForce® GTX 560,1G 的显存,还被显示器占用了 500MB,只剩下不到 500MB 可以用于计算……
一开始训练,就给爆出个 syncedmem.cpp:56] Check failed: error == cudaSuccess (2 vs. 0) out of memory
,显存爆了。
结束
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 367.57 Driver Version: 367.57 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 GeForce GTX 560 Off | 0000:01:00.0 N/A | N/A |
| 42% 61C P0 N/A / N/A | 407MiB / 961MiB | N/A Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| 0 Not Supported |
+-----------------------------------------------------------------------------+
一个大写的 SO SAD ……
…… 买买买……
发表回复