GeekNews
Apple Silicon macOS VM에서 llama.cpp 추론 16배 가속하는 법
한마디로
macOS 가상머신이 GPU 기능을 실제보다 낮게 보고하던 문제를 속임수로 풀어서 llama.cpp 속도를 최대 16배까지 끌어올린 거예요
무슨 내용인가
Apple Virtualization.framework의 가상 GPU가 Metal 기능을 실제보다 보수적으로(Apple family 5, threadgroup 메모리 32KB) 보고해서 llama.cpp가 느린 커널을 선택하던 문제를 발견했어요. 게스트 프로세스에만 적용되는 호환성 계층을 dylib 주입으로 삽입해 supportsFamily 응답을 Apple family 9까지 확장하고 threadgroup 메모리를 64KB로 높이니, M1 Ultra에서 TinyLlama 1.1B 토큰 생성이 16.36배, Gemma 4 12B는 14.54배, Muse Glimmer 30B는 8.87배 빨라졌어요. 물리 GPU를 직접 할당하는 VFIO passthrough 방식이 아니라 기존 반가상화 경로의 기능 응답값만 바꾸는 방식이고, MLX-LM은 기본 VM에서도 이미 빨랐기 때문에 적용 전후 차이가 거의 없었어요. 다만 사설 Metal 구현에 의존하는 실험적 연구 릴리스라 M1 Ultra와 특정 Tahoe 환경에서만 검증됐고, 다른 Apple Silicon 세대나 macOS 버전에서는 추가 검증이 필요하다고 밝혔어요.
에디터 노트 | FactStack
가상화 계층이 실제 하드웨어 성능을 보수적으로 보고해서 벌어지는 손실이 16배까지 갈 수 있다는 건 인프라 엔지니어링에서 꽤 무서운 숫자예요. macOS VM에서 CI/CD나 온디바이스 LLM 테스트 파이프라인 돌리는 팀은 지금 성능 벤치마크 자체를 다시 의심해봐야 합니다. 다만 dylib 주입으로 API 응답값을 조작하는 방식이라 macOS 업데이트 한 번에 깨질 수 있는 구조고, M1 Ultra 특정 환경 검증만 있는 실험적 릴리스라 프로덕션에 바로 얹기보다는 사내 R&D 환경에서 재현성부터 확인하는 게 순서예요.
실무 시사점
AI 인프라를 macOS VM 위에서 운영하는 팀이라면 하드웨어 교체 없이 llama.cpp 기반 로컬 추론 성능을 크게 끌어올릴 여지가 있다는 걸 시사합니다
태그
용어 풀이
- llama.cpp
- 대형언어모델을 개인 컴퓨터에서도 돌릴 수 있게 만든 오픈소스 추론 엔진
- Metal
- Apple 기기의 GPU를 직접 다루는 저수준 그래픽, 연산 API
- Apple Silicon
- Apple이 자체 설계한 M시리즈 등 컴퓨터용 프로세서
- Virtualization.framework
- macOS 안에서 또 다른 macOS 가상머신을 돌릴 수 있게 해주는 Apple의 가상화 기술
공유