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:文件太短