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
검증 모델 Natori Jin
Miara
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회 데이터

이 기사가 도움이 되었나요?
아니요
이 기사에 관한 의견 및 요청사항을 보내 주시기 바랍니다.