csmUpdateModel 계산의 Neon 명령 대응
[마지막 갱신일: 2019/09/03]
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 |