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

新手上路,请多包涵

我的机器有 Geforce 940mx GDDR5 GPU。

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

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

  2. cuDNN 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?

原文由 rahulreddy 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1k
1 个回答

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

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

原文由 Sebastian Värv 发布,翻译遵循 CC BY-SA 4.0 许可协议