아이폰을 24GB 맥북의 보조 GPU로 만들었다: Qwen 3.8 27B 프리필 29~44% 가속, 컨텍스트 윈도우 일부도 폰이 담당
원문 제목 — I made my iPhone a second GPU for my 24 GB MacBook: Qwen 3.8 27B prefills 29–44% faster & my holds part of the CTX window.
📄 전문 번역
글쓴이는 휴대폰에 표시되는 프리필 TPS가 폰이 보유한 레이어만 기준으로 계산된 값이며 현재 종단간 프리필 속도를 표시하도록 수정 중이라고 밝히고, 아래 수치는 종단간 프리필 속도 기준으로 정확하다고 설명한다. 24GB M4 Pro 맥북에서 에이전트가 읽는 모든 파일과 도구 결과는 대기 시간이 되고, 유선 한도를 20480으로 올려도 Qwen 3.8 27B(IQ4_XS) 옆에는 8비트 기준 64k 컨텍스트가 한계였다. 주머니에 iPhone 17 Pro Max가 있었던 글쓴이는 이 여분 실리콘을 활용할 방법을 고민했고, 10Gb/s USB-C 케이블과 약간의 소프트웨어만 있으면 충분하다는 것을 알아냈다. 맥은 각 256토큰 배치의 1~40번 레이어를 실행해 활성값을 폰으로 스트리밍하고, 폰은 자체 GPU에서 41~64번 레이어를 돌리는 동안 맥은 다음 배치를 시작한다. A19 Pro의 GPU는 매트릭스 유닛(Metal 4 텐서 연산)을 갖춰 폰이 담당하는 절반의 속도가 이를 쓰지 않을 때보다 2.4배 빨라진다.
동일 빌드에서 폰을 끄고 켠 차이를 저장된 에이전트 세션에 2000토큰 파일을 프리필하는 벤치마크로 측정한 결과, 8k 컨텍스트에서는 맥 단독 132토큰/초에서 맥+아이폰 177토큰/초(+35%)로, 16k에서는 109토큰/초에서 157토큰/초(+44%)로, 32k에서는 101토큰/초에서 130토큰/초(+29%)로, 48k에서는 87토큰/초에서 113토큰/초(+30%)로 향상됐다. 8k 수치는 이틀 전 동일 벤치에서 측정한 값이다. 새로 만든 27k 토큰 에이전트 세션을 콜드 상태에서 실행한 결과는 스톡 llama.cpp에서 245초, 포크를 쓴 맥 단독에서 228초, 폰을 추가하자 168초였다.
64k를 넘으면 폰은 역할을 바꾼다. 가장 오래된 KV 페이지가 폰으로 이동하고 맥은 64개 레이어 전부를 실행하며, 각 어텐션 레이어에서 폰은 자체 GPU로 오래된 키에 대한 어텐션을 계산하고 맥이 이를 자신의 몫과 병합한다. 글쓰기 시에는 폰의 Neural Engine도 작업 일부를 맡아 16k 키 페이지마다 키를 가중치로 하는 Neural Engine 모델로 컴파일하는데, 140k에서 토큰당 글쓰기 시간이 폰 GPU 단독 대비 279ms에서 176ms로 줄었다. 서버는 폰의 여유 메모리에 따라 8비트 컨텍스트 196k~229k를 할당하며, 이는 최대 약 5.7GB의 KV 캐시가 맥 대신 폰에 상주함을 뜻해 맥의 메모리 사용량은 64k에서 증가를 멈춘다. 글쓴이는 8비트로 128k까지 세션을 키우는 테스트에서 심어둔 사실 3개를 모두 회상했고, 별도로 4비트 140k에서는 그리디 출력이 맥 단독 실행과 32개 생성 토큰까지 일치하는 게이트를 통과했다.
이 설정이 하지 않는 것은 64k 미만 글쓰기 가속이며 그것은 맥의 몫이다. 글쓴이의 포크 커널(M4 CPU의 SME2와 Metal 퓨전)에 DFlash2 speculative decoding을 더하면 스톡 llama.cpp의 11.3토큰/초에서 중간 thinking 기준 약 30k 컨텍스트에서 25토큰/초로 오르며 폰 유무와 무관하고, SME2는 맥 단독 프리필에 최대 29%를 더한다. 64k를 넘으면 폰이 오래된 키 어텐션으로 글쓰기를 분담하며, 폰이 없다면 맥은 128k 도달을 위해 4비트 컨텍스트로 내려가야 한다. 실사용에서는 낮은 컨텍스트에서 30TPS 이상을 확인했고, 폰은 약 512토큰이 넘는 프리필에 합류해 한 실제 세션에서 36개 요청 중 7번이었지만 읽은 토큰의 약 83%를 차지했다. 64k 이후 폰은 컨텍스트 보유와 오래된 키 어텐션을 수행하지만 당장은 그 구간에서 41~64번 레이어 실행을 멈춰 뒀으며 둘 다 수행하는 것이 다음 과제이고, 요청은 한 번에 하나씩 처리한다.
글쓴이는 이 설정이 최신 모델 아키텍처와 결합하면 무엇이 가능할지 궁금해하며, DeepSeek V4.1-Flash는 글로벌 KV 캐시에 토큰당 890바이트를 보고하고 n-그램 임베딩 테이블(Engram)을 추가했고 Qwen 4 아키텍처 프리뷰인 Qwen3.8-Flash-Next에도 n-그램 룩업 테이블이 있다고 소개한다. 다만 이는 테스트한 27B 모델의 기능이 아니며 두 아키텍처를 여기서 벤치마크한 적은 없다. 진짜 가치는 최신 폰과 모델이 함께 작동할 때 나온다는 것이 글쓴이의 판단으로, iPhone 18 Pro Max의 A20 Pro에서는 밀어붙일 여지가 훨씬 많을 것이라 내다봤다. 코드와 설정, 벤치 스크립트는 GitHub의 StayLameBro/backburner 저장소에 공개했으며, 아직 할 일이 많지만 Opus 5.5로 만들었다고 밝히고 질문에 답하겠다고 덧붙였다.
💬 주요 댓글 번역 (4)
🔍 루키 분석
24GB M4 Pro 맥북에서 Qwen 3.8 27B(IQ4_XS)를 구동하는 사용자가 10Gb/s USB-C 케이블로 연결한 iPhone 17 Pro Max의 A19 Pro GPU를 레이어 분할 연산과 64k 이후 KV 캐시 오프로드에 활용해 프리필을 최대 44% 가속한 사용자 제작 프로젝트다. 폰이 최대 약 5.7GB의 KV 캐시를 대신 보유해 8비트 기준 128k 컨텍스트 세션까지 검증했으며, 64k 미만 디코딩 가속은 맥 측 SME2 커널과 DFlash2 speculative decoding이 담당한다. 글쓴이는 코드와 벤치 스크립트를 GitHub에 공개했고 iPhone 18 Pro Max의 A20 Pro를 다음 실험 대상으로 꼽았다.
— 루키 · glm-5.3-flash:cloud
이제 시작이다. 글쓴이 덕분에 휴대폰 가격이 천정부지로 치솟겠군
속보: OpenAI와 Anthropic가 지금 수만 대의 아이폰을 사들이고 있습니다
PS6가 AI 대응 하드웨어를 낭비하고 있다는 이유로 PlayStation을 상대로 소송을 걸어도 전혀 놀라지 않겠다. PS6는 24~30GB GDDR7로 알려져 있다. Xbox는 Windows를 탑재할 예정이라 아마 이 커뮤니티에서 인기가 많을 것이다.
난 그저 더 빠른 추론을 더 많은 사람이 쓸 수 있게 하려던 것뿐이야 :p