dlib 不使用 CUDA

Posted

技术标签:

【中文标题】dlib 不使用 CUDA【英文标题】:dlib not using CUDA 【发布时间】:2019-01-27 07:26:03 【问题描述】:

我使用 pip 安装了 dlib。我的显卡支持 CUDA,但是在运行 dlib 时,它没有使用 GPU。

我正在开发 ubuntu 18.04

Python 3.6.5 (default, Apr  1 2018, 05:46:30) 
[GCC 7.3.0] on linux
>>> import dlib
>>> dlib.DLIB_USE_CUDA
False

我还安装了 NVidia Cuda Compile 驱动程序,但仍然无法正常工作。

nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2017 NVIDIA Corporation
Built on Fri_Nov__3_21:07:56_CDT_2017
Cuda compilation tools, release 9.1, V9.1.85

谁能帮助我如何让它工作。 ?

【问题讨论】:

我认为通过pip安装的DLIB默认不使用CUDA。您必须从源代码构建 DLIB 才能使用 CUDA。 不对。如果 cuda 安装正确,通过 pip 安装 dlib 将使用 cuda。 你应该使用命令 pip install -v dlib 重新安装,这样你就可以看到它打印的关于它在做什么以及为什么的消息。它会说明为什么不使用 cuda。 CUDA 9 不支持 ubuntu 18,只能到 17.01 或以下。我建议降级到 16.04。或者等待 CUDA 10。 【参考方案1】:

我也遇到过类似的问题,在我的情况下,我缺少 cuDNN 库,这会阻止 dlib 使用 CUDA 指令进行编译,尽管我安装了 CUDA 编译器和其他驱动程序。

接下来是从this repo下载dlib。

然后运行这个命令来安装 dlib 与 CUDA 和 AVX 指令,你不需要使用 CMake 手动编译它使用 make 文件:

python setup.py install --yes USE_AVX_INSTRUCTIONS --yes DLIB_USE_CUDA

现在重要的部分是阅读日志,如果python真的能找到CUDA、cuDNN并且可以使用CUDA编译器编译测试项目。这些是重要的行:

-- Found CUDA: /usr/local/cuda/bin/ (found suitable version "8.0", minimum required is "7.5")
-- Looking for cuDNN install...
-- Found cuDNN: /usr/local/cuda/lib64/libcudnn.so
-- Building a CUDA test project to see if your compiler is compatible with CUDA...

我面临的第二个问题与 CMake 版本有关。最新版本在 cuda 和 dlib 方面存在一些已知问题,因此我必须安装 CMake 3.12.3 才能使其正常工作。

【讨论】:

您在使用 Visual Studio 时遇到过任何问题吗?如果不是,它是你的什么版本,你的 Cuda 是什么版本?对我来说,到目前为止,对我来说,它无法编译 Cuda 测试,因此需要 dlib cuda 支持,我需要一些帮助。现在我正在尝试在 setup.py 的第 50 行执行_cmake_extra_options = ["-G", "Visual Studio 15 2017", "-T", "host=x64"] 运行 python setup.py install --yes USE_AVX_INSTRUCTIONS --yes DLIB_USE_CUDA 会产生以下输出消息:The --yes options to dlib's setup.py don't do anything since all these options are on by default. So --yes has been removed. Do not give it to setup.py.【参考方案2】:

与在 Windows 上一样,有 2 个不同的问题导致此问题:

    您没有安装 CUDA 或 cuDNN。

    您安装了上述 2 个库,但没有初始化环境变量。这对于两个库的 conda 安装尤其如此。 Conda 安装它们但不设置环境变量。 conda 的全部意义在于不要全局设置它们。

    这是我不确定但可能会解决的问题。环境变量的名称是CUDA_PATH_xxxx,而不是Nvidia网站安装说明中给出的CUDA_PATH。

如果前 2 次更正无效,请尝试第三次。我当时的 CUDA 版本是 10.1。

【讨论】:

【参考方案3】:

我们遇到了完全相同的问题,即正确安装了 CUDA 驱动程序,但 dlib.DLIB_USE_CUDA 标志为“False”。

通过“pip3 install -v dlib”安装 dlib 表明它选择了不兼容的不同版本的 C++ 编译器。

安装 Visual Studio 14 2015 为我们解决了这个问题。

需要注意的一点是,当我们尝试使用源代码中的命令“python setup.py install”进行安装时,我们收到了 dlib 将使用 cuda 的消息,但 dlib.DLIB_USE_CUDA 标志仍设置为 False。

【讨论】:

以上是关于dlib 不使用 CUDA的主要内容,如果未能解决你的问题,请参考以下文章

win10+anaconda+cuda配置dlib,使用GPU对dlib的深度学习算法进行加速(以人脸检测为例)

DLIB:ImportError:/usr/local/cuda/lib64/libcudnn.so.7:文件太短

为啥我在编译 dlib python 接口时得到“dlib is not going to use CUDA”

如何检查 dlib 是不是正在使用 GPU?

Dlib(支持 GPU)不能正常工作,不确定?

使用 GPU 支持安装 dlib 时出错