web-dev-qa-db-ja.com

dlibがGPUを使用しているかどうかを確認するにはどうすればよいですか?

私のマシンには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. cuDNN 7.1.4

次に、Githubにdlib/davisKingリポジトリを複製した後、以下のコマンドをすべて実行して、dlibをGPUサポートに準拠させました。

$ 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(または他のライブラリがAdam Geitgeyのface_recognitionのようなdlibに依存している)がpython Shell/Anaconda(jupyter Notebook)内でGPUを使用しているかどうかを確認/確認できますか?

5
rahulreddy

コマンドを使用した以前の回答に加えて、

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がコードを実行できないことを意味するのではなく、この種のロギングをサポートするだけではありません。

6
Sebastian Värv

Dlib.DLIB_USE_CUDAがtrueの場合はcudaを使用しており、falseの場合は使用していません。

余談ですが、これらの手順は何もせず、Pythonを使用するために必要ではありません。

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

Setup.pyを実行するだけで実行できます。

4
Davis King

次のスニペットは、dlibがGPUを使用しているかどうかを使用または確認するように簡略化されています。

最初に、dlibがGPUを識別するかどうかを確認します。
import dlib.cuda as cuda; print(cuda.get_num_devices());

第二に、dlib.DLIB_USE_CUDAfalseの場合、GPUサポートを使用できるようにします
dlib.DLIB_USE_CUDA = True

2
SIDHARTH RAI