csmUpdateModel計算のNeon命令対応
最終更新: 2019年9月3日
Live2D Cubism Core Ver3.0.4のバージョンアップではNeon命令に対応しました。
これによりcsmUpdateModel(csmModel* model)命令の実行速度が対応CPUで40%ほど早くなります。
適用の確認方法
Cubism CoreのVersionで確認を行います。
csmGetVersion()でVersion表記で3.0.4以上であれば適用されています。
効果範囲
ARM系Neon命令に対応したCPUが対象となります。
スマートフォンなどが主な対象です。
効果検証
実験条件
機体 | Nexus5X Android8.0.0 |
検証モデル | 名執 尽 |
ミアラ | |
Cubism SDK for Nativeに同伴されているHaru | |
実験方法 | 1、全パラメータ値をランダムに変更する100回分のパラメータのセットを作成する |
2、非Neon用のモデルとNeon用のモデルを同じパラメータセットでcsmModelUpdateを100回行い、実行時間を積算する | |
3、非NeonとNeonの計算結果が一致していることを確認する | |
4、1~2を200回、5セットで繰り返す |
実験結果
上の図は各モデルでの100回のUpdate時間を積算したものをグラフにしたもので、単位はミリ秒です。
すべてのモデルで既存計算方法のCにくらべ、Neonの実行速度が勝っていることが確認できます。
上の図は各100回ごとの積算時間をC/Neonで計算したのもの速度比率のヒストグラムです。
各モデルでの速度比率はおおよそ1.40あたりに集中していることが確認できます。
各モデルでの速度比率平均と標準偏差は以下の通りになります。
速度比率平均 | 標準偏差 | |
Natori | 1.429702014 | 0.06952474578 |
miara | 1.414569343 | 0.04765946939 |
Haru | 1.40589412 | 0.02436108084 |
グラフ生成に使用したデータについて
この記事はお役に立ちましたか?
はいいいえ