2020年9月に最新GPU RTX3090が発売されました。
これを受け、早速GPU RTX3090を搭載したPCを入手し、YOLOv4の処理速度がどれくらい向上したのか、ベンチマークを比較してみました。
OMEN by HP 30L Desktop GT13-0827jp
Windows 10 Pro (64bit)
インテル Core i9-10850K プロセッサー(3.60GHz-5.20GHz / 10コア・20スレッド / 20MB)
NVIDIA GeForce RTX 3090
https://github.com/AlexeyAB/darknet
CMake >= 3.12
CUDA >= 10.0
OpenCV >= 2.4
cuDNN >= 7.0
GPU with CC >= 3.0
GPU:NVIDIA GeForce RTX 3090
https://developer.nvidia.com/cuda-gpus#compute
GPU Compute Capability
GeForce RTX 3090 8.6
■インストール済み各バージョン
cmake-3.19.3
cuda V10.1.243 windows10
cudnn v8.0.5.39 cuda10.1 windows10
OpenCV 4.4.0(バイナリ)
VisualStudio2019
python 3.8.5(Anaconda)
■各環境変数の設定確認
CUDA_PATH = C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1
CUDA_PATH_V10_1 = C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1
CUDNN_PATH = なし
OPENCV_DIR = C:\opencv-4.4.0\opencv\build
PATH
→ C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\bin
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\libnvvp
C:\opencv-4.4.0\opencv\build\x64\vc15\bin
■python環境チェック
本体の場所
C:\ProgramData\Anaconda3\python.exe
ライブラリ等インストール先
(anaconda)C:\ProgramData\Anaconda3\Lib\site-packages
(pip)?
■各環境チェック
>> 実行ログ
C:\Users\rdcenter>nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2019 NVIDIA Corporation
Built on Sun_Jul_28_19:12:52_Pacific_Daylight_Time_2019
Cuda compilation tools, release 10.1, V10.1.243
C:\Users\rdcenter>where cudnn64_7.dll
情報: 与えられたパターンのファイルが見つかりませんでした。
C:\Users\rdcenter>where cudnn64_8.dll
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\bin\cudnn64_8.dll
C:\Users\rdcenter>python
Python 3.8.5 (default, Sep 3 2020, 21:29:08) [MSC v.1916 64 bit (AMD64)] :: Anaconda, Inc. on win32
C:\Users\rdcenter>where opencv_version
C:\opencv-4.4.0\opencv\build\x64\vc15\bin\opencv_version.exe
GEFORCE EXPERIENCEから最新のディスプレイドライバをインストールします。
(ユーザ登録とサイトへのログインが必要です)
■cmake
ENABLE_CUDA
ENABLE_CUDNN
ENABLE_OPENCV
ENABLE_CUDNN_HALF にチェックが入っていればOK
■configure
"configure"クリック後、特に問題がなければそのまま"generate"をクリック
■build(VisualStudio)
構成でRelease、x64を選択
ソリューションエクスプローラー内にある'darknet'を右クリックして、プロパティを選択
C/C++ -> プリプロセッサ -> プリプロセッサの定義に「CUDNN_HALF」 があるか確認(なければ追記します)
ソリューションのビルドを実行
■ビルドしたdarknet.exeを実行する
・"pthereadVC2.dll"がないとエラーが出る場合
alexeyab_darknet_v4\3rdparty\pthreads\binからコピーしdarknet.exeと同じ場所に置く
・CUDA Errorが出る場合
再度、最新のディスプレイドライバをインストール。
darknet.exe detector test cfg/coco.data cfg/yolov4.cfg yolov4.weights -dont_show -ext_output < data/filelist.txt -out results/result.json >
results/result.txt
CUDA Error: CUDA driver version is insufficient for CUDA runtime version: No error
■正常に起動した例
cudnn_halfが有効になっている所がポイントです。
>> コマンド
darknet.exe detector demo cfg/coco.data cfg/yolov4.cfg yolov4.weights -dont_show -ext_output data/test.mp4 -prefix results/video/img -out_filename
results/video/result.mp4 > results/video/result.txt
>>実行ログ
darknet.exe detector demo cfg/coco.data cfg/yolov4.cfg yolov4.weights -dont_show -ext_output data/test.mp4 -prefix results/video/img -out_filename
results/video/result.mp4 > results/video/result.txt
CUDA-version: 10010 (11020), cuDNN: 8.0.5, CUDNN_HALF=1, GPU count: 1
OpenCV version: 4.4.0
0 : compute_capability = 860, cudnn_half = 1, GPU: GeForce RTX 3090
layer filters size/strd(dil) input output
(省略
RTX3090 Super(HP OMEN Desktop )
GPU : NVIDIA GeForce GTX3090
CPU : Intel Core i9-10850K 3.60GHz(10コア、論理20)
RAM:64GB
cuda V10.1.243 windows10
cudnn v8.0.5.39 cuda10.1 windows10
OpenCV 4.4.0
RTX2080 Super(HP OMEN Desktop )
GPU : NVIDIA GeForce GTX2080 SUPER 8GBRAM
CPU : Intel Core i7-7700 3.6GHz(4コア、論理8)
RAM:32GB
cuda V10.1.105 windows10
cudnn v7.6.0 cuda10.1 windows10
OpenCV 4.3.0
RTX2080 MAX-Q(Alienware M17)
GPU : NVIDIA GeForce GTX2080 with Max-Q Design 8GBRAM
CPU : Intel Core i7-9750 2.6GHz(6コア、論理12)
RAM:16GB
cuda V10.1.243 windows10
cudnn v7.6.4 cuda10.1 windows10
OpenCV 4.3.0
GTX1070(HP OMEN Desktop) GPU : NVIDIA GeForce GTX1070 8GBRAM
CPU : Intel Core i7-7700 3.6GHz(4コア、論理8)
RAM:32GB
cuda 10.1.105 windows10
cudnn v7.6.0 cuda10.1 windows10
OpenCV 4.2.0
YOLOv4を同じcfg、同じデータセット、同じモデル(weight)を用いて、同条件で学習させ、1000イテレーション毎の時間を計測する。
PC | 学習時間 |
---|---|
HP OMEN Desktop(GeForce RTX 3090) | 49分 |
HP OMEN Desktop(GeForce RTX 2080 SUPER) | 80分 |
Alienware M17(Geforce RTX 2080Max-Q) | 120分 |
HP OMEN Desktop(Geforce GTX 1070) | 136分 |
静止画:1801枚
動画:1796フレーム
darknet.exe detector demo cfg/coco.data cfg/yolov4.cfg yolov4.weights -dont_show -ext_output data/test_2K.mp4 > results/result_test_2K_v4.txt
ベンチマーク:1796フレーム
darknet.exe detector demo cfg/coco.data cfg/yolov4.cfg yolov4.weights -benchmark data/test_2K.mp4 > results/test_2K.txt
PC | 静止画2K | 静止画4K | 動画2K | 動画4K | BM2K | BM4K |
---|---|---|---|---|---|---|
HP OMEN Desktop(GeForce RTX 3090) | 5.25 | 1.62 | 32.1 | 31.5 | 32.1 | 32.1 |
HP OMEN Desktop-1(GeForce RTX 2080 SUPER) | 4.30 | 1.33 | 32.0 | 21.3 | 32.0 | 32.0 |
HP OMEN Desktop-2(GeForce RTX 2080 SUPER) | 4.51 | 1.38 | 39.2 | 30.1 | 40.7 | 41.0 |
Alienware M17(Geforce RTX 2080Max-Q) | 3.57 | 1.04 | 30.6 | 21.0 | 34.2 | 27.0 |
HP OMEN Desktop (Geforce GTX 1070) | 3.44 | 1.14 | 20.4 | 19.4 | 20.4 | 20.3 |
▼この記事を書いたひと
R&Dセンター 野原 佐知世
R&Dの「ちょっとしたものづくり」を主に担当。360°パノラマ、機械学習などシステム、画像処理を中心に活動しています。
●富士見事務所 TEL : 052-228-8733 FAX : 052-323-3337
〒460-0014 愛知県名古屋市中区富士見町13−22 ファミール富士見711 地図
R&Dセンター