신경 엔진
신경망 엔진(Neural Engine)은 종종 시스템 온 칩(SoC)에 통합되는 특수 처리 장치로, 인공지능(AI) 및 머신러닝(ML) 모델이 요구하는 집약적인 수학 연산을 처리하도록 특별히 설계되었습니다. 범용 CPU나 심지어 표준 GPU와 달리, 신경망 엔진은 딥러닝의 근간을 이루는 병렬 행렬 곱셈 및 컨볼루션에 최적화되어 있습니다.
실시간 이미지 인식, 자연어 처리, 예측 분석과 같은 복잡한 AI 애플리케이션의 부상은 막대한 컴퓨팅 파워를 요구합니다. 기존 프로세서는 이러한 모델을 실행할 때 비효율적일 수 있으며, 이는 높은 지연 시간과 상당한 전력 소비로 이어집니다. 신경망 엔진은 전용의 고효율 하드웨어 가속을 제공함으로써 이러한 문제를 해결하며, 복잡한 AI 작업을 더 빠르고 낮은 에너지 소비로 로컬에서 실행할 수 있게 합니다.
본질적으로 신경망 엔진은 극도의 병렬성을 가지고 신경망 연산을 실행하도록 설계되었습니다. 이는 훈련된 모델을 사용하여 예측을 수행하는 과정인 추론(inference)을 매우 빠르게 수행하도록 엔지니어링되었습니다. 이는 수천 개의 곱셈-누산(MAC) 연산이 동시에 발생할 수 있도록 하는 특수 시스톨릭 배열 또는 유사한 구조를 통해 달성됩니다. 이러한 전문화는 범용 명령어 세트와 관련된 오버헤드를 우회하여, 신경망에 내재된 반복적이고 구조화된 계산에 이상적입니다.
신경망 엔진은 많은 최신 기술에서 핵심 구성 요소입니다.
신경망 엔진을 활용하는 주요 이점은 성능, 효율성, 지연 시간의 세 가지입니다.
강력하지만, 신경망 엔진을 배포하고 최적화하는 데는 과제가 있습니다. 모델 양자화(가중치 및 활성화의 정밀도 감소)는 종종 모델을 엔진의 제약 조건에 효율적으로 맞추기 위해 필요합니다. 게다가 개발자는 ML 그래프를 엔진의 고유한 아키텍처에 효과적으로 매핑하도록 특별히 최적화된 프레임워크와 컴파일러를 사용해야 합니다.