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

[目次]

検証方法
-比較するGPU
-コンピュータ仕様
-ソフトウェア環境
-学習・動画分析の実行対象
-学習処理 (Train処理) の実行条件・パラメータ

測定内容と結果
-測定内容
-測定結果
-考察

おわりに

弊社で提供しているオーダーメイドPC製作サービス TEGSYSでは、お客さまのご要望に合わせ、最適なスペックのPCをご提案しております。
今回は、これまでに多数の提案実績があるDeepLabCut用マシンについて、GPUの違いによる学習の処理速度差を比較してみました。
検証に用いたGPUはRTX 4090RTX Ada 6000RTX A6000 の3種類です。

 

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

検証方法

比較する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等のスペックは下記のとおりです。

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

ソフトウェア環境

検証で使用したOS環境と機械学習関連ソフトウェアは以下の通りです。

OS Windows 11
機械学習フレームワークおよびそのサポートツール Tensorflow 2.9.1
CUDA Toolkit 11.2
cuDNN 8.1.1
Anaconda3

学習・動画分析の実行対象

本検証では、学習・動画分析の実行対象として DeepLabCutがサンプル提供しているネズミの動画 を使用しました。

サンプル動画の概要
解像度 640 x 480
フレームレート 30fps
長さ 1分17秒

動画からデフォルト設定で19枚の画像を抜き出し、それぞれに下記のラベル情報を手動で付与します (合計7点)

DeepLabCutでのラベル情報設定画面

ラベル付与対象 生物 snout (鼻) 、leftear (左耳) 、rightear (右耳) 、midbody (胴体の中央) 
tailbase (尾の付け根) 、tail1 (尾の中央あたり)
環境 cornerofbox (移動フィールドの左上の角)

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

本検証は、以下の実行条件・パラメータで実施しました。

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

学習の反復回数の値を大きくすると、学習にかかる時間が増えるかわりに学習結果の精度が向上します。
今回は最大反復回数を200,000回に設定して検証しました。

DeepLabCut – Step 4.Create training datasetの画面 DeepLabCut – Step 5.Train networkの画面

測定内容と結果

測定内容

本検証では、学習処理実施時の各GPUについて、以下の5項目を測定しました。

  • GPU消費メモリ
  • 学習処理の所要時間
  • GPUの使用率
  • GPUクロック(GraphicsClock)
  • GPUクロック(MemoryClock)

測定結果

GPU消費メモリ 学習処理の所要時間
GPUの使用率 GPUクロック (GraphicsClock) GPUクロック (MemoryClock)

考察

処理時間 今回のGPU 3種では学習時間に大きな差は見られない
GPUメモリの消費 当該ソフトウェアは処理開始直後に全GPUメモリ領域を確保すると考えられる
メモリサイズと動作速度 影響は確認できず
GPU Load RTX4090と6000adaはGPUリソースを活用しきれていない状態を確認
※ソフトウェアやライブラリのVerや学習時の実行条件などが影響する可能性あり

処理時間について、3種類のGPU間では学習時間に大きな差がみられませんでした。
GPUメモリの消費についてはグラフより当該ソフトウェアは処理開始直後にすべてのGPUメモリ領域を確保する動作と思われますが、RTX 4090 (24GB) と A6000や 6000ada (48GB) 間では、GPUメモリサイズによる動作速度への影響は今回の実行条件では確認できませんでした。一方で GPU Load では、RTX 4090 と、特に6000ada はGPUリソースを活用しきれていない状態が見受けられます。 可能性としては、Tensorflow 2.9.1、CUDA Toolkit 11.2、cuDNN 8.1.1 を使用いたしましたが、インストールするソフトウェアやライブラリのバージョンが古いものがあったことが原因として考えられます。ソフトウェアを最新のものや適切なバージョンに調整することによって4090 や 6000Ada のリソース活用状況が改善する可能性がございます。
その他の要素として、 DeepLabCut は学習ネットワークとしてresnet_50以外にも resnet_101、moobilenet、efficientnet といったモデルが選択可能で、学習時の実行条件によっても結果が変わる可能性が考えられます。

今回の結果を踏まえ、次回の記事ではインストールするソフトウェアのバージョンや実行条件の調整、その他さらに旧世代のGPUを用いた追加の評価を行う予定です。

なお、ご参考までに、学習をもとに動画を分析しましたところ、下記の動画の通りラベル付けができました。

 

おわりに

弊社では、AI・ディープラーニング用途向けのPCやワークステーション以外でも、お客さま個別のご要望に合わせ、最適なスペックのPCをご提案しております。
これまでのご提案実績や検証結果等のノウハウをもとにベストな提案を目指しておりますので、PC導入はお気軽にご相談ください。

昆虫を動画撮影するための治具設計と試作事例 | TEGAKARI

関連情報:昆虫を動画撮影するための治具設計と試作事例 ※弊社オウンドメディア TEGAKARIに飛びます

DeepLearning環境における最適なGPU選びのご相談はお気軽に!

研究用・産業用PCの製作・販売サービス TEGSYS – テグシス

width="340"

width="430"

このエントリーをはてなブックマークに追加