2 minute read

내 방구석 책상 밑에서 묵묵히 일하던 맥미니 M2가 하드웨어 부품 하나 안 바꿨는데 4배 빨라졌단다… (이게 무슨 연금술인가 싶다)

r/LocalLLM을 눈팅하다가 커피를 뿜을 뻔한 제목을 봤다. 원래 최신 M3/M4 이상 칩에서만 돌아가던 고속 추론 엔진 Splash를, 구형 M1/M2 맥에서도 돌아가게 마개조한 커뮤니티 포트가 떴다는 소식이었다.

어떤 실력자가 애플 Metal 셰이더 커널 코드를 바닥부터 다시 뜯어고쳐서 구형 실리콘에 이식해 버렸단다(진짜 전 세계 긱들의 집착은 알아줘야 한다).

더 충격적인 건 그 뒤에 달린 실측 벤치마크 리포트였다. Qwen 3.8-27B 모델 기준으로 디코드(Decode) 속도가 기존 대비 평균 2~4배 폭등했다. 코드 생성 작업에서 무려 61 tok/s, 4-way 병렬 처리에서도 62 tok/s를 유지했단다. 심지어 양자화 품질 손실도 0.

M1/M2 맥미니에서 27B짜리 고지능 모델이 체감상 M3 Ultra급 속도로 날아다닌다는 소리니, 나처럼 구형 실리콘 안고 사는 맥 유저들에겐 그야말로 자고 일어났더니 공짜 하드웨어 업그레이드를 선물받은 셈이다.

메모리 대역폭을 소프트웨어로 뚫다

애플 실리콘에서 로컬 LLM을 돌릴 때 목을 쥐고 흔드는 병목은 CPU나 GPU 연산력이 아니라 통합 메모리 대역폭(Memory Bandwidth)이다(iOS 개발자라면 뼈저리게 아는 물리 법칙이다).

토큰 하나를 뱉어낼 때마다 수십 기가바이트에 달하는 모델 가중치를 메모리에서 GPU 코어로 싹 긁어와야 한다. 이 메모리 빨아들이는 속도가 곧 디코드 속도의 물리적 한계선이다. 그런데 M1과 M2 일반 칩은 M3 Pro/Max나 최신 칩에 비해 메모리 버스가 좁다. 하드웨어 스펙에 박힌 거라 돈 주고 맥을 새로 사지 않는 한 절대로 못 뚫는 벽인 줄 알았다.

하지만 Splash 엔진의 접근법은 차원이 달랐다. 대역폭 자체를 넓힐 순 없으니, 커널 레벨에서 메모리 접근 패턴과 캐시 적중률(Cache locality) 자체를 재설계해 버린 거다. 공식 Splash 엔진이 최신 M3 이상의 아키텍처 특성에 맞춰져 있던 걸, Metal 셰이더 코드를 한 줄 한 줄 뜯어서 M1/M2의 하드웨어 파이프라인에 최적화되도록 다시 짰다.

그 결과가 이거다. 똑같은 칩, 똑같은 램에서 소프트웨어 커널만 갈아 끼웠을 뿐인데 2~4배 가속. 돈 한 푼 안 들이고 이뤄낸 소프트웨어 엔지니어링의 승리다.

현재 MoE(Mixture of Experts) 아키텍처용 커널도 작업 중이라는데, 그것까지 나오면 진짜 어떤 괴물 같은 성능이 나올지 기대돼서 손이 떨린다.

“그래서 뭐가 달라지는데”

개인적으로 이런 류의 소식을 접할 때마다 가슴이 뛴다. 하드웨어의 물리적 한계를 집요한 소프트웨어 최적화로 뚫어버리는 순간들이야말로 로컬 LLM 생태계를 만들어온 진짜 원동력이기 때문이다. llama.cpp가 처음 세상에 나왔을 때도 그랬고, 4비트 양자화로 VRAM 절벽을 넘었을 때도 그랬다.

이번 포트가 우리 같은 엔지니어들에게 주는 의미는 명확하다:

첫째, 중고 맥미니가 가성비 최강의 로컬 AI 서버로 부활했다. 당근이나 중고 장터에서 40~50만 원이면 구하는 M1/M2 맥미니로 27B 모델을 60 tok/s로 뿜어낼 수 있다면? 전성비와 가성비 계산기가 완전히 뒤집힌다.

둘째, “칩의 한계까지 짜내기” 흐름의 정점이다. 공교롭게도 같은 날 r/LocalLLM에 Qwen 3.8 27B를 애플 뉴럴 엔진(ANE)에서 고작 7W 전력으로 돌리는 전용 엔진 소식도 함께 올라왔다. GPU도 안 쓰고 7W짜리 ANE로 롱 컨텍스트를 돌려버린다니.

빅테크 클라우드 서비스들이 구독료 올리고 사용량 한도 쪼아댈 때, 로컬 진영은 “주어진 하드웨어의 영혼까지 털어 쓰기”로 맞불을 놓고 있다. 하드웨어를 새로 살 돈이 없으면 소프트웨어를 깎아서 뚫어버리는 긱들의 저력이다.

돌려보기 전에

물론 당장 샴페인을 터뜨리기 전에 짚고 넘어가야 할 점은 있다.

벤치마크 61 tok/s는 특정 프롬프트와 코드 생성 조건에서 뽑아낸 수치다. 내 실제 프로젝트 워크로드나 10만 토큰이 넘어가는 롱 컨텍스트 에이전트 작업에서도 똑같이 60 tok/s가 유지된다는 보장은 없다. 프리필과 디코드의 편차도 따져봐야 하고.

하지만 엔진 소스코드와 가중치가 전부 깃허브에 풀려 있는 지금, M1/M2 맥을 책상 위에 둔 사람이라면 오늘 밤 git clone을 참을 이유가 전혀 없다(이건 못 참지). 내 맥미니 M2도 오늘 밤엔 야근 확정이다.

로컬 AI를 굴리는 진짜 묘미는 최신 하드웨어를 돈으로 도배하는 게 아니다. 내 손에 쥐어진 기계의 한계를 끝까지 쥐어짜며 즐기는 이 변태 같은(?) 희열. 오늘도 오픈소스 커뮤니티 덕분에 맥미니 팬 돌아가는 소리가 감미롭게 느껴질 것 같다.