"뉴럴 엔진은 풀로 가는 문이 좁은 연산 엔진이야. 그림을 주면 빛나. 언어 모델의 디코드를 주면 버스의 2퍼센트로 가중치를 읽어."
세 번째 문, 그리고 네 번째 유닛
Core ML은 애플 자체의 추론 경로야. 모델을 한 번 컴파일해서 운영체제가 CPU, GPU, 뉴럴 엔진에 걸쳐 스케줄하는 형태로 만들고, 호출자는 compute units 설정을 고르고, 프레임워크는 연산 하나하나가 어디서 돌지 골라. 이 트랙에서 뉴럴 엔진에 아예 닿을 수 있는 유일한 경로야. CPU 트랙에서 ioreg가 나열했고 퀘스트의 다른 어떤 것도 건드리지 않은 그 고정 기능 유닛. 이 집의 유일한 Core ML 사용자는 음성 형제야. WhisperKit을 통해서, Whisper 인코더와 디코더를 뉴럴 엔진이 끼어드는 Core ML 모델로 돌려. 가족 안의 어느 것도 Core ML을 직접 부르지 않고, 어느 것도 애플의 Foundation Models 프레임워크를 쓰지 않아. 그래서 이 레슨은 유닛 자체를 재. Core ML의 중간 언어로 바로 만든 모델로, 그리고 플래너에게 뭘 결정했는지 물어.
일의 모양 둘, 설정 넷
office에서 모델 둘. 컨브 스택, 224픽셀 이미지에 3×3 컨볼루션 여덟 개, 104 GFLOP은 뉴럴 엔진의 본거지 모양이야. 537 MB 행렬에 fp16 행렬-벡터 곱 하나는 언어 모델의 디코드 단계를 축소한 거야. 모든 가중치를 한 번 읽고, 거의 아무것도 안 해. 각각을 네 설정 전부로, 워밍업 뒤 스무 번 돌렸고, 컴퓨트 플랜이 연산마다 프레임워크가 선호한 유닛을 보고했어.
| 모델, office, coremltools 8.1 | CPU만 | CPU+GPU | CPU+NE | ALL(플래너의 선택) | 증거 |
|---|---|---|---|---|---|
| 컨브 스택, 104 GFLOP | 12.9 ms (8.0 TFLOP/s) | 4.65 ms (22.3) — GPU | 6.15 ms (17.0) | 6.12 ms — 뉴럴 엔진, 17개 연산 중 17 | 실측 |
| 행렬-벡터 곱, 537 MB fp16 | 7.6–14.9 ms (36–71 GB/s) | 1.71 ms (314 GB/s) — GPU | 30.2 ms (17.8 GB/s) | 30.7 ms — 뉴럴 엔진 | 실측 |
| 행렬-벡터 곱, 134 MB fp16 | 2.15 ms | 2.18 ms — CPU | 2.56 ms | 2.10 ms — 뉴럴 엔진 | 실측 |
| 행렬-벡터 곱, 34 MB fp16 | 0.65 ms | 0.66 ms — CPU | 0.62 ms | 0.63 ms — CPU | 실측 |
컨브 행부터 읽어. 뉴럴 엔진은 이미지를 17 TFLOP/s로 돌려. 80코어 GPU의 4분의 3 넘게, 크기는 그 몇 분의 일인 유닛에서. CPU 트랙의 고정 기능 논증을 숫자로 한 거야. 이제 537 MB 행. 같은 유닛이 언어 모델의 가중치를 17.8 GB/s로 읽어. 같은 바이트에 GPU보다 열여덟 배 느리고, 풀의 819의 2퍼센트. 그리고 기본 설정에서 플래너는 그래도 그걸 골랐고, 로드할 때마다 거기 맞춰 컴파일하느라 24초를 썼어. 애플은 2022년에 이걸 적어 뒀어. 트랜스포머를 그 유닛에 배포하는 글에서. "시퀀스 길이가 비교적 짧을 때 많은 트랜스포머 구성이 ANE에서 대역폭에 묶인다 … 큰 파라미터 텐서를 메모리에서 가져와서 너무 적은 입력에만 적용하기 때문." 유닛 쪽에서 본 디코드 상한이야.
애플은 뭘 어디서 돌리나
애플 자체의 답 둘이 표와 일치해. 맥의 8B 모델엔 Core ML 글이 조용한 부분을 대놓고 말해. "Llama-3.1-8B-Instruct 같은 모델은 보통 메모리 대역폭에 묶이고, GPU가 이 장치에서 연산 FLOPS와 메모리 대역폭의 최선의 조합을 주기 때문에 GPU를 특정해서 겨냥한다." 그리고 M1 Max에서 4비트 빌드에 초당 33토큰쯤을 보고해. 400 GB/s에 4.2 GB면 그 칩 상한의 35%고, 실험의 MLX 사다리가 9B와 27B로 모든 맥에서 넘긴 비율이야. 30억 파라미터쯤의 온디바이스 파운데이션 모델엔 애플이 "우리 뉴럴 엔진에서의 효율적인 KV 캐시 갱신"을 서술하고, iPhone 15 Pro에서 "토큰 추측 기법을 쓰기 전에" 초당 30토큰. 좁은 문에 맞춰 크기를 잡고 배치한 모델, 버스보다 문의 에너지 비용이 더 중요한 장치에서. 큰 모델은 GPU로, 작은 것 하나는 뉴럴 엔진으로, 그 위에 추측. 벤더의 분할이 물리 트랙의 분할과 맞고, Ollama 레슨의 요령이 애플의 문장에도 나타나.