如何检查dlib是否使用GPU?

问题描述 投票:2回答:3

我的机器配备了Geforce 940mx GDDR5 GPU。

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

  1. 来自https://developer.nvidia.com/cuda-90-download-archive?target_os=Windows&target_arch=x86_64&target_version=10&target_type=exelocal的所有3个补丁更新的CUDA 9.0工具包
  2. 何时7.1.4

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

$ 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?

python-3.x tensorflow face-recognition dlib
3个回答
4
投票

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

顺便说一句,这些步骤什么都不做,不需要使用python:

$ mkdir build
$ cd build
$ cmake .. -DDLIB_USE_CUDA=1 -DUSE_AVX_INSTRUCTIONS=1
$ cmake --build .

只需运行setup.py就可以了。


4
投票

除了上一个使用命令的答案,

dlib.DLIB_USE_CUDA

有一些替代方法可以确保dlib实际上是否正在使用您的GPU。

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

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

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

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

$ nvidia-smi

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

+-----------------------------------------------------------------------------+
| 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无法运行代码,但它不仅支持这种日志记录。


1
投票

以下代码段已经简化为使用或检查dlib是否使用GPU。

首先,检查dlib是否识别您的GPU。 import dlib.cuda as cuda; print(cuda.get_num_devices());

其次,dlib.DLIB_USE_CUDA如果它是假的,只需让它使用GPU支持 dlib.DLIB_USE_CUDA = True

© www.soinside.com 2019 - 2024. All rights reserved.