テガラのターンキーシステムなら
納品されたその日から、実験スタート!

技術情報

DeepLabCut 解像度別GPU別のトレーニング時間比較と
最適なGPUスペックについて

DeepLabCut | 技術情報

弊社で提供しているオーダーメイドPC製作サービス TEGSYSでは、お客さまのご要望に合わせ、個別の用途や使用予定のソフトウェアに合わせて、最適なスペックのPCをご提案しております。
理工学・医学・生物学・心理学など様々な分野のお客様よりご指定いただく機会の多いソフトウェアのひとつに、DeepLabCut (動物の行動分析のための動画学習ツール)があります。以前の記事では、複数のGPUで動作を比較しました。

前回学習に用いたサンプルの動画、用意したGPUの範囲では、GPUによって処理時間に差が見られませんでした。
今回は、改めてGPUごとの計算時間の差を検証すると同時に、状況に応じた最適なGPUスペックを推定するため、学習時間を計測しました。

参考:DeepLabCutによる動画学習を複数GPUで動かしてみた

DeepLabCut

動物の行動を分析するためのオープンソースのディープラーニングツール。動画から動物の特定の身体部位を識別しマーカーレスでの追跡が可能で、精度の高い動きの分析を提供する。

参考:DeepLabCut — The Mathis Lab of Adaptive Intelligence

検証方法

サイズの異なる3つの動画を用意

学習には扇風機の動画を用いました。
前回の検証では640 x 480 のサイズの動画を使用しましたが、今回は以下の3つのサイズに対して比較検証を行いました。

・HD (1280×720)
・FullHD (1920×1080)
・4K(4096×2160)

扇風機に色付きのシールを張り付け、[1] 赤点、[2]青点、[3]緑点、[4]黄点、[5] ファンの中央の5か所に前回同様ラベルを付けます。
動画は1000fps で撮影しましたが、学習用のラベル付けを行うフレーム数は19フレームと、前回の記事と同フレーム数となり、動画素材のフレームレートは学習に必要な計算処理量には影響しません。

比較するGPUの仕様

本記事で使用したGPUのスペックは下記のとおりです。

GPU architecture NVIDIA GeForce RTX 4090 NVIDIA RTX A6000 NVIDIA RTX 6000 Ada
CUDA core 16384コア 10752コア 18176コア
Tensor core 512コア 336コア 568コア
RT core 128コア 84コア 142コア
memory size 24 GB GDDR6X 48 GB GDDR6 48 GB GDDR6
memory bandwidth Up to 1008GB/s Up to 768GB/s Up to 960GB/s
Maximum power consumption 450W 300W 300W

コンピュータ仕様

GPU以外のハードウェア仕様は変更せずパフォーマンスを測定しました。
CPU等のスペックは下記のとおりです。

右手の動画を対象にして、外れ値と推定されるフレームが複数枚抜き出されます。今回の検証では19枚が抜き出されました。
それぞれのフレームを手動で確認し、位置が誤っているフレームがあれば、正しい位置に直します。

Chipset Intel W790
CPU Intel Xeon w7-2465X (3.10GHz 16コア 32スレッド)
RAM 合計64GB (DDR5-4800 ECC Registered 16GB x4)
Storage 1.92TB SSD S-ATA

学習処理と実行結果

学習処理の実行条件・パラメータ

学習処理の実行条件は下記の通りです。

Network: resnet_50
Augumentation Method: imgaug
Maximum Iterations: 20,000

実行結果

4K の動画はエラーにより学習処理を行うことができなかったため、結果からは除外しました。

※詳細はこちらの補足情報をご覧ください

HD、FullHDでは学習処理を行うことができました。各GPUでの計算時間、およびGPU Load の平均値は下記のグラフの通りです。
いずれのGPUでも、HDよりもFullHDの方が計算時間が長いことから、画素数に比例して計算時間が長くなることが確認できました。
その一方で、前回のSD画質の時と同様、3種類のGPU間において、劇的な計算時間の差は見られませんでした。
また、GPU Load からもGPUリソースを活用しきれていない状態が確認できます。
GPU自体の金額的なコストを見た場合、RTX 4090と 比較してRTX A6000 はおおよそ倍、6000 Ada は3倍以上のコスト差があります。
学習の実行条件や設定により変動する可能性はございますが、今回行いました DeepLabCutの学習においては、GPUについては最上位のものを用いる効果は無く、実際の最適スペックの下限値は実測が必要となりますが、RTX 4090 よりも低スペックなGPUの中に最適なコストパフォーマンスが得られるスペックが存在する可能性があります。

補足:4K動画の学習エラーについて

4Kの学習に下記のエラーに遭遇しました。

Image size [2160 4096] may be too large. Consider increasing `max_input_size` and/or decreasing `global_scale` in the train/pose_cfg.yaml.

下記のフォーラムを参考に、max_input_size を調整しましたが、新たにメモリエラーが発生し実行することができませんでした。

参考:Best way to decrease image size without compromising resolution?

CUDA_ERROR_OUT_OF_MEMORY: out of memory

次にglobal_scale のパラメータを下げたところ、当該メモリエラーを解決することができました。

別の手段としまして、crop オプションにより用いる画像の領域に制限をかけるといった方法も有効な解決方法であるとの情報がありましたが、いずれの方法も内部的な処理解像度を下げるオプションであるため、今回の解像度別の学習時間の比較では4Kの動画を比較対象から除外しました。

お問い合わせはお気軽に

テガラのサービス群