1. 개요
Neural Engine(ANE) 은 Apple 이 개발한 NPU 이다. FP16 연산을 중심으로 설계되었으며 현재는 INT8도 지원한다. Apple 의 전용 AI 추론 가속 프레임워크인 CoreML 과 같이 동작하며 iOS의 기본 기능과 외부 모델을 변환[1]하여 사용할 수 있다.macOS 프로그램인 CreateML 로 텍스트 인식, 사물 인식 모델을 학습하여 직접 CoreML 용 모델을 개발할 수도 있으며 다른 모델을 변환 키트로 변환하여 사용할수도 있다.
2. 특징
2.1. 연산 및 아키텍처
가장 큰 특징은 FP16 연산에 최적화되어 있다는 점이다. 타사의 NPU가 INT8, INT4 등 낮은 정밀도의 연산을 주력으로 사용하고 이를 홍보하는데 반해 Apple 은 초창기부터 FP16 연산을 주로 지원했다[2][3]2.2. 소프트웨어 지원
하드웨어에 직접 접근하는 것은 불가능하며, 반드시 Apple이 제공하는 API인 Core ML을 통해서만 사용할 수 있다. 이 때문에 Apple GPU의 Metal Performance Shader(MPS) 처럼 범용적인 학습 목적으로 사용할 수는 없다. 대신 디바이스에서 수집한 정보를 바탕으로 모델을 조금씩 튜닝하는 기능은 지원한다.Apple의 API 지원과 자료들이 매우 많은 편이라 사용하기 편리하다. macOS의 'Create ML' 앱을 사용하면 코딩 없이도 이미지 분류나 텍스트 인식 모델을 학습시켜 앱에 바로 적용할 수 있고, 앱 스토어에는 이미 ANE를 적극 활용하는 스테이블 디퓨전 구동 앱인 'Draw Things'나 'Diffusers' 등이 출시되어 있다.
3. 아키텍쳐
Apple/마이크로아키텍처 참고[1] YOLO, Whisper, Stable Diffusion 등[2] 홍보 자료와 기타 인터넷 등에 INT8 기준으로 작성되어 있어 혼동될 수 있지만 ANE는 INT8 연산을 FP16 대비 2배로 가속하는 기능을 지원하지 않기 때문에 FP16 기준으로도 INT8 수준의 성능이 나온다. Apple 이 처음으로 내 놓은 ANE인 A11 Bionic의 ANE는 600GFLOPS, M4의 ANE는 이보다 60배 빠르므로 36TFLOPS 정도의 성능을 내는 것으로 추정할 수 있다.[3] 현재는 자세하게 공개하지 않지만 A15 출시 당시 개발자 문서에 현대 ANE의 FP16 성능 수치를 공개한 적이 있다.