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

1. 下载安装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
    cmake --build .

过程中出现错误:

(dlib-gpu) [xl@GPU1 build]$ cmake --build .
[  0%] Building NVCC (Device) object dlib/CMakeFiles/dlib.dir/cuda/dlib_generated_cuda_dlib.cu.o
/home/xl/dlib-gpu/dlib/cuda/cuda_dlib.cu(1762): error: calling a constexpr __host__ function("log1p") from a __device__ function("cuda_log1pexp") is not allowed. The experimental flag '--expt-relaxed-constexpr' can be used to allow this.

1 error detected in the compilation of "/tmp/tmpxft_00001c85_00000000-6_cuda_dlib.cpp1.ii".
CMake Error at dlib_generated_cuda_dlib.cu.o.Release.cmake:267 (message):
  Error generating file
  /home/xl/dlib-gpu/build/dlib/CMakeFiles/dlib.dir/cuda/./dlib_generated_cuda_dlib.cu.o


gmake[2]: *** [dlib/CMakeFiles/dlib.dir/cuda/dlib_generated_cuda_dlib.cu.o] Error 1
gmake[1]: *** [dlib/CMakeFiles/dlib.dir/all] Error 2
gmake: *** [all] Error 2
(dlib-gpu) [xl@GPU1 build]$ cmake --build . --expt-relaxed-constexpr
Unknown argument --expt-relaxed-constexpr
Usage: cmake --build <dir> [options] [-- [native-options]]
Options:
  <dir>          = Project binary directory to be built.
  --target <tgt> = Build <tgt> instead of default targets.
                   May only be specified once.
  --config <cfg> = For multi-configuration tools, choose <cfg>.
  --clean-first  = Build target 'clean' first, then build.
                   (To clean only, use --target 'clean'.)
  --use-stderr   = Ignored.  Behavior is default in CMake >= 3.0.
  --             = Pass remaining options to the native tool.
(dlib-gpu) [xl@GPU1 build]$

之后按照提示,找到出错的文件:
在这里插入图片描述
定位到出现错的代码行:cuda_dlib.cu(1762),即cuda_dlib.cu中的第1762行
1762行的内容如下:
在这里插入图片描述
这是一行关于涉及数学计算的代码,查了一下std::exp(x)和std::log1p(x)两个函数的用法:

std::exp(x)https://zh.cppreference.com/w/cpp/numeric/math/exp
在这里插入图片描述
std::log1p(x)https://en.cppreference.com/w/cpp/numeric/math/log1p

在这里插入图片描述

也不知为什么将std::log1p()函数替换为std::log1pf()函数后,问题解决了
在这里插入图片描述
可能是因为:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
重新编译:

(dlib-gpu) [xl@GPU1 build]$ cmake --build .
[  0%] Building NVCC (Device) object dlib/CMakeFiles/dlib.dir/cuda/dlib_generated_cuda_dlib.cu.o
Scanning dependencies of target dlib
[  0%] Building CXX object dlib/CMakeFiles/dlib.dir/base64/base64_kernel_1.cpp.o
[  0%] Building CXX object dlib/CMakeFiles/dlib.dir/bigint/bigint_kernel_1.cpp.o
[  0%] Building CXX object dlib/CMakeFiles/dlib.dir/bigint/bigint_kernel_2.cpp.o
[  0%] Building CX
  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
对于在CentOS配置PaddleOCR的GPU环境,以下是一些基本步骤: 1. 安装NVIDIA驱动:首先,确保您的显卡支持CUDA,并且您已经安装了适当版本的NVIDIA驱动。您可以从NVIDIA官方网站下载并安装适用于您的显卡的驱动程序。 2. 安装CUDA Toolkit:PaddleOCR依赖于CUDA,在CentOS上安装CUDA Toolkit是必需的。您可以从NVIDIA官方网站下载适用于CentOS的CUDA Toolkit,并按照官方文档提供的步骤进行安装。 3. 安装cuDNN:cuDNN是一个加速深度神经网络的,PaddleOCR也依赖于它。您可以从NVIDIA开发者网站下载适用于CentOS的cuDNN,并按照官方文档提供的步骤进行安装。 4. 创建虚拟环境:为了避免与系统环境冲突,建议在配置PaddleOCR之前创建一个虚拟环境。您可以使用conda或者virtualenv来创建虚拟环境。 5. 安装PaddlePaddle:PaddleOCR是基于PaddlePaddle框架开发的。在虚拟环境使用pip安装PaddlePaddle,可以通过以下命令完成: ``` pip install paddlepaddle-gpu ``` 6. 克隆PaddleOCR仓使用git命令克隆PaddleOCR的源代码仓到您的本地环境: ``` git clone https://github.com/PaddlePaddle/PaddleOCR.git ``` 7. 安装依赖:切换到PaddleOCR目录,然后使用pip安装PaddleOCR所需的依赖: ``` pip install -r requirements.txt ``` 8. 配置环境变量:将CUDA和cuDNN的路径添加到您的环境变量中,以便PaddleOCR能够正确地使用GPU加速。 完成上述步骤后,您应该已经成功在CentOS配置了PaddleOCR的GPU环境。您可以根据PaddleOCR的文档和示例代码来使用和测试该
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值