背景:使用Anaconda PyCharm PyQt(PySide) Dlib开发人脸疲劳检测程序想要引入CUDA以提高检测精准度及速度
本文主要介绍如何配置CUDA及Dlib编译相关问题(主要容易出问题的部分)
撰写本文意义在于目前搜索到的配置文章过于老旧或无法正常配置成功
- 平台:Windows 11 23H2 22631.3527
- Nvidia显卡版本:552.12
- CUDA版本:12.4 | CUDNN版本 :9.1 | Python版本:3.11.7
- CPU :Intel(R) Core(TM) i5-10400F CPU @ 2.90GHz
- GPU:NVIDIA GeForce RTX 3060 Laptop GPU
安装Nvidia驱动(如已安装可跳过)
笔记本可以访问所属品牌支持页面,查找对应型号显卡驱动进行安装
台式计算机可以访问显卡品牌支持页面,查找对应型号进行安装
无法确认/懒人方法:访问NVIDIA GeForce 驱动程序 – N 卡驱动 | NVIDIA使用NVIDIA Experience进行安装,或使用下载面向游戏玩家和创作者的 NVIDIA App | NVIDIA (新版本NVIDIA APP)进行安装
安装CUDA套件
访问CUDA Toolkit Downloads | NVIDIA Developer选择对应平台的套件进行安装(本文以Windows11 x64为例)
安装过程按程序提示进行安装(由于默认安装程序为压缩格式,建议解压到无空格纯英文路径进行后续安装)(如有特殊需求,按照需求进行配置)安装完成后要记住安装路径,默认路径为:”C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\”
安装CUDNN套件
默认安装CUDA套件时不配套CUDNN套件,而使用CUDA加速Dlib识别时需要用到cuDNN套件,故安装过程中需添加这一步骤。
访问cuDNN Downloads | NVIDIA Developer选择对应平台套件(本文Windows10 x64 因无11版本)
下载后与CUDA相似,但需将cuDNN解压至CUDA所在位置下。按安装提示安装配置完成后,记住安装路径,默认路径为:”C:\Program Files\NVIDIA\CUDNN”,打开安装相应版本(如本文中”v9.1″),然后将其中的”bin””include””lib”这三个文件夹中的内容中对应版本的内容(对应.dll .h .lib文件,而非文件夹)(出现文件夹的原因主要是安装了不同版本的cuda就会出现)复制粘贴到相应CUDA安装路径对应的文件夹中,如下所示
"C:\Program Files\NVIDIA\CUDNN\v9.1\bin\12.4\cudnn64_9.dll"(路径下所有dll文件)复制粘贴到"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.4\bin"中
"C:\Program Files\NVIDIA\CUDNN\v9.1\include\12.4\cudnn.h"(路径下所有h文件)复制粘贴到"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.4\include"中
"C:\Program Files\NVIDIA\CUDNN\v9.1\lib\12.4\x64\cudnn.lib"(路径下所有lib文件)复制粘贴到"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.4\lib"中
注意:请特别关注加粗位置的内容,其中包含可能变化的版本或者版本更迭(或安装个性配置)导致的内容偏差,本文以默认路径配置,仅举例默认状况下单个文件的移动位置说明,安装时务必将路径下所有相应文件(dll、h、lib文件)复制粘贴到相应路径中,否则将无法正常配置。
配置系统环境变量(CUDA相关)
由于已将cuDNN配置到CUDA路径下,故单独配置CUDA相关系统环境变量即可。
按顺序打开Windows“设置Settings”——“系统System”——“关于About”——“高级系统设置Advanced system Setting”——“环境变量Environment Variables”——“系统变量System Variable”——“Path“双击打开Path变量
查看列表中是否存在如下几个路径,如缺失请按相应自身安装路径添加(举例以默认安装路径为例)
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.4\bin
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.4\lib
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.4\libnvvp
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.4\include
注意:以上举例中以默认安装路径为例,如有修改安装路径,请按上两步安装过程中记录的安装路径进行修改,CUDA之后的路径应保持不变(如CUDA\v**.*\bin,其中*为具体版本号)
克隆dlib库自行编译并进行配置python安装
安装前提:已配置git、cmake相关内容,git用于克隆项目代码,详细安装不赘述,网络搜索可解决。cmake的安装可以使用Anaconda的python环境进行配置(pip install cmake 以及pip install boost)可能需要安装Micosoft Visual Studio相关组件,否则可能出现cmake编译相关错误,相关问题网络搜索可以解决,在此不赘述。
按以下在命令提示符(CMD)中使用的代码进行克隆、编译、安装
# 克隆源项目
git clone https://github.com/davisking/dlib.git
# 配置编译文件夹
cd dlib
mkdir build
cd build
#添加编译参数(如果有支持 AVX 指令的 CPU 可以添加-DUSE_AVX_INSTRUCTIONS=1参数)
cmake .. -DDLIB_USE_CUDA=1 -DUSE_AVX_INSTRUCTIONS=1
cmake --build .
cd ..
#使用python进行dlib安装(本文中使用管理员身份运行命令提示符(CMD)若须在指定Anaconda Python环境中进行安装需添加 conda activate ***(此处***指环境名称)
python setup.py install
如命令运行完成后无报错,即安装完成 。如有报错应检查报错信息。
检查Dlib是否调用CUDA
使用python代码进行检测,如例所示
import dlib # 导入dlib模块
print(dlib.DLIB_USE_CUDA) # 输出是否使用CUDA
print(dlib.cuda.get_num_devices()) # 输出能使用CUDA的设备数量(显卡数量)
如调用成功输出返回TRUE和使用CUDA显卡的数量
如调用失败输出返回FALSE,目前使用当前平台没有出现问题,如有问题请留言、评论或联系。
结语
文章由Steve Yi撰写,文章无AI参与生成,理论环境运行正常,参考自网络搜索 及dlib项目和NVIDIA Devloper相关内容。