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

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是正常的)。

 

 

### 更新 dlib 的方法 对于希望在 Ubuntu 系统上更新 `dlib` 到最新版本的情况,可以考虑几种不同的方法来实现这一目标。 #### 方法一:通过 pip 更新 如果之前已经使用过 pip 安装了 dlib,则可以通过升级 pip 来获取最新的稳定版: ```bash pip install --upgrade dlib ``` 这种方法简单快捷,但是需要注意的是,在某些情况下由于网络原因或者依赖关系复杂度可能导致速度较慢[^1]。 #### 方法二:利用 APT 包管理器 当想要确保所使用的软件包来自官方渠道时,可以选择先移除旧版本再重新安装新版本的方式来进行更新操作。这同样适用于那些更倾向于保持系统一致性的人群。 首先卸载现有的 dlib 版本: ```bash sudo apt remove python3-dlib ``` 接着按照之前的指导完成必要的环境准备之后再次执行安装指令即可获得更新后的版本[^2]。 #### 方法三:从源码编译安装 为了能够完全掌控安装过程以及自定义配置选项(比如启用GPU支持等功能),可以从 GitHub 获取最新发布的 tarball 或者克隆整个仓下来自行编译。 具体步骤如下所示: 1. 卸载任何已有的 dlib 安装; 2. 下载并解压指定标签下的压缩文件或直接 git clone 项目地址; 3. 创建一个新的构建目录用于放置生成的目标文件; 4. 使用 CMake 工具链进行配置与实际编译工作; ```bash cd /path/to/downloaded/source/ mkdir build && cd build cmake .. make -j$(nproc) sudo make install ``` 此方式虽然相对繁琐一些,但却能更好地适应特殊需求场景下对性能优化的要求[^5]。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值