Apple Silicon macOS VM에서 llama.cpp LLM 추론 가속하기

1 hour ago 2

Apple Virtualization.framework의 가상 GPU가 보수적인 Metal 기능을 보고해 llama.cpp가 느린 커널을 선택하던 문제를, 게스트 프로세스 한정 호환성 계층으로 우회해 최대 16.36배 가속함 호환성 계층은 supportsFamily: 응답을 Apple family 9까지 허용하고 최대 threadgroup 메모리를 32KB에서 64KB로 높여 SIMD-group reduction·matrix와 bfloat16 경로를 활성화함 M1 Ultra에서 TinyLlama 1.1B는 프롬프트 처리와 토큰 생성이 각각 11.08배·16.36배 빨라졌고, Gemma 4 12B는 7.20배·14.54배, Muse Glimmer 30B는 7.55배·8.87배 향상됨 물리 GPU 할당이나 VFIO passthrough가 아니라 기존 Apple 가상 GPU 경로의 기능 응답만 바꾸는 방식이며, MLX-LM은 기본 VM에서도 빨라 성능 차이가 거의 없었음 사설 Metal 구현에 의존하는 실험적 연구 릴리스로, M1 Ultra와 지정된 Tahoe 환경만 검증됐으며 Apple Silicon 세대·macOS 버전·Metal API별 추가 검증이 필요함 macOS VM에서 제한되던 Metal 경로 Apple Virtualization.framework는 macOS 게스트에 가상 그래픽 장치를 제공함 게스트는 가상화 인식 GPU 드라이버로 Metal 작업을 제출하고, 호스트의 Apple 스택이 물리 GPU에서 실행함 하드웨어 제어는 호스트가 유지하므로 반가상화(paravirtualization) 방식임 x86 Linux의 VFIO가 IOMMU를 통해 물리 PCI 장치나 하드웨어 기능을 VM에 직접 할당하는 일반적인 GPU passthrough와는 구조가 다름 기본 Tahoe VM의 가상 장치는 대략 Apple family 5, 최대 threadgroup 메모리 32KB, SIMD-group matrix 미지원으로 보고함 최신 Metal 애플리케이션은 런타임 기능 응답에 따라 커널을 선택하므로 llama.cpp가 느린 경로를 사용함 Apple도 GPU family와 기능 표 및 런타임 장치 질의를 사용하도록 안내함 같은 기능 격차는 다른 Virtualization.framework 프런트엔드에서도 나타났으며, Tart에는 그래픽과 LLM 성능을 다루는 “No GPU passthrough in macOS gues...

Read Entire Article