私のマシンにはGeforce 940mx GDDR5 GPUが搭載されています。
GPUアクセラレートdlibを実行するためのすべての要件をインストールしました(GPUサポートあり):
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ツールキット
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を使用しているかどうかを確認/確認できますか?
コマンドを使用した以前の回答に加えて、
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がコードを実行できないことを意味するのではなく、この種のロギングをサポートするだけではありません。
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を実行するだけで実行できます。
次のスニペットは、dlibがGPUを使用しているかどうかを使用または確認するように簡略化されています。
最初に、dlibがGPUを識別するかどうかを確認します。import dlib.cuda as cuda; print(cuda.get_num_devices());
第二に、dlib.DLIB_USE_CUDA
falseの場合、GPUサポートを使用できるようにしますdlib.DLIB_USE_CUDA = True
。