Ubuntu 16.04开启dlib对于AVX或者CUDA的支持

最近在使用openface来测试人脸识别,实际过程中发现识别速度非常缓慢,平均每帧的识别速度达到了秒级水平,这个是不可接受的。跟踪代码性能,发现是dlib部分非常缓慢。

根据dlib的文档,默认使用

$ sudo pip install dlib

安装的dlib库,由于对具体硬件的要求(CPU需要支持AVX指令集),是没有开启AVX指令加速的,另外由于显卡的要求,也是默认不开启CUDA的支持。

如果想要开启这部分加速,需要手工编译安装才可以,具体操作如下:

$ cd ~
$ mkdir dlib
$ sudo pip download dlib
$ tar -zxvf tar -zxvf dlib-*.tar.gz
$ cd dlib*

#安装依赖的库
$ sudo apt-get -y install libopenblas-dev

#移除我们以前安装过的dlib
$ sudo pip uninstall dlib

#开启AVX指令集支持
$ sudo python setup.py install --yes USE_AVX_INSTRUCTIONS

上面的命令是使用AVX指令加速功能的,如果机器上安装了CUDA,则需要正确安装cuDNN 5.0以上的版本,否在编译的时候会报告

-- Checking if you have the right version of cuDNN installed.
-- *** Found cuDNN, but it looks like the wrong version so dlib will not use it. ***
-- *** cuDNN V5.0 OR GREATER NOT FOUND.  DLIB WILL NOT USE CUDA. ***
-- *** If you have cuDNN then set CMAKE_PREFIX_PATH to include cuDNN's folder.

对于使用

$ sudo apt install nvidia-cuda-toolkit

安装的CUDA-7.5来说,可以从这里下载cuDNN v6.0 (April 27, 2017), for CUDA 7.5,下载完成后,整个目录中的include目录中的文件解压缩到/usr/local/include/目录下,lib64目录中的内容整个解压缩到/usr/lib/目录下,并且在/usr/local/lib/目录下建立libcudnn.so的软链接

$ sudo ln -s /usr/lib/libcudnn.so /usr/local/lib/libcudnn.so

都配置正确后,使用如下编译命令安装:

$ sudo python setup.py install --yes DLIB_USE_CUDA

参考链接


Easily Create High Quality Object Detectors with Deep Learning

发布者

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注