Win10下GTX750ti安装dlib GPU版
背景:由于需要在python3的环境下用dlib识别人脸,但是cpu算力太低,所以尝试使用GPU增加图像处理的速度,提升效率。网上有很多dlib装GPU版的教程,但是比较零碎,有些具体的细节也不完全一样,写一下我安装的过程。
准备环境:
1.Win10
2.GTX75Ti
1 安装 Visual Studio 2015 update3
文件大小 7.22G,下载地址:
下载完成后,点击安装,安装整个过程大概需要花费1个小时。安装前需要把别的版本的Visual Studio卸载,否则报错。
Visual Studio 2015 update3 是在安装cuda所需要的环境,但是网上和cuda说Visual Studio 2017也是可以的,有兴趣的同学可以自行尝试。我自己测试过Visual Studio 2019,失败了。
2 安装cuda
打开 NVIDIA 控制面板 > 帮助 > 系统信息 > 组件,查看 NVCUDA.DLL
选项,可以看到显卡NVIDIA CUDA对应的版本。
打开链接:
找到对应的版本,点击:
依次选择 **Windows > x86_64 > 10 > exe(local)*,推荐用本地安装的方式下方出现Download Installers*的文件,下载 Base Installer :
下载完成,点击安装。选择自定义安装,保证所有的组件被勾选。记录文件安装位置。
打开命令行,输入nvcc -V
,输出以下结果,则cuda安装成功:
3 安装cudnn
打开链接:
找到对应的cuda和系统版本。注意:需要登陆NVIDIA账号才能够下载,所以需要登陆或用邮箱注册账号。
下载完成,解压。进入目录,复制文件:
找到CUDA安装目录,打开CUDA Development,将刚才复制好的cudnn的文件,粘贴到该目录下,文件会自动合并。不放心的话可以提前备份CUDA Development文件夹。
4 添加系统变量
我的电脑>右键属性>高级系统设置>环境变量>系统变量
在环境变量下已经有了CUDA_PATH
和 CUDA_PATH_V9_1
,还需要添加以下几个系统变量,点击新建,依次添加:
变量名 | 变量值 |
---|---|
CUDA_BIN_PATH | %CUDA_PATH%\bin |
CUDA_LIB_PATH | %CUDA_PATH%\lib\x64 |
CUDA_SDK_BIN_PATH | %CUDA_SDK_PATH%\bin\win64 |
CUDA_SDK_LIB_PATH | %CUDA_SDK_PATH%\common\lib\x64 |
结果如图:
测试:
找到安装路径下的CUDA Development\extras\demo_suite
文件夹,如我的是F:\CUDA\CUDA Development\extras\demo_suite
cmd进入此文件夹,运行bandwidthTest.exe
,输出Result = PASS
继续运行deviceQuery.exe
,输出Result = PASS
说明配置成功。
5 下载dlib
我的版本是19.17,解压:
cmd进入该文件,运行python setup.py install
注意:如果使用python setup.py install --yes USE_AVX_INSTRUCTIONS --yes DLIB_USE_CUDA
会出现无需加 –yes的提示,因为这个版本的dlib不需要特别说明CUDA安装:
如果存在CUDA dlib会自动安装CUDA的版本,编译的过程出现了以下的提示:
注意:如果安装dlib之前,需要安装cmake,可以用 pip install cmake进行安装。
6 测试
1 全部环境部署完成,运行python脚本:
1 | import dlib |
输出结果,说明dlib调用GPU成功。
2 运行python dlib脚本,在cmd中输入nvidia-smi
命令,看到python.exe的进程,说明在执行dlib的时候,确实有用到GPU
3 效果
我在安装dlib-gpu的之前,以为gpu的计算速度至少比cpu快几十倍,但后来我才发现是我太天真了。实测的时候,同样的脚本,CPU执行需要15秒,而GPU则需要12秒,只是快了20%。而看到GPU的使用率也低于10%,至今也没弄懂是为什么,大概和GIL有关。后来在看到有关一本tensorflow的书的时候,看到tensorflow-cpu和tensorflow-gpu跑同样的代码,gpu也只是快了26%,说明这个情况是普遍存在的。