M4 ANE, AI와 협업하여 베일에 싸인 성능을 파헤치다!
M4 Apple Neural Engine(ANE)의 내부 구조를 파악하기 위해, CoreML을 우회하는 리버스 엔지니어링 시도
ANE의 ISA(Instruction Set Architecture) 미공개 및 CoreML의 추상화로 인해, 하드웨어 성능 파악에 어려움
직접 ANEClient API 접근 및 E5 바이너리 형식 분석을 통해, ANE의 실제 성능 측정 및 모델 훈련 가능성 확인
AI와 인간의 협업을 통해 시스템 연구를 수행하는 새로운 방식 제시, 개발자들의 높은 관심사로 부상
M4 ANE의 구조 및 작동 방식
M4 ANE는 GPU나 CPU와 달리, 컴파일된 신경망 그래프(Neural Network Graph)를 원자적으로 실행하는 고정 기능 가속기(Fixed-Function Accelerator)이다. 리버스 엔지니어링을 통해, ANE는 16개의 코어, 127의 큐 깊이(Queue Depth), 독립적인 DVFS(Dynamic Voltage/Frequency Scaling)를 지원하며, 유휴 시 전력 소비를 0mW로 줄이는 하드웨어 전력 제어 기능을 갖춘 것으로 밝혀졌다. 특히, IOSurfaces를 사용하여 GPU와의 제로 카피(Zero-Copy) 데이터 전송이 가능하다는 점이 주목할 만하다.
CoreML을 우회하는 직접 접근 방식
저자들은 CoreML을 거치지 않고, _ANEClient API를 사용하여 ANE에 직접 접근하는 방법을 발견했다. 이는 컴파일, 로드, 실행 파이프라인을 직접 제어할 수 있게 해준다. 구체적으로, MIL(Machine Learning Intermediate Language) 텍스트를 사용하여 모델을 컴파일하고, IOSurface를 통해 입출력 데이터를 처리하는 방식을 사용했다. 이러한 접근 방식은 CoreML의 오버헤드를 줄여, ANE의 실제 성능(True Peak Throughput)을 측정하는 데 기여했다.
성능 측정 및 벤치마크 결과
저자들은 ANE의 성능을 측정하기 위해, 다양한 행렬 크기, 그래프 깊이, 채널 수를 변경하며 분석을 수행했다. 특히, 1024x1024 행렬 곱셈(Matrix Multiplication)을 2,688바이트의 E5 바이너리로 컴파일하는 것을 확인했다. 또한, ANE는 127의 큐 깊이를 지원하여, 고성능 스트리밍 추론(High-Throughput Streaming Inference)에 적합하다는 것을 밝혀냈다. Part 2에서는 행렬 곱셈과 1x1 컨볼루션(Convolution)의 성능 비교, Apple의 '38 TOPS' 성능 수치의 신뢰성, CoreML 우회 시의 성능 향상 등을 벤치마킹할 예정이다.
AI와 인간의 협업: 새로운 시스템 연구 방식
본 연구는 인간의 직관과 AI의 추론 능력을 결합하여 시스템 연구를 수행하는 새로운 방식을 제시했다. 저자들은 AI(Claude Opus 4.6)를 활용하여 코드 작성 및 실험 설계를 지원하고, 인간은 시스템 아키텍처 설계 및 분석을 담당했다. 이러한 협업 방식은 시스템 연구의 효율성을 높이고, 복잡한 하드웨어의 내부 구조를 파악하는 데 기여했다. 댓글에서는 이러한 AI 기반 리버스 엔지니어링(Reverse Engineering)의 가능성에 대한 기대와 우려가 공존한다.