首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何检查dlib是否在使用GPU?

如何检查dlib是否在使用GPU?
EN

Stack Overflow用户
提问于 2018-08-06 03:11:48
回答 3查看 27.4K关注 0票数 7

我的机器配备了GeForce940mx GDDR5图形处理器。

我已经安装了运行GPU加速dlib的所有要求(支持GPU ):

包含来自https://developer.nvidia.com/cuda-90-download-archive?target_os=Windows&target_arch=x86_64&target_version=10&target_type=exelocal

  • cuDNN 7.1.4

的所有3个修补程序更新的

  1. CUDA 9.0工具包

然后,我在Github上克隆了dlib/davisKing存储库以编译支持GPU的dlib后,执行了以下所有命令:

代码语言:javascript
运行
复制
$ 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 .
$ cd ..
$ python setup.py install --yes USE_AVX_INSTRUCTIONS --yes DLIB_USE_CUDA

现在我该如何检查/确认dlib (或其他依赖dlib的库,如Adam Geitgey的face_recognition )是否在python shell/Anaconda(jupyter Notebook)中使用GPU?

EN

回答 3

Stack Overflow用户

发布于 2018-11-01 17:19:18

除了前面使用命令的答案之外,

代码语言:javascript
运行
复制
dlib.DLIB_USE_CUDA

有一些替代方法可以确定dlib是否真的在使用您的GPU。

最简单的检查方法是检查dlib是否能识别您的GPU。

代码语言:javascript
运行
复制
import dlib.cuda as cuda
print(cuda.get_num_devices())

如果设备数量为>= 1,则dlib可以使用您的设备。

另一个有用的技巧是运行dlib代码,同时运行

代码语言:javascript
运行
复制
$ nvidia-smi

这将为您提供完整的GPU利用率信息,您可以分别查看每个进程的总利用率和内存使用情况。

代码语言:javascript
运行
复制
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 410.48                 Driver Version: 410.48                    |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce GTX 1070    Off  | 00000000:01:00.0  On |                  N/A |
|  0%   52C    P2    36W / 151W |    763MiB /  8117MiB |      5%      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|    0      1042      G   /usr/lib/xorg/Xorg                            18MiB |
|    0      1073      G   /usr/bin/gnome-shell                          51MiB |
|    0      1428      G   /usr/lib/xorg/Xorg                           167MiB |
|    0      1558      G   /usr/bin/gnome-shell                         102MiB |
|    0      2113      G   ...-token=24AA922604256065B682BE6D9A74C3E1    33MiB |
|    0      3878      C   python                                       385MiB |
+-----------------------------------------------------------------------------+

在某些情况下,进程框可能会显示类似“不支持进程”的内容,这并不意味着您的GPU不能运行代码,但它不仅仅支持这种类型的日志记录。

票数 10
EN

Stack Overflow用户

发布于 2018-08-06 07:19:53

如果dlib.DLIB_USE_CUDA是真的,那么它使用的是cuda,如果是假的,那么它就不是。

顺便说一句,这些步骤不做任何事情,也不是使用python所必需的:

代码语言:javascript
运行
复制
$ mkdir build
$ cd build
$ cmake .. -DDLIB_USE_CUDA=1 -DUSE_AVX_INSTRUCTIONS=1
$ cmake --build .

只需运行setup.py即可。

票数 4
EN

Stack Overflow用户

发布于 2019-04-04 04:18:02

以下代码片段已经过简化,可以使用或检查dlib是否正在使用GPU。

首先,检查dlib是否能识别你的

import dlib.cuda as cuda; print(cuda.get_num_devices());

其次,dlib.DLIB_USE_CUDA如果它是false,只需通过以下方式允许它使用GPU支持

dlib.DLIB_USE_CUDA = True

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51697468

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档