Neon instruction support for csmUpdateModel calculation

[Last updated : 09/03/2019]


The Live2D Cubism Core Ver3.0.4 version upgrade supports the Neon instruction.
This speeds up the execution of the csmUpdateModel(csmModel* model) instruction by about 40% on supported CPUs.


How to confirm application

Check with the Version of Cubism Core.

If the version is 3.0.4 or higher in csmGetVersion(), it is applied.


Effect range

CPUs supporting ARM-based Neon instructions are eligible.

Smartphones and other devices are the main targets.


Effectiveness verification

Experimental conditions

Airframe Nexus5X Android8.0.0
Verification model Natori Jin
Haru accompanied by Cubism SDK for Native
Experimental procedure 1. Create a set of 100 parameters that randomly change all parameter values
2. Perform csmModelUpdate 100 times with the same parameter set for the model for non-Neon and the model for Neon, and accumulate the execution time
3. Confirm that the results of non-Neon and Neon calculations are consistent
4. Repeat 1-2 for 200 repetitions, in sets of 5



Experimental results

The figure above is a graph of the total of 100 Update times for each model, in milliseconds.
In all models, Neon's execution speed is superior to that of the existing calculation method, C.


The above figure shows a histogram of speed ratios calculated by C/Neon for each of the 100 integrated times.
It can be seen that the speed ratios for each model are concentrated roughly around 1.40.


The speed ratio means and standard deviations for each model are shown below.

Speed Ratio Average Standard deviation
Natori 1.429702014 0.06952474578
miara 1.414569343 0.04765946939
Haru 1.40589412 0.02436108084



About the data used to generate the graphs

Speed test 1000 times data

© 2010 - 2022 Live2D Inc.