画像解析はやっぱり CUDA ! 顔認証もサクサク!

ビデオカード(アイキャッチ画像)

はじめに

Face01 において、GPU の活用は大変に効果があります。
Face01 は CPU のみでもフレームスキップ機能によって遅延を生じさせない仕様になっていますが、CUDA 環境下ではリアルタイムで滑らかな処理が可能です。

今回は

  • CUDA & AVX 環境
  • AVX のみの環境

の両方について比較動画を作りました。

これらは「どちらが優れているか」ではなく、求める形によって対応する環境を作ってくださいね、という事です。

検証環境

  • CUDA & AVX 環境
    Ubuntu 18.04.4
    Python 3.6.9
    Linux 4.15.0-66-generic
    AMD Ryzen 5 1400
    MemTotal 16GB
    GeForce GT 710
  • AVX 環境
    Windows 10 Pro 64bit
    Python 3.7.7
    Intel Core i5-2520M
    MemTotal 4GB
    CPU内蔵 Intel HD Graphics 4000

検証結果

検証の様子を動画にまとめました。

検証まとめ

AVX のみの環境と CUDA を使った環境では動作の滑らかさが全く違うことがみてとれます。
ただしこれは CUDA あるなしとは関係なく、Intel Core i5-2520M の性能の低さも起因しています。

AVX を試した ThinkPad L430 の性能の低さ

エンコード時点での CPU 使用率
エンコード時点での CPU 使用率

エンコード時点で既に CPU 使用率が 100% になっています。(上図赤枠)

2011 年に登場した Core i5-2520M はパスマークで上図のようになっています。
もう 9 年前の登場ですし元々モバイル用ですから性能は推して知るべし…ですね…。
検証用としてはもう少し新しいモデルを用意できれば良かったと思います。

CUDA & AVX 検証用マシンの性能

こちらもそんなに性能が良いわけではなく、特にグラフィックカードは GT710 とローエンドを使っています。
また CPU についても 1 世代前の AMD Ryzen 5 ですのでとりたてて性能が良いわけではありません。
ですが、やはりモバイル用 CPU とデスクトップ用 CPU では差があるのも事実です。

GPU Utilization (使用率)は 19%
GPU Utilization (使用率)は 19%
CPU とメモリーの使用率
CPU とメモリーの使用率

CPU 使用率は上の図から見る限りある程度余裕がある感じです。メモリは全く使っていませんね。
GPU 使用率は 19% 、一番高い時で 41% 程度でした。

これらの事から、今回の比較はそもそも検証用マシンを揃えてないところでツッコミが入ります。
ですが、やはり CUDA を使用できる環境ではマシンに与える負荷は非常に低くなる傾向だけは分かるかな…と思いました。

以上です。

Follow me!