RTX 3060 12GB + 16GB RAM에서 Qwen 3.8 Flash Next를 초당 21토큰으로 구동 (가지치기 없음, 100% 비트 일치)
Qwen 3.8 Flash Next-GSQ-RCO-IQ2_XS at ~21 tok/s on just an RTX 3060 12GB + 16GB DDR4 RAM(No gate pruning, 100% bit-exact)
핵심 요약
llama.cpp에 MoE 직접 I/O 기능을 구현하여 저사양 환경에서도 모델 품질 저하 없이 10배 이상의 속도 향상을 달성함.
- 성능 최적화 — MoE 모델의 전문가 가지치기 없이 직접 I/O 및 프리페칭 기술로 속도 개선함.
- 하드웨어 제약 — 16GB RAM 환경에서 발생하는 페이지 폴트 문제를 해결하여 20+ tok/s 달성함.
- 기술적 과제 — 초기 구동 속도와 프롬프트 처리 속도 등 여전히 개선할 부분이 남아있음.
- 비트 일치 — 기존 llama.cpp와 비교해 출력 결과의 품질 손실 없이 동일한 결과값을 보장함.
(스크린샷 보고 판단하지 마라, 캐시가 차갑게 식어있는 상태다. 캐시가 데워지면 24+ tok/s까지 나온다!)
한 두 달 전쯤, 다음 토큰에 어떤 MoE 전문가가 쓰일지 예측하는 게 CPU/GPU 오프로딩 속도 높이는 데 도움이 될지 여기다 물어본 적이 있다.
[원문: MoE 전문가 예측으로 CPU/GPU 오프로드 속도 높이기 시도] https://www.reddit.com/r/LocalLLaMA/comments/1uybm8y/tried_predicting_which_moe_experts_get_used_next/
음, 일단 고백부터 하나 하자. 사실 그 프로젝트는 얼마 안 가서 때려치웠다.
이유가 뭐냐고? 그때 뽑아낸 속도가 좀 가짜였거든. 내 엔진이 라우터 가중치를 기반으로 전문가들을 존나 공격적으로 쳐내고 있었던 거다. 성능 좀 뽑으려고 안 쓰는 전문가들을 그냥 날려버린 거지. 물론 수치는 그럴싸해 보였지만, 이미 양자화된 모델에서 그런 짓을 하니까 출력 품질이랑 문맥이 개판이 나더라.
그딴 식의 트레이드오프는 딱 질색이라 그냥 포기하고 공개도 안 했다.
그러다 최근에 Qwen 3.8 Flash Next(125B MoE, 512 전문가, top-10 라우팅)가 튀어나왔다.
68GB짜리 GSQ-RCO IQ2_XS 빌드를 받아서 내 메인 컴퓨터에 돌려보려고 했다. 그때 이 아이디어를 다시 꺼내기로 마음먹었다. 이번엔 꼼수 안 쓰고 제대로 해보기로 했지.
내 사양
-
GPU: RTX 3060 12GB
-
RAM: 16GB DDR4, 싱글 채널 (~19 GB/s 대역폭)
-
OS: CachyOS / Arch Linux
-
스토리지: 중급형 NVMe SSD (~2.1 GB/s 읽기 속도)
-
소프트웨어: llama.cpp, CUDA 빌드
68GB짜리 MoE 모델을 16GB 램 달린 컴퓨터에서 순정 llama.cpp로 돌려본 적 있다면, 이게 얼마나 고통스러운지 잘 알 거다.
1.4–2.1 tok/s 정도 나오는데, 어떤 실행에선 토큰 하나당 1,500번 넘게 메이저 페이지 폴트가 터진다. 램이 모자라서 리눅스가 SSD에서 모델 데이터를 계속 긁어오느라 난리가 나는 거다.
그러다 Strata 같은 엔진들이 소비자용 하드웨어에서 40 tok/s 정도 나온다고 광고하기 시작했다. 꽤 인상적이긴 한데, 램 적은 사람들한테는 함정이 있다. 이런 방식 중 일부는 mlock을 써서 전문가 데이터 24GiB 정도를 램에 박아둬야 하거든. 램이 16GB밖에 없으면 당연히 못 하는 짓이지. 설정에 따라 OOM(메모리 부족)이 터지거나 성능이 개판이 된다.

