安装支持GPU的Dlib

1.环境说明

经过几天的填坑,在这个环境下,终于成功安装上了支持GPU的dlib:win10 + vs2015 + dlib19.18+cuda9.0+cudnn7.6+cmake3.15.3

2.装dlib的目的

想玩视频流的人脸识别,没有加GPU的加速貌似不行。

3.具体过程

3.1 安装cuda9.0+cudnn7.6

这个下载和安装比较简单,直接上官网就ok。
CUDA下载地址
CUDNN下载地址(需要注册一个账号)
注意:
1、CUDA的版本和CUDNN的版本有对应关系,不能乱来。参照CUDA和CUDNN对应关系。
2、CUDNN下载好后,直接解压到CUDA的路径下,目的是增加库的支持。我的解压路径如下:

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0

3、检查一下CUDA相关的环境变量有没有自动添加好,没有的话要手动添加。

3.2 安装vs2015

这篇文章提供了VS2015的下载地址和安装教程,需要注意的是勾选VS2015更新3。之前安装的VS2019,结果怎么也搞不定,删除了重新装的2015,可能有版本适配的坑。

3.3 安装cmake3.15.3

1、这个比较简单的办法是,打开cmd窗口,通过命令安装:

pip install cmake

这样有个好处是,anaconda会默认添加好cmake的环境变量。
2、也可以通过手动下载安装包的方式安装,下载地址和教程。

3.4 下载安装dlib19.18

1.传统方法

git clone https://github.com/davisking/dlib.git #下载dlib源码
cd dlib/ #到dlib路径下
mkdir build #新建一个叫build的文件夹
cd build/ #到build文件夹里
cmake .. -DDLIB_USE_CUDA=1 -DUSE_AVX_INSTRUCTIONS=1 #编译指令
cmake --build #编译指令
cd .. #退回到上一级路径
python setup.py install #--yes USE_AVX_INSTRUCTIONS --yes DLIB_USE_CUDA默认是选择的

2.手动下载
官网下载地址
下载好安装包后,最好解压到这个路径下:

D:\ProgramData\Anaconda3

都搞定以后,打开cmake-gui,用anaconda的prompt安装的话,应该在这个路径下:

D:\ProgramData\Anaconda3\Lib\site-packages\cmake\data\bin

然后需要对cmake进行编译dlib前的配置工作,这个参照网上有很多配置的文章。
需要注意的是,环境搭建得没问题的话,DLIB_USE_CUDA是可选择的方框,如果不对的话,显示OFF,需要回去检查环境对不对。VS2015不是V3可能导致这个问题,VS2019亲测导致此问题。
配置好以后,用anaconda的prompt进入到dlib的setup.py所在路径下,然后按照如下操作:

mkdir build #新建一个叫build的文件夹
cd build/ #到build文件夹里
cmake .. -DDLIB_USE_CUDA=1 -DUSE_AVX_INSTRUCTIONS=1 #编译指令
cmake --build #编译指令
cd .. #退回到上一级路径
python setup.py install #--yes USE_AVX_INSTRUCTIONS --yes DLIB_USE_CUDA选择项不用了

编译过程比较漫长,检查不能报错,说明dlib编译成功。
网上也有一种办法是通过VS软件编译的,未尝试,不清楚可行性如何。

4.如何验证dlib是否使用GPU

在python环境中,通过如下指令可验证。

import dlib
print(dlib.DLIB_USE_CUDA)

结果返回False,说明失败了。
十分不解,折腾了两天,怀疑Anaconda没有找到编译后的库。
用pip uninstall setup.py卸载dlib后重装,未果。
偶然,通过这篇文章找到灵感。
成功编译后,在D:\ProgramData\Anaconda3\Lib\site-packages\dlib-19.18\build\lib.win-amd64-3.7目录下找到生成的dlib.pyd文件,把该文件拷贝放到python目录下的D:\ProgramData\Anaconda3\Lib\site-packages下面替换掉旧的,这样就完成了最后一步。
最后,再运行验证代码,返回True。

你可能感兴趣的:(DLib,CUDA,GPU)