TECH 으로 돌아가기
TECH HACKER NEWS 오늘 6분 읽기 37 READS

맥 가상머신 안에서 GPU로 LLM 돌리기: llama.cpp와 macOS VM의 반전

맥 가상머신 안에서 GPU로 LLM 돌리기: llama.cpp와 macOS VM의 반전
SOURCE IMAGE · HACKER NEWS

맥에서 로컬 LLM 돌리는 분들, 주목할 소식이에요

애플 실리콘 맥은 로컬 LLM 머신으로 인기가 많아요. 비결은 통합 메모리(unified memory)인데요, 이게 뭐냐면 CPU와 GPU가 하나의 메모리를 같이 쓰는 구조예요. 일반 PC에서는 그래픽카드의 VRAM 용량이 모델 크기를 제한하는데, 맥은 시스템 메모리가 곧 GPU 메모리라서 램 64GB 맥이면 꽤 큰 모델도 올릴 수 있거든요. 그래서 llama.cpp나 Ollama로 로컬 모델을 돌리는 맥 사용자가 많죠.

그런데 한 가지 아쉬운 점이 있었어요. '가상머신 안에서' 모델을 돌리려고 하면 GPU를 제대로 못 써서 CPU로만 느리게 돌아간다는 거였어요. 이번에 컴퓨터 유즈 에이전트용 샌드박스를 만드는 오픈소스 프로젝트 cua 팀이, macOS 가상머신 안에서 GPU 가속으로 llama.cpp를 돌리는 방법과 벤치마크를 정리해 공개했어요.

어떻게 가능한 거냐면

핵심은 애플이 제공하는 Virtualization.framework예요. 맥에서 macOS나 리눅스 가상머신을 만들 수 있게 해주는 공식 프레임워크인데, 여기에 '반가상화 그래픽(paravirtualized graphics)'이라는 장치가 들어 있어요. 반가상화가 뭐냐면 이래요. 전통적인 가상화는 VM이 진짜 하드웨어인 척 통째로 흉내를 내느라 오버헤드가 커요. 반면 반가상화는 게스트 OS가 '나 지금 VM 안에 있구나'를 알고, 그래픽 작업을 호스트의 진짜 GPU에 효율적인 통로로 바로 넘겨주는 방식이에요. 흉내 내는 비용이 확 줄어드는 거죠.

덕분에 macOS 게스트 안에서도 Metal API가 동작하고, llama.cpp의 Metal 백엔드가 그대로 굴러가요. 벤치마크를 보면 VM 안에서의 토큰 생성 속도가 호스트에서 직접 돌릴 때와 거의 차이가 없고, 흥미롭게도 조건에 따라서는 오히려 VM 쪽이 더 빠른 수치가 나오기도 했다고 해요. '가상화 = 느리다'는 통념이 깨지는 지점이라 재미있는 부분이에요.

그런데 왜 굳이 VM에서 돌리고 싶은 걸까요

좋은 질문이죠. 핵심은 격리(isolation)예요. 요즘 화면을 보고 클릭하고 명령어를 실행하는 '컴퓨터 유즈 에이전트'가 뜨고 있잖아요. 이런 에이전트를 내 맥에서 직접 돌리면, AI가 실수로 파일을 지우거나 이상한 설정을 건드릴 위험을 그대로 떠안게 돼요. 반면 VM 안에서 돌리면 에이전트가 무슨 짓을 해도 피해가 VM 안에 갇히고, 스냅샷으로 언제든 깨끗한 상태로 되돌릴 수 있어요. 문제는 지금까지 'VM에 넣으면 GPU를 못 써서 로컬 모델이 너무 느리다'는 트레이드오프가 있었다는 건데, 이번 결과는 그 트레이드오프가 사실상 사라졌다는 걸 보여준 거예요. 안전한 샌드박스와 빠른 로컬 추론을 동시에 가질 수 있게 된 거죠.

다른 방법들과 비교하면

맥에서 격리 환경을 만드는 다른 선택지들과 비교해볼게요. 가장 흔한 Docker는 macOS에서 내부적으로 리눅스 VM을 거치기 때문에 Metal에 접근할 수 없어서, 컨테이너 안에서 GPU 가속 LLM을 돌리는 게 불가능해요. CI 쪽에서 많이 쓰는 Tart 같은 macOS 가상화 도구들도 같은 Virtualization.framework 위에 있고요. 결국 현재로선 'macOS VM + 반가상화 GPU' 조합이 맥에서 격리와 GPU 가속을 동시에 잡는 가장 현실적인 방법이에요. 참고로 애플 라이선스상 macOS 가상머신은 애플 하드웨어 위에서 동시에 2대까지만 돌릴 수 있다는 제약은 알아두시면 좋아요.

직접 해보고 싶다면

M 시리즈 맥을 갖고 계시면 바로 시도해볼 수 있어요. VM에도 메모리를 넉넉히 할당해야 하니 램 16GB 이상을 권하고, 모델은 양자화된 소형 모델부터 시작하는 게 좋아요. 활용처는 생각보다 다양해요. 에이전트 실험용 샌드박스는 물론이고, 회사 보안 정책 때문에 호스트 환경을 못 건드리는 상황에서 실험 환경을 격리한다든지, macOS 앱을 여러 OS 버전에서 테스트하면서 로컬 모델까지 함께 돌린다든지 하는 식으로요.

마무리

한 줄로 정리하면, 맥에서 '안전한 격리'와 'GPU 가속 로컬 LLM'을 더 이상 맞바꾸지 않아도 된다는 소식이에요. 여러분은 로컬 LLM을 어떤 환경에서 돌리고 계세요? 그리고 에이전트에게 컴퓨터를 통째로 맡기는 시대, 샌드박스는 어디까지 필요하다고 보시나요?


🔗 출처: Hacker News

SOURCE · HACKER NEWS
원문 전체 보기 → https://github.com/trycua/cua/blob/main/blog/gpu-passthrough...
SHARE
처리 중...