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

 

 

그래프 생성에 사용한 데이터에 대하여

속도 테스트 1000회 데이터

© 2010 - 2022 Live2D Inc.