maderix/ANE: Apple Neural Engine 리버스 엔지니어링 및 심층 벤치마크 분석

maderix의 ANE(Apple Neural Engine) 리버스 엔지니어링 소개

maderix/ANE 프로젝트는 maderix가 인공지능 모델인 Claude Opus 4.6을 사용하여 Apple의 비공개 하드웨어 가속기인 Apple Neural Engine을 리버스 엔지니어링한 오픈소스 연구 결과물입니다. maderix는 ANE 기술의 핵심적인 분석 과정과 벤치마크 결과를 본인의 블로그에 2편의 글(1편2편)을 작성하여 상세히 공개하였습니다.

Apple은 2017년부터 자사 칩셋에 신경망 처리 장치를 탑재해 왔으나, 내부 구조와 명령어 집합 아키텍처를 철저히 비공개로 유지했습니다. 개발자들은 오직 고수준 프레임워크인 CoreML을 통해서만 하드웨어에 접근할 수 있었으며, 이는 하드웨어의 실제 동작 방식을 파악하거나 세밀한 성능 최적화를 수행하는 데 큰 장애물이었습니다.

maderix는 ANE 프로젝트를 통해 CoreML의 추상화 계층을 완전히 걷어내고 커널 드라이버와 직접 통신하는 경로를 개척하는 것을 목표로 삼았습니다. AppleNeuralEngine 프레임워크 내부의 40개 이상의 비공개 클래스를 탐색하고 기계 학습 중간 언어의 인메모리 컴파일 경로를 해독했습니다. 이를 통해 블랙박스로 남아있던 하드웨어의 제어권을 확보하였으며, 시스템의 보호 기법을 우회하여 직접적인 Apple Neural Engine API 호출을 성공하였습니다. 이러한 접근은 숨겨진 하드웨어의 잠재력을 극대화하고, 오직 추론 전용으로 설계된 칩에서 실제 모델 학습 파이프라인까지 구현해 내는 전례 없는 성과로 이어졌습니다.

이러한 연구는 클라우드 서버나 고전력 그래픽 처리 장치에 의존하지 않고도, 일반적인 개인용 컴퓨터에 내장된 저전력 신경망 처리 장치를 활용하여 고성능 모델 연산을 수행할 수 있음을 증명합니다. 결과적으로 막대한 전력을 소모하는 데이터센터 중심의 인공지능 생태계에서 벗어나, 수많은 사용자 디바이스 단에서 효율적으로 모델을 구동하고 세밀하게 튜닝할 수 있는 탈중앙화된 인공지능 인프라의 중요한 토대를 마련하는 데 기여하고 있습니다.

CoreML 프레임워크와의 비교

기존 Apple 생태계에서 개발자가 하드웨어를 활용하기 위해서는 반드시 CoreML 프레임워크를 거쳐야만 했습니다. CoreML은 다양한 하드웨어 백엔드를 통합하여 사용 편의성을 제공하지만, 그 대가로 심각한 추상화 오버헤드와 제어력 상실을 초래하는 이른바 CoreML 세금을 발생시킵니다. 특히 모델을 컴파일하고 메모리에 적재하는 과정에서 발생하는 지연 시간과 불투명한 메모리 할당 방식은 실시간 처리나 고도의 최적화가 필요한 작업에 치명적인 단점으로 작용했습니다.

반면, 이번 연구는 CoreML을 완전히 우회하여 내부 비공개 API인 _ANEClient 등에 직접 접근합니다. 이를 통해 모델 컴파일과 실행을 원자적 단위로 제어하고, 공유 메모리 기법을 적용하여 그래픽 처리 장치와 신경망 처리 장치 간에 데이터를 복사 없이 전송함으로써 기존 방식 대비 획기적인 응답 속도와 메모리 효율성을 확보했습니다.

ANE 하드웨어 아키텍처 및 동작 원리

리버스 엔지니어링을 통해 밝혀진 가장 큰 특징은 해당 하드웨어가 개별 명령어를 순차적으로 처리하는 범용 프로세서가 아니라, 컴파일된 신경망 그래프 전체를 단일 연산으로 처리하는 고정 기능 그래프 실행 엔진이라는 점입니다. 최신 M4 칩에 탑재된 ANE는 16개의 코어를 갖추고 있으며, 최대 127개의 평가 요청을 대기시킬 수 있는 큐를 통해 대량의 추론 작업을 스트리밍 방식으로 처리하는 데 최적화되어 있습니다. 또한 독립적인 동적 전압 및 주파수 스케일링 제어 채널을 지원하여, 연산이 없는 유휴 상태에서는 전력 소모를 정확히 0밀리와트로 완벽히 차단하는 하드웨어 전력 게이팅 기능을 내장하고 있음이 확인되었습니다. 이러한 아키텍처적 특성으로 인해 극단적으로 높은 전력 대 성능비를 구현할 수 있습니다.

하드웨어 내부 구조와 관련하여 발견된 가장 중요한 사실은 이 프로세서가 본질적으로 행렬 곱셈 엔진이 아닌 합성곱 엔진이라는 점입니다. 일반적인 행렬 곱셈 연산을 1x1 합성곱 연산으로 변환하여 하드웨어에 디스패치할 경우, 동일한 연산량임에도 불구하고 처리량이 약 3배 증가하는 현상이 관찰되었습니다.

이는 칩의 데이터 경로가 합성곱 연산에 극도로 최적화되어 있음을 의미하며, 개발자가 연산의 수식적 표현 방식만 바꾸는 것으로도 막대한 성능 향상을 이끌어낼 수 있음을 시사합니다. 따라서 하드웨어 성능을 극대화하기 위해서는 기본 행렬 연산을 합성곱 형태로 재구성하는 작업이 필수적으로 요구됩니다.

추가적인 성능 확장 테스트를 통해 칩 내부에 약 32메가바이트 규모의 정적 램이 탑재되어 있다는 사실도 유추할 수 있었습니다. 16비트 부동소수점 기준 2048x2048 크기의 행렬 곱셈을 수행할 때 작업 세트의 크기는 약 24메가바이트이며, 이때 하드웨어는 온칩 메모리 내에서 모든 연산을 처리하여 5.7 테라플롭스의 높은 성능을 기록했습니다.

그러나, 행렬 크기를 4096x4096으로 늘려 작업 세트가 96메가바이트에 도달하자, 외부 동적 램으로 데이터가 밀려나면서 성능이 4.0 테라플롭스로 약 30퍼센트 급감하는 메모리 절벽 현상이 발생했습니다. 이는 최적의 성능을 유지하기 위해 개별 텐서의 크기를 32메가바이트 이하로 설계하여 외부 메모리 참조를 방지해야 함을 명확히 보여줍니다.

벤치마크 결과 및 마케팅 사양의 실체

리버스 엔지니어링 과정을 통해 얻어낸 하드웨어 직접 접근 권한을 바탕으로, 실제 하드웨어 성능과 제조사가 발표한 마케팅 사양 간의 차이를 검증하는 심도 있는 벤치마크가 수행되었습니다. 측정 결과 최신 M4 칩의 하드웨어는 시스템 부하 상태에서 1와트당 약 6.6 테라플롭스의 뛰어난 연산 효율을 기록했습니다.

이는 1와트당 약 0.13 테라플롭스를 기록하는 고성능 데이터센터용 인공지능 가속기 H100과 비교했을 때, 단위 연산당 전력 효율이 무려 80배 이상 높은 경이적인 수치입니다. 이러한 압도적인 전력 효율성은 모바일 및 데스크톱 환경에서 발열과 배터리 소모를 최소화하면서도 고도화된 모델을 상시 구동할 수 있는 핵심 원동력임을 증명합니다.

그러나 제조사인 Apple이 공식적으로 홍보하는 초당 38조 회 연산이라는 최대 성능 수치에 대해서는 구체적인 하드웨어적 반론이 제기되었습니다. CoreML 오버헤드를 제거한 상태에서 직접 측정한 결과, 16비트 부동소수점 연산의 실제 최대 성능은 19 테라플롭스로 확인되었습니다. 38 TOPS라는 수치는 8비트 정수 연산 시 16비트 부동소수점 성능의 두 배가 될 것이라는 업계의 관행적인 마케팅 계산식을 따른 결과입니다.

하지만, 실제 하드웨어는 8비트 정수 연산을 수행할 때 이를 16비트 부동소수점으로 역양자화한 후 연산을 진행하므로, 메모리 대역폭 측면에서는 이점이 존재하지만 하드웨어 연산 속도 자체가 물리적으로 두 배 증가하지는 않습니다. 즉, 이 프로세서는 본질적으로 16비트 부동소수점 연산기이며, 맹목적인 스펙 시트의 8비트 정수 연산 수치를 믿기보다 실제 아키텍처의 한계를 기반으로 파이프라인을 설계해야 함을 시사합니다.

로컬 AI 모델 학습 파이프라인 구축

가장 놀라운 기술적 성과는 오직 추론 전용으로만 설계된 하드웨어 위에서 실제 신경망 모델의 가중치를 업데이트하는 역전파 학습 과정을 구현했다는 사실입니다. 이를 위해 연구진은 기계 학습 중간 언어의 인메모리 컴파일 경로를 활용하여, 디스크 접근 없이 메모리 상에서 모델을 동적으로 재구성하고 로드하는 파이프라인을 구축했습니다. 여러 연산을 16개에서 64개 단위의 깊은 그래프 구조로 묶어 단일 프로그램으로 디스패치함으로써 런타임 오버헤드를 최소화하는 전략이 적용되었습니다.

기존 고수준 환경에서 반복적인 학습 루프를 돌릴 때 빈번하게 발생하던 심각한 메모리 누수 및 재컴파일 오버헤드 문제 또한 저수준 API 제어를 통해 근본적으로 해결했습니다. 컴파일된 모델의 가중치 데이터 구조를 직접 조작하는 방식을 도입함으로써, 하드웨어의 설계 의도를 뛰어넘어 안정적인 그레이디언트 계산과 가중치 업데이트가 가능해졌습니다. 이 프로젝트는 제조사가 상정하지 않은 하드웨어의 새로운 용도를 발굴해 냈으며, 클라우드 연결 없는 온디바이스 인공지능 학습이라는 새로운 연구 방향을 실증적으로 제시하고 있습니다.

:scroll: maderix의 블로그 1편: ANE 리버스 엔지니어링

:scroll: maderix의 블로그 2편: ANE 성능 벤치마크

:github: maderix/ANE 프로젝트 GitHub 저장소




이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다. :hugs:

:pytorch:파이토치 한국 사용자 모임:south_korea:이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일:love_letter:로 보내드립니다! (기본은 Weekly지만 Daily로 변경도 가능합니다.)

:wrapped_gift: 아래:down_right_arrow:쪽에 좋아요:+1:를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~ :star_struck: