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あたりに集中していることが確認できます。

各モデルでの速度比率平均と標準偏差は以下の通りになります。

速度比率平均標準偏差
Natori1.4297020140.06952474578
miara1.4145693430.04765946939
Haru1.405894120.02436108084

グラフ生成に使用したデータについて

速度テスト1000回データ

この記事はお役に立ちましたか?
はいいいえ
この記事に関するご意見・
ご要望をお聞かせください。