Betelgeuse: RTX 3060 12GB + 16GB RAM에서 Qwen 3.8 Flash Next를 22 tok/s로 구동 (최대 48 tok/s)
Betelgeuse: Running Qwen 3.8 Flash Next at 22 tok/s sustained (spiking to 48 tok/s) on an RTX 3060 12GB + 16GB DDR4 RAM 100% bit-exact!
핵심 요약
저사양 PC에서 MoE 모델을 전문가 손실 없이 고속으로 구동하는 새로운 엔진 Betelgeuse를 개발했습니다.
- Betelgeuse 엔진 — 전문가 손실 없는 100% 비트 일치 MoE 추론 구현
- 성능 최적화 — VRAM 슬롯 풀과 CUDA 그래프 리플레이로 22 tok/s 달성
- 메모리 관리 — RAM Victim Cache와 io_uring을 통한 SSD 읽기 최소화
- 확장성 — 190GB 규모의 Q8_K_XL 양자화 모델도 저사양 환경에서 구동 가능

한 두 달 전쯤에 Qwen 3.6 35B 모델에서 CPU/GPU 오프로드를 가속하려고 다음 토큰에 어떤 MoE 전문가(expert)가 쓰일지 예측하는 글을 여기 올렸었지.
본론 들어가기 전에 옛날 글에 대해 고백 하나 하자면, 그 프로토타입은 결국 갖다 버렸어. 그때 봤던 엄청난 수치들은 사실 게이트 프루닝(라우터 가중치가 낮을 때 비활성 전문가를 날려버리는 짓)으로 사기 친 거였거든. 토큰 속도(tok/s)는 미친 듯이 올라갔지만, 안 그래도 낮은 비트 양자화 모델에서 출력 품질이랑 추론 능력이 조용히 박살 나더라고. 스크린샷 찍어서 속도 빠른 척하려고 모델을 뇌엽절제술 시키는 짓은 하기 싫어서 그냥 폐기했어.
이번에 Qwen 3.8 Flash Next가 나오길래, 일반적인 가성비 게이밍 PC에서 전문가 하나도 안 날리고 68GB짜리 GSQ-RCO-IQ2_XS 빌드를 실제로 쓸만한 속도로 돌릴 수 있는지 확인해보고 싶었어.
참고로 테스트한 PC 사양은 이거야 (일반적인 16GB PC 환경을 테스트하려고 일부러 램을 뺐어):
-
GPU: RTX 3060 12GB
-
RAM: 16GB DDR4, 싱글 채널 (~19 GB/s)
-
OS: CachyOS / Arch Linux (엄격하게
MemoryMax=12Gcgroup 설정함) -
Storage: 일반 소비자용 PCIe NVMe SSD (~2.1 GB/s)
기본 llama.cpp에서 12GB VRAM + 16GB RAM으로 68GB짜리 MoE를 돌리려고 하면 결과는 뻔하지. mmap이 OS 페이지 캐시를 미친 듯이 긁어대면서 토큰당 메이저 페이지 폴트가 1,500번씩 터지고, 생성 속도는 1.47 tok/s까지 기어 다녀.
그다음엔 Strata를 테스트해 봤어. Strata는 진짜 물건이라 램이 48GB~64GB 정도 있어서 전문가 24GB 이상을 mlock으로 박아둘 수 있으면 40+ tok/s가 나오거든. 근데 16GB 램 환경에서는 --low-ram mmap을 강제로 안 쓰면 아예 로드조차 안 되고, 그걸 써도 느린 SSD 읽기 속도 때문에 8.11 tok/s까지 떨어지더라.
그래서 지난 일주일 동안 Betelgeuse( / , 포크 버전이고, 어차피 머지 안 될 거 알지만 일단 깔끔하게 업스트림 PR도 날려놨음 ㅋㅋ)를 만들었어.

