AWS GPUインスタンスの性能検証(OpenPoseで実アプリベンチマーク)


TL;DR

  • AWSのGPUインスタンスの性能を知りたくなったので,OpenPoseでの姿勢検知で性能評価を行いました
  • 他のg3インスタンスに比べてg3sインスタンスのコストパフォーマンスが約3割,良いことが明らかになりました
  • openposeは並列効果の高いアプリケーションで,GPU数に比例した性能向上が得られました

モチベーション

  • AWS EC2のGPUインスタンスの性能と費用の関係を可視化します

実験概要

実験手順

実験対象データ

  • 1名の人間が,比較的ゆっくりした動作を行う様子を,定点から撮影した動画
  • FHD(1920x1080), 30fps
  • 103 MB
  • 8分53秒(533秒)

計測GPUインスタンスタイプ

インスタンスタイプ vCPU数 GPU数 GPU Model メモリ[GB] 費用[USD/hour]
g3s.xlarge 4 1 Tesla M60 30.5 0.75
g3.4xlarge 16 1 Tesla M60 122 1.14
g3.8xlarge 32 2 Tesla M60 244 2.28
g3.16xlarge 64 4 Tesla M60 488 4.56

実行コマンド

docker run --rm --runtime=nvidia \
    -v ${PWD}:/tmp/ openpose:latest \
    --face --hand --part_candidates \
    --display 0 \
    --model_folder /usr/local/openpose/models \
    --video       /tmp/input.avi \
    --write_json  /tmp/outputJSON \
    --write_video /tmp/output.avi

実行結果

計算時間

  • 計測された計算時間を以下にまとめました.
インスタンスタイプ vCPU数 GPU数 GPU Model メモリ[GB] 費用[USD/hour] 計算時間[sec]
g3s.xlarge 4 1 M60 30.5 0.75 5776.87
g3.4xlarge 16 1 M60 122 1.14 5769.03
g3.8xlarge 32 2 M60 244 2.28 2924.84
g3.16xlarge 64 4 M60 488 4.56 1520.76
  • 上記表の計算時間をグラフ化すると,下図になります.

パフォーマンス比

  • g3sを1.0としたときの計算性能のグラフを以下に示します
    • 同じ問題を解くのに要した時間の逆数を取り,g3sを1.0として正規化したグラフです

費用比

  • g3sの費用(0.75USD/hour)と比較して,投入コストあたりで得られるパフォーマンスを示すグラフを以下に示します
    • パフォーマンス比と料金表をもとに,1ドルあたりで得られる性能をもとめ,g3sの性能を1として正規化しました.

考察

結果のまとめ

OpenPoseでの重たい計算をするときのコストと性能についてまとめます.

インスタンスタイプ vCPU数 GPU数 費用[USD/hour] 計算時間[sec] 性能比率 費用比率
g3s.xlarge 4 1 0.75 5776.87 1.0 1.0
g3.4xlarge 16 1 1.14 5769.03 1.001 0.659
g3.8xlarge 32 2 2.28 2924.84 1.975 0.650
g3.16xlarge 64 4 4.56 1520.76 3.798 0.625

g3sのコスパが良い

  • 費用比では,g3sの性能がコストがもっとも良いことが示されました
    • g3.4xlargeが活かせる場面は,メモリを多く使用するアプリケーションであり,OpenposeのようなGPU演算がメインの場合は,使用するメリットがほとんどないと言えます
  • 計算性能はGPU数に応じて向上することが示されました
    • 4つのGPUを使用するg3.16xlargeでは,1つのGPUでの実行に比べて約3.8倍と,Openposeは比較的良い並列化効果が得られるアプリケーションであると言えます

その他

  • Openposeのベンチマークは,OpenPose - Maximizing the OpenPose Speedにも説明があります
  • GPUとしてKepler K80を持つP2インスタンスもあるので,こちらの評価も取りたいです.

参考