python - dlib 不使用 CUDA
问题描述
我使用 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
任何人都可以帮助我如何让它工作。?
解决方案
我有类似的问题,在我的情况下,我错过了 cuDNN 库,尽管我安装了 CUDA 编译器和其他驱动程序,但它阻止了 dlib 使用 CUDA 指令进行编译。
下一部分是从此repo下载 dlib 。
然后运行此命令以使用 CUDA 和 AVX 指令安装 dlib,您无需使用 make 文件使用 CMake 手动编译它:
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 才能使其正常工作。
推荐阅读
- java - Tomcat 9 较慢地跳过所有 jars tld 扫描,将 defaultTldScan 设置为 false
- php - 注册后登录,auth()->user()在DashboardController中返回null
- r - R如何通过以随机比率在特定时间拆分给定数字来生成样本数
- sql - 如何检查特定记录的日期列是否在该月份中最早?
- c# - 如果它已经打开,显示现有的应用程序而不是打开另一个
- pandas - 按日期的累积总和数据帧
- angular - 类型“事件”不可分配给类型“字符串”。角度打字稿错误
- docker - Docker镜像的远程部署
- javascript - jQuery 仅在具有特定类的另一个 div 的 div 中运行函数
- spring-boot - 找到一种从 Java 15 / Spring Boot 保存到 HSQLDB 的简单方法