M 시리즈 칩을 쓰는 맥북으로 로컬 LLM을 돌려본 사람이라면 한 번쯤 이런 의문을 가졌을 것이다. GPU 전용 메모리, 이른바 VRAM이 없는데 어떻게 70억~700억 파라미터짜리 모델이 돌아가는 걸까.
기존 PC에서 VRAM이 따로 존재하는 이유
일반적인 데스크톱 PC 구조를 먼저 이해해야 한다. 인텔·AMD CPU와 엔비디아·AMD GPU가 따로 존재하는 환경에서는 시스템 메모리(DDR5 RAM)와 그래픽 전용 메모리(GDDR6, GDDR6X 등)가 물리적으로 완전히 분리되어 있다. CPU는 시스템 RAM에 접근하고, GPU는 자신의 온보드 VRAM에 접근한다. 두 장치가 데이터를 주고받으려면 PCIe 버스를 통해 전송해야 하는데, PCIe 5.0 ×16 기준으로 이론상 64 GB/s 정도의 대역폭이 나온다.
LLM 추론이 왜 이 구조와 잘 맞지 않는지는 숫자를 보면 금방 이해된다. Llama 3 70B 모델을 4비트 양자화해도 가중치만 35~40 GB가 넘는다. RTX 4090의 VRAM이 24 GB에 불과하니, 단일 소비자용 GPU로는 메모리 자체가 부족해서 모델을 올릴 수 없다. 두 장의 GPU를 NVLink로 묶거나, 비싼 데이터센터용 H100(80 GB VRAM)을 써야 해결된다.
설령 VRAM이 충분하더라도 문제가 하나 더 있다. 모델 가중치를 CPU RAM에 올려놓고 필요한 레이어만 GPU로 전송하는 방식을 쓰면 PCIe 병목이 발목을 잡는다. 추론 중에 레이어를 계속 왔다 갔다 하게 되면 전송 지연이 누적되어 토큰 생성 속도가 현저하게 떨어진다.
Unified Memory Architecture가 이 등식을 바꾼다
Apple Silicon은 애초에 이 문제를 다른 방식으로 설계했다. M 시리즈 칩의 핵심 철학은 통합 메모리 아키텍처(UMA, Unified Memory Architecture)다. CPU 코어, GPU 코어, Neural Engine(신경망 전용 연산 유닛)이 모두 하나의 메모리 풀을 직접 공유한다. GDDR 같은 별도 그래픽 전용 메모리가 없다. 대신 LPDDR5X 메모리가 SoC(System on a Chip) 패키지 바로 옆에 붙어 있다.
이 구조에서 PCIe라는 개념 자체가 사라진다. CPU에서 GPU로 데이터를 넘길 때 “복사”가 발생하지 않는다. 메모리 어딘가에 있는 데이터를 CPU가 참조하거나 GPU가 참조하거나, 주소만 다를 뿐 물리적 이동이 없다. LLM 추론에서 이 차이가 결정적으로 중요한 이유는, 추론 과정이 본질적으로 가중치 메모리 읽기의 연속이기 때문이다.
메모리 대역폭 수치를 보면 설계 의도가 더 선명하게 드러난다. M4 Pro는 273 GB/s, M4 Max는 546 GB/s의 메모리 대역폭을 제공한다. 비교를 위해 말하자면 RTX 4090의 GDDR6X 대역폭이 약 1 TB/s이긴 하지만, 그 대역폭을 쓰려면 모델 전체가 24 GB VRAM 안에 들어가야 한다는 전제 조건이 붙는다. M4 Max는 최대 128 GB 통합 메모리를 전부 저 대역폭으로 긁어쓸 수 있다.
이미지 출처: Unsplash
추론이 실제로 어떻게 진행되는가
LLM 추론의 흐름을 간략하게 짚어보면 왜 메모리 구조가 병목인지 이해된다. 추론은 크게 세 단계로 나뉜다. 먼저 모델 가중치(weight)를 메모리에 올린다. Llama 3 8B를 4비트 양자화하면 약 4~5 GB, 70B는 약 35~40 GB가 필요하다. 다음으로 입력 토큰을 처리하는 프리필(prefill) 과정에서 KV 캐시(Key-Value Cache)를 생성한다. 이 캐시는 이전 컨텍스트를 기억하기 위한 임시 저장 공간으로, 컨텍스트 길이가 길수록 더 많은 메모리를 차지한다. 마지막으로 실제 토큰을 하나씩 생성하는 디코딩 단계에서는 매 토큰마다 수십억 개의 가중치를 훑으며 다음 토큰을 계산한다.
이 중 디코딩 단계가 가장 메모리 대역폭에 민감하다. 토큰 하나를 생성할 때마다 모델 전체 가중치를 한 번씩 메모리에서 읽어야 하는 구조이기 때문이다. 즉, 토큰 생성 속도(tokens/sec)의 상한선은 사실상 메모리 대역폭으로 결정된다. Apple Silicon에서 M4 Max가 M4 Pro보다 LLM 추론에서 확실히 빠른 이유가 바로 여기에 있다. GPU 코어 수 차이도 있지만, 273 GB/s 대 546 GB/s라는 대역폭 두 배 차이가 tokens/sec에 거의 직접적으로 반영된다.
흥미로운 건 이 구조가 소비자용 하드웨어 중에서 꽤 독특한 포지션에 있다는 점이다. 엔비디아 RTX 5090이 나오더라도 VRAM 용량이 32 GB 수준이라면 70B 모델은 여전히 올리기 어렵다. 반면 M4 Max 128 GB 구성의 맥북 프로는 70B 모델을 양자화 없이도 적재할 수 있고, 4비트 양자화 기준으로는 여유 메모리가 많이 남아 긴 컨텍스트 처리에도 유리하다.
한계 역시 메모리 대역폭에서 온다
그렇다고 Apple Silicon이 로컬 LLM의 만능 해법은 아니다. 앞서 말한 것처럼 tokens/sec의 상한이 메모리 대역폭에 묶여 있다는 점은 양날의 검이다. 엔비디아 H100은 3.35 TB/s의 HBM3 대역폭을 갖고 있다. M4 Max의 546 GB/s와 비교하면 여섯 배 이상의 격차다. 같은 모델을 구동할 때 H100이 M4 Max보다 훨씬 빠른 이유가 여기에 있다.
또한 Neural Engine은 모든 LLM 추론 프레임워크에서 동일하게 활용되지는 않는다. llama.cpp의 Metal 백엔드나 MLX 프레임워크는 Apple Silicon GPU를 적극적으로 쓰지만, Neural Engine 활용도는 프레임워크마다 다르다. Apple 자체 Core ML 파이프라인을 거치면 Neural Engine을 쓸 수 있지만, 범용 LLM 추론에서는 여전히 GPU 경로가 주력이다.
결국 Apple Silicon이 로컬 LLM에서 경쟁력을 갖는 핵심 이유는 성능 절대값이 아니라 “큰 모델을 노트북에서 돌릴 수 있다”는 접근성에 있다. M4 Max 맥북 프로 한 대로 Llama 3 70B나 Mistral 등 오픈소스 주력 모델들을 로컬에서 구동할 수 있다는 것 자체가, VRAM 24 GB짜리 데스크톱 GPU로는 얻기 어려운 경험이다. 로컬 LLM 생태계가 빠르게 성숙해가면서 Apple Silicon 플랫폼을 직접 타깃으로 최적화된 프레임워크(MLX, llama.cpp Metal 백엔드 등)가 늘어나고 있다는 점을 보면, 당분간 이 포지션은 더 강화될 가능성이 높다.
출처
- Apple M4 chip family technical overview (Apple)
- llama.cpp Metal backend documentation (GitHub)
- MLX: An array framework for Apple silicon (Apple ML Research)
- Unified Memory Architecture: How Apple Silicon Handles AI Workloads (Ars Technica)
- LLM inference on Apple Silicon — memory bandwidth and token throughput analysis (Hugging Face Blog)