Ubuntu环境下配置使用GPU加速的dlib库

本文详细介绍了如何在Ubuntu环境下配置dlib库使用CUDA加速,包括安装依赖库、下载dlib、配置CUDA环境及解决常见错误的过程。通过调整CMake参数和解决CUDA版本冲突问题,实现了人脸识别任务的高效运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

dlib是我用来做人脸识别的一个库,打算用mmod_human_face_detector.dat这个基于CNN的检测器实现,但是我之前直接用pycharm安装了dlib,所以无法在GPU上跑,导致跑起来很慢。所以尝试配置dlib+CUDA。

 

前提是已经安装CUDA和cuDNN。我的版本:CUDA10.0,cuDNN7.6.0

1、首先安装一些依赖库

sudo apt-get install build-essential cmake
sudo apt-get install libgtk-3-dev
sudo apt-get install libboost-all-dev

2、下载安装dlib

配置CUDA加速环境

git clone https://github.com/davisking/dlib.git
cd dlib
mkdir build
cd build
cmake .. -DDLIB_USE_CUDA=1 -DUSE_AVX_INSTRUCTIONS=1

但是!!执行到这一步就开始出错了

 应该是找不到合适的CUDA和cuDNN版本,或者他们的路径有问题。这就需要先确信你的CUDA和cuDNN在安装时把路径配置好,如果你确定路径没有问题,那就试试下边的命令:(对我没什么作用,但是你的不一定,可以尝试)

cmake .. -DDLIB_USE_CUDA=1 -DUSE_AVX_INSTRUCTIONS=1 -DCMAKE_PREFIX_PATH=/usr/local/cuda -DCUDA_cublas_LIBRARY=/usr/local/cuda/lib64/libcublas.so.10.0.130 -DCUDA_curand_LIBRARY=/usr/local/cuda/lib64/libcurand.so.10.0.130 -Dcusolver=/usr/local/cuda/lib64/libcusolver.so.10.0.130

 执行完之后还是有问题!!

因为它检测到我的CUDA是7.5!我虽然已经在上一篇博客中修改过了CUDA的默认版本,但是明显现在检测到的还是7.5的版本。所以,只好将7.5版本的一些安装包都删除。(因为我的CUDA7.5不是完整的,因为我没有通过.deb或者解压缩包来安装,可能是安装其他包的时候乱入了??所以在/usr/local/下边并没有cuda7.5这个文件夹,也找不到它的安装位置,所以只能通过一个叫新立得的软件,将名字里带7.5的包都删除了)

然后删掉build文件夹,重新执行cmake这个命令(因为长的那个命令对我没起作用,我执行这个就OK了)

cmake .. -DDLIB_USE_CUDA=1 -DUSE_AVX_INSTRUCTIONS=1

运行结果:主要看倒数那10多行就可以,看cnDNN和CUDA有没有被找到并调用

然后继续执行:

cmake --build .
cd ..

cmake --build .一般不会出现问题,一片绿色就对了。

 然后继续执行:

sudo python3 setup.py install --set USE_AVX_INSTRUCTIONS=yes --set DLIB_USE_CUDA=yes

参考其他的博客时,很多都会写成:

sudo python3 setup.py install --yes USE_AVX_INSTRUCTIONS --yes DLIB_USE_CUDA  #我的环境运行这种写法有问题

把yes都写到前边,但是我执行时会出现

yes后边的都被移去了!那这个yes选项就没有意义了。

所以改用我的方法,把yes放到等号后边,前边加set,执行成功。

 看2%上边的10行,如果有找到cuDNN并显示“DLIB WILL USE CUDA”,基本就成了。最终执行完无异常。

3、验证

>>python3

>>import dlib

>>dlib.DLIB_USE_CUDA

在这一步输出true,ok啦!

4、总结

其实很多错误都是因为CUDA的设置有问题,导致找不到路径。

还有就是不要轻易升级gcc和g++,就用系统自带的版本就可以(我的ubuntu16.04自带的gcc和g++版本都是5.4,出现问题后我怀疑是gcc编译器版本有问题,安装了高版本的gcc,出现了更多的问题!最终降回原版本)

最后,不要轻易放弃!我折腾了2天才找到问题的根源并修改好,主要是开始没发现cudn7.5乱入的问题,无意间用nvcc查cuda的版本才发现(之前一直用cat /usr/local/cuda/version.txt这个命令查询,一直以为cuda是正常的)。

 

 

<think>嗯,用户想了解如何通过dlib使用GPU加速,我得仔细看看提供的引用内容,整理出配置步骤。首先,根据引用[5],需要先卸载CPU版本的dlib,然后安装支持GPU的版本。然后,引用[1]和[3]提到需要安装CUDA和cuDNN,版本方面要注意兼容性,比如引用[5]用的是CUDA 10.0和cuDNN 7.6.5,但可能用户的环境不同,需要确认版本对应。另外,引用[5]还提到需要安装Visual Studio 2017,特别是C++组件,这可能是因为dlib在编译时需要C++构建工具。 接下来,安装步骤可能需要使用CMake来编译dlib,但引用[3]和[5]提到通过conda安装可能更简单。不过,用户需要注意Python版本和dlib的兼容性,比如引用[5]用的是Python 3.8。还有环境变量的设置,确保CUDA路径被正确识别,这点在引用[5]的环境变量部分有提到。 可能遇到的问题包括版本不匹配,比如CUDA和cuDNN的版本是否与dlib兼容,以及Visual Studio的版本是否正确安装。测试部分,引用[5]的代码示例检查dlib是否使用了CUDA,这很重要。此外,用户可能需要参考引用[4]中的Android配置,但当前问题集中在Windows环境,所以可能不需要这部分。 最后,要确保所有步骤都正确,比如卸载旧版本、安装依赖、设置环境变量,然后验证是否成功。用户可能会遇到编译错误或者CUDA检测失败,这时候需要检查路径和版本,或者重新安装依赖项。</think>### 如何通过dlib使用GPU加速配置方法 #### 1. **环境准备** - **操作系统**: Windows 10或Linux(推荐Ubuntu)[^1][^5] - **Python环境**: 建议使用Anaconda管理Python虚拟环境,Python版本需与dlib兼容(如Python 3.6-3.8)[^3][^5] - **GPU支持**: 确保显卡为NVIDIA GPU并安装对应驱动(如GTX 1060或更高)[^2] #### 2. **卸载旧版本dlib** 若已安装CPU版本的dlib,需先卸载: ```bash pip uninstall dlib ``` #### 3. **安装CUDA和cuDNN** - **CUDA版本**: 根据dlib版本选择,例如CUDA 10.0或11.x[^5] - **cuDNN版本**: 需与CUDA匹配(如CUDA 10.0对应cuDNN 7.6.5)[^5] - **安装步骤**: 1. 从NVIDIA官网下载CUDA Toolkit并安装。 2. 下载对应cuDNN,解压后复制文件到CUDA安装目录。 3. 设置环境变量: ```bash export PATH=/usr/local/cuda/bin:$PATH export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH ``` #### 4. **安装Visual Studio(仅Windows)** - 安装Visual Studio 2017或更高版本,需勾选“C++桌面开发”组件。 - 安装Windows SDK 10以支持编译。 #### 5. **编译安装GPUdlib** **方法一:通过CMake编译** ```bash git clone https://github.com/davisking/dlib.git cd dlib mkdir build && cd build cmake .. -DDLIB_USE_CUDA=1 -DUSE_AVX_INSTRUCTIONS=1 cmake --build . --config Release pip install . ``` **方法二:使用预编译包(推荐)** ```bash conda install -c conda-forge dlib=19.19 cudatoolkit=10.0 # 根据CUDA版本调整 ``` #### 6. **验证GPU加速是否生效** ```python import dlib print(dlib.DLIB_USE_CUDA) # 输出应为True print(dlib.cuda.get_num_devices()) # 输出可用GPU数量 ``` #### 7. **应用示例(人脸检测)** ```python import dlib detector = dlib.cnn_face_detection_model_v1("mmod_human_face_detector.dat") # 使用GPU加速的CNN模型进行检测 ``` ### 注意事项 1. **版本兼容性**:CUDA、cuDNN、dlib和Python版本需严格匹配,否则可能导致编译失败[^5]。 2. **性能优化**:启用AVX指令集(`-DUSE_AVX_INSTRUCTIONS=1`)可进一步提升速度。 3. **依赖冲突**:若使用Anaconda,建议新建独立环境避免包冲突[^3]。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值