AI·Tech

맥북 AI 추론 속도 5배 높이는 기술 등장 - 웹어셈블리+Metal 제로카피 실험

Pacomme 2026. 4. 27. 15:07

맥북 AI 추론 속도 5배 높이는 기술 등장 - 웹어셈블리+Metal 제로카피 실험

맥북이나 맥 스튜디오에서 로컬 AI를 돌려본 적 있으신가요? 그렇다면 이 이야기가 꽤 흥미로울 거예요.

최근 한 개발자가 애플 실리콘에서 WebAssembly(웹어셈블리)와 GPU가 메모리를 직접 공유하는 기술을 구현하는 데 성공했어요. AI 대화 문맥(컨텍스트)을 저장했다가 복원하는 속도가 5.45배 빨라졌고, 대화 상태를 파일로 저장해 다른 기기로 이전하는 것도 가능해졌거든요.

핵심만 먼저 (TL;DR)

  • 애플 실리콘의 통합 메모리(UMA) 덕분에 WebAssembly ↔ GPU 데이터 복사가 불필요해짐
  • KV 캐시(AI 대화 문맥) 복원이 처음부터 재계산하는 것보다 5.45배 빠름
  • M1 맥북에서 Llama 3.2 1B 모델 토큰당 약 9ms 추론 달성
  • AI 대화 상태를 파일로 저장해 다른 기기로 옮기는 '포터블 추론' 가능성 열림

1. 문제: WebAssembly와 GPU는 원래 서로 못 봐요

이 기술을 이해하려면 먼저 왜 어려운지를 알아야 해요.

WebAssembly(이하 Wasm)는 격리된 샌드박스 환경이에요. 보안을 위해 코드가 외부 메모리를 직접 건드릴 수 없도록 막혀 있죠. 반면 GPU는 DMA 접근이 가능한 특수 메모리가 필요해요.

일반 PC(엔비디아, AMD 그래픽카드)라면 데이터를 CPU 메모리에서 꺼내 PCIe 버스를 통해 GPU 메모리로 복사해야 해요. 두 번의 복사, 두 번의 레이턴시 히트.

애플 실리콘은 달라요. CPU와 GPU가 같은 물리 메모리(DRAM)를 공유해요. 버스 자체가 없어요. 그래서 "같은 포인터를 CPU도 읽고, GPU도 읽는다"는 게 이론적으로 가능해요.

이 개발자는 그 이론을 실제로 작동하게 만들었어요.


2. 세 개의 연결고리

구현은 세 단계로 이루어졌어요.

Link 1. mmap으로 정렬된 메모리 확보
ARM64 맥OS에서 mmap을 호출하면 16KB 정렬된 주소를 반환해요. Metal(애플 GPU API)이 요구하는 조건이기도 해요.

Link 2. Metal이 그 포인터를 복사 없이 수락
MTLDevice.makeBuffer(bytesNoCopy:) API를 쓰면 기존 포인터를 Metal 버퍼로 감쌀 수 있어요. 애플 실리콘에서 이건 진짜 제로카피예요. 검증 결과 메모리 오버헤드가 0.03MB(측정 노이즈 수준)였고, 명시적 복사 시의 16.78MB와 극명한 차이를 보였어요.

Link 3. Wasmtime이 커스텀 메모리 할당을 허용
Wasmtime의 MemoryCreator 트레이트를 구현하면 Wasm 모듈이 사용할 선형 메모리를 직접 제공할 수 있어요. 위에서 만든 mmap 영역을 Wasm 메모리로도, Metal 버퍼로도 동시에 등록할 수 있게 됐어요.

이 세 개가 연결되면: Wasm 모듈이 데이터를 쓰면 GPU가 바로 읽을 수 있어요. 복사 없이요.


3. 실측 결과

M1 맥북 프로(2021)에서 Llama 3.2 1B 모델(4비트 양자화, 695MB)로 측정했어요.

  • 모델 로드: 229ms (최초 1회)
  • 프리필(5 토큰): 106ms
  • 토큰 생성: 약 9ms/토큰
  • Wasm ↔ GPU 경계 오버헤드: 측정 불가 수준

그리고 가장 흥미로운 부분 — KV 캐시 복원이에요. KV 캐시란 트랜스포머 모델이 이전 대화를 기억하는 방식이에요. 대화가 길어질수록 재계산이 점점 비싸지거든요.

  • KV 캐시 직렬화 (24 토큰): 1.1ms
  • KV 캐시 복원: 1.4ms
  • 처음부터 재계산: 67.7ms → 5.45배 빠름

컨텍스트가 길어질수록 복원 시간은 거의 일정한 반면 재계산은 선형 증가해요. 4,096 토큰이면 약 100배 빠를 것으로 추정돼요(아직 실험 전이라고 해요).


한국 개발자 관점

맥북이나 맥 미니에서 로컬 LLM을 돌리는 분들이 많아졌는데, 이 기술이 열어주는 가능성이 있어요.

대화 상태를 파일로 저장해 다른 기기로 가져가는 게 가능해져요. 서버에 의존하지 않고 온디바이스 AI를 운영하면서도 긴 컨텍스트를 유지할 수 있고요. 마치 게임 세이브 파일처럼 AI 대화를 "저장했다가 나중에 이어서" 하는 게 현실화되는 거예요.

다만 아직 개인 개발자의 초기 실험 수준이에요. "Driftwood"라는 이름의 런타임으로 계속 개발 중이라고 하니, 오픈소스로 공개될 경우 주목해볼 만한 프로젝트예요.


마치며

애플 실리콘의 통합 메모리가 AI 추론 분야에서 또 하나의 흥미로운 가능성을 열었어요. 솔직히 KV 캐시 이전 부분이 제일 흥미로웠는데요, 실용화된다면 로컬 AI 사용 방식이 꽤 달라질 거예요.

아직 초기 단계지만, 애플 실리콘 + WebAssembly + 온디바이스 AI의 조합이 어디까지 갈지 궁금해지는 이야기예요.

출처: abacusnoir.com (2026.04.18)