← 作品一覧

Vesuvius Challenge

公式ツールの推論が Apple Silicon でも CPU に戻っていた箇所を調べ、MPS 対応のパッチと比較実測をまとめました。

  • Python
  • PyTorch
  • Apple MPS
パッチを作成

この作品

公式ツール villa のデバイス選択に MPS を加えるパッチを作りました。インク検出の推論と混合精度処理、Dice 系指標の計算、lasagna の自動デバイス選択を対象にしています。

仕組み

流れを見る図の動きやスクロールで、流れを追えます。動きはオフです。工程を選んで読めます。

同じ入力を用意

巻物の同じ範囲のデータと学習済みモデルを用意し、使える計算装置を調べます。

使える計算装置を選ぶ

NVIDIAのGPU用のCUDA、AppleのGPU用のMPSの順に調べ、どちらも使えなければCPUを選びます。

処理時間と画像を比べる

CPUとMPSに同じ入力を与え、処理時間とインク検出画像の画素ごとの差を、数値精度の条件と一緒に記録します。

実データの同じセグメント、同じ切り出し範囲、同じチェックポイントを使い、CPU と修正後の MPS を比較しました。処理時間に加えて、出力画像の差を画素単位で照合しています。

CPU と MPS では数値精度の経路も異なるため、その条件を比較資料に残しました。原因、変更箇所、再現条件を Issue 案と提出文にまとめています。

記録から分かること

比較実測では、修正後の MPS が CPU より約9.7倍速く処理しました。パッチと実測を Progress Prize に出すため、提出資料を整えています。

変更ファイル
6 ファイル
変更行
+28 / −9 行
CPU に対する MPS の高速化
約9.7倍

確かめた範囲

実測は今回の推論条件に限られ、新たな文字の判読成果を示すものではありません。