한계를 뛰어넘는: 직접 작성한 ARM Cortex-A53 NEON 어셈블리 커널

2025-04-21

이 글에서는 ARM Cortex-A53을 위한 NEON 어셈블리 커널을 최적화하는 방법을 자세히 설명합니다. y[n] = ax[n] + b를 예시로 사용하여 Cortex-A53의 명령어 타이밍 특성(부분적 듀얼 이슈 기능 및 순차적 실행)을 활용하여 64비트 로드 데이터 경로의 제약을 극복하는 방법을 상세히 설명합니다. 명령어 파이프라이닝 및 프리페칭과 같은 기법을 사용하여 성능을 극대화합니다. 직접 작성한 어셈블리 커널은 LLVM에서 생성된 코드보다 훨씬 뛰어난 성능을 보여주며, 강력한 CPU 모델이 부족한 경우 수동 최적화의 가능성을 강조합니다.