csmUpdateModel計算のNeon命令対応

[2018/09/06 作成]

 

Live2D Cubism Native Core Ver3.0.4のバージョンアップではNeon命令に対応しました。
これによりcsmUpdateModel(csmModel* model)命令の実行速度が対応CPUで40%ほど早くなります。

 

適用の確認方法

Cubism 3 Native CoreのVersionで確認を行います。

csmGetVersion()でVersion表記で3.0.4以上であれば適用されています。

 

効果範囲

ARM系Neon命令に対応したCPUが対象となります。

スマートフォンなどが主な対象です。

 

効果検証

実験条件

機体 Nexus5X Android8.0.0
検証モデル 名執 尽
ミアラ
NativeSDKに同伴されている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

 

 

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

速度テスト1000回データ

Copyright © 2018 Live2D Inc.