본문으로 건너뛰기
CoderRed Blog

Article

Strata 실측 - RTX 3060 12GB로 Qwen3.8-Flash-Next를 돌려봤습니다

제 PC에는 RTX 3090 24GB와 RTX 3060 12GB가 함께 있습니다. 이번에는 3060으로 Qwen3.8-Flash-Next를 실행해 봤습니다. Strata로 실행한 IQ3_XXS 모델은 이미 설치해 둔 것으로, GGUF 파일 두 개를 합하면 약 75.84GB입니다.

“이 크기의 모델이 12GB 그래픽카드에서 돌아간다고?”

저는 이 점이 재미있었습니다. Strata는 그래픽카드와 함께 CPU, 시스템 RAM, SSD를 써서 큰 모델을 PC 전체에 나눠 놓고, 토큰을 만드는 데 필요한 부분을 계산합니다.

실제로 얼마나 기다려야 할지도 궁금했습니다. Strata를 최신 0.2.12로 업데이트한 뒤, 기존 모델은 그대로 두고 공식 벤치마크를 실행했습니다.

측정에 쓴 3060에는 gpu-unlock 1.0.0이 적용되어 있습니다.

입력 길이별로 이 정도 속도가 나왔습니다

Strata 0.2.12에서 기존 IQ3_XXS 모델을 실행한 결과입니다. 입력 길이별로 3회씩 측정했고, 표에는 중앙값을 적었습니다. 출력 속도 옆 괄호는 최저~최고 값입니다.

입력입력 처리 · tok/s출력 · tok/s512토큰 상한 도달
짧은 입력 · 77토큰—56.91 (50.34~61.90)1/3회
4K · 4,093토큰1,010.1251.60 (50.12~58.29)3/3회
16K · 16,387토큰1,228.5949.10 (49.10~62.02)3/3회

짧은 입력은 요청 시작에 드는 고정 시간의 비중이 커서 입력 처리 속도를 생략했습니다. 출력 토큰에는 추론과 최종 답변이 모두 들어갑니다.

모델은 먼저 추론 텍스트를 출력했습니다. 최종 답변이 시작된 시각과 요청이 끝난 시각도 기록했습니다.

입력첫 토큰최종 답변 시작요청 종료
짧은 입력 · 77토큰0.79초2.61초 (3회)7.24초
4K · 4,093토큰4.08초11.48초 (2회)13.98초
16K · 16,387토큰13.37초17.18초 (1회)23.72초

최종 답변 시작 칸의 괄호는 해당 시각을 관찰한 요청 수입니다. 4K의 한 번과 16K의 두 번은 추론 중에 출력 상한에 도달했습니다. 성능 요청 9개 중 7개가 상한으로 종료됐습니다.

지시 따르기, 정보 찾기, 도구 호출 형식은 별도로 확인했습니다. 총 12개 모두 통과했고, 요청 오류나 건너뛴 항목은 없었습니다.

Strata는 모델을 PC에서 실행하는 도구입니다

Strata는 로컬 AI 추론 엔진과 데스크톱 앱, 터미널 도구를 제공하는 오픈소스 프로젝트입니다. 모델을 내려받아 실행하고, 로컬 API로 다른 앱에 연결할 수 있습니다. OpenAI·Anthropic 호환 API를 제공하며, 공식 문서에는 Claude Code, Codex CLI, OpenCode, oh-my-pi 등의 연결 방법이 나옵니다.

제가 실행한 언어모델은 Qwen3.8-Flash-Next이고, 실행 프로그램은 Strata입니다. 이번에 쓴 파일은 ISTA-DASLab의 GSQ-RCO IQ3_XXS 양자화 버전입니다. 가중치마다 정밀도를 배분해 저장 공간을 줄인 모델입니다.

Strata 공식 터미널 모니터에 모델 출력 속도와 GPU 부하, VRAM, CPU 및 시스템 RAM 사용량이 표시된 화면
Strata는 GPU 외의 자원도 함께 보여줍니다
Strata 공식 저장소의 모니터 예시입니다. 화면 속 구성은 RTX 5070·Gyro-S이며, 이 글에서 측정한 RTX 3060·IQ3_XXS 구성과 다릅니다. 출처: Strata v0.2.12 공식 이미지.

큰 모델을 어디에 나눠 놓나요?

Qwen의 공식 모델 카드는 언어모델 부분을 전체 125B, 토큰당 활성 파라미터 6B로 설명합니다. n-gram 임베딩 51B와 MTP 4B는 별도로 적고 있습니다.

이렇게 실행할 수 있는 이유는 MoE 구조입니다. 각 층의 routed expert 512개 가운데 토큰마다 10개를 선택하고 shared expert도 함께 사용하므로, 전체 파라미터 수는 크지만 한 토큰을 계산할 때는 선택한 전문가가 참여합니다.

Strata의 구조 설명에서 설명하는 각 장치의 역할입니다.

자원맡는 일
GPU·VRAM어텐션 등 공통 연산, 대화의 KV 캐시, 자주 쓰는 전문가 캐시를 처리합니다.
시스템 RAM전문가 가중치를 보관합니다.
CPUGPU 캐시에 없는 전문가를 RAM에서 계산하며 GPU와 일을 나눕니다.
SSD모델 파일과 큰 n-gram 조회 테이블을 보관하고, 필요한 행을 읽습니다.

이 구조에서는 모델 파일 전체가 VRAM에 들어가지 않아도 됩니다. 대신 CPU와 시스템 메모리가 실행 속도에 영향을 주므로, 같은 그래픽카드를 쓰더라도 PC의 나머지 구성이 달라지면 결과가 달라질 수 있습니다.

제 모델의 첫 번째 GGUF 파일은 약 47.04GB, n-gram 테이블을 담은 두 번째 파일은 약 28.80GB였습니다. 두 파일은 SSD에 저장했고, 드래프터 파일도 함께 사용했습니다.

이번 엔진은 STRATA_ROUTE_TAIL_SKIP=7 최적화를 사용했습니다. GPU 캐시에 없는 하위 순위 전문가의 일부 연산을 건너뛰는 설정으로, 프로젝트 설명에 따르면 답변에도 조금씩 영향을 줍니다.

실행 중에는 메모리를 얼마나 썼나요?

GPU와 시스템 메모리를 약 2초 간격으로 기록했습니다. 아래 값은 모델 로딩과 파일 해시 계산을 마친 뒤, 워밍업부터 마지막 기능 확인까지 요청을 실행하는 동안 관찰한 값입니다.

항목관찰한 값
RTX 3060 VRAM 최고 점유11,300MiB · 11.04GiB
PC 전체 RAM 최고 사용량49.68GiB
사용 가능한 RAM 최저치13.04GiB
시스템 스왑 읽기326.29MiB
시스템 스왑 쓰기0.00MiB

RAM 사용량에는 PC 전체의 psutil.virtual_memory().used 값을 썼고, 스왑은 요청 구간의 첫 표본과 마지막 표본 사이의 누적 카운터 차이로 계산했습니다. 스왑 설정과 OS 파일 캐시는 변경하지 않았습니다.

기존 모델을 유지하고 입력 길이를 나눠 측정했습니다

설치된 0.2.10을 0.2.12로 업데이트했습니다. Control과 CUDA 엔진은 모두 0.1.58이며, 업데이트 과정에서 기존 모델로 시험 응답을 생성한 뒤 종료하는 검증도 통과했습니다.

기존 IQ3_XXS 모델과 설치되어 있던 보조 파일을 사용했습니다. 실제 엔진이 선택한 드래프터는 일반 DFlash2로, 작은 모델이 다음 토큰들을 미리 제안하면 대상 모델이 검증하는 방식입니다.

드래프터 파일은 기존에 설치되어 있던 qwen3.8-flash-next-dflash2.q4_0-selq4.pack입니다.

항목이번 측정 조건
GPURTX 3060 12GB 한 장, RTX 3090은 추론에서 제외
CPUAMD Ryzen 9 5950X, 16코어 32스레드
시스템 RAM운영체제 인식 용량 약 62.72GiB
운영체제·드라이버Linux 6.12.116+deb13-amd64, NVIDIA 620.70.06
GPU 전력 제한170W, 측정을 위한 변경 없음
GPU 언락gpu-unlock 1.0.0 적용, 현재 부팅에서 unlocked 확인
모델Qwen3.8-Flash-Next GSQ-RCO IQ3_XXS
추론 설정일반 DFlash2, spec 6, draft-conf 0.8, KV 캐시 int8, 동시 요청 1개
서버 컨텍스트벤치 전용 복사본에서 32,768토큰
요청 방식로컬 루프백 HTTP, 스트리밍
샘플링thinking 켬, reasoning effort xhigh, temperature 1.0, top_p 0.95, top_k 20

원래 설정 파일은 16,384토큰이었는데, 이번 16K 입력의 실제 토큰 수는 16,387개였습니다. 출력 공간을 확보하려고 설정 파일을 복사해 벤치 전용으로 컨텍스트를 늘렸습니다. 기존 파일과 평소 쓰던 포트는 그대로 두었습니다. 결과는 custom 트랙으로 기록했습니다.

측정에는 Strata 공식 표준 프로토콜의 standard-v1을 사용했습니다. 프로토콜 자체는 아직 draft 상태입니다.

  • 워밍업 요청은 1회 실행하고 성능 집계에서 제외합니다.
  • 짧은 질문, 약 4K 입력, 약 16K 입력을 각각 3회 측정합니다.
  • 성능 시험의 출력 상한은 추론과 최종 답변을 합쳐 요청당 512토큰입니다.
  • 별도로 지시 따르기·정보 찾기·도구 호출 형식 확인을 각 4개씩 실행합니다.
  • 시험용 도구는 호출 형식만 확인하며 실제 외부 작업을 실행하지 않습니다.

첫 측정에서는 다른 GPU 작업과 스왑 입출력이 관찰돼, 기록을 보존하고 다시 측정했습니다. 두 번째 실행에서는 다른 생성 작업과 겹치지 않도록 두 GPU의 공용 예약을 모두 잡았습니다. 실제 추론에는 3060만 사용했습니다.

새 서버에서 워밍업을 한 뒤, 같은 전문가 캐시를 유지한 채 나머지 요청을 보냈습니다. 성능 요청 9개 모두 입력 재사용 토큰은 0개였습니다. 모델 시작과 파일 해시 계산에 걸린 시간은 성능 시험 구간에서 제외했습니다.

입력 처리 속도와 출력 속도는 엔진이 보고한 토큰 수와 소요 시간으로 계산합니다. 첫 토큰 지연은 클라이언트가 요청을 보낸 뒤 첫 번째 유효한 추론 또는 답변 조각을 받을 때까지 걸린 시간이며, 최종 답변의 시작 시각은 별도로 기록합니다.

측정값은 요약 JSON에, 요청·출력·설정·엔진 로그는 실험 원본 ZIP에 담았습니다. ZIP에는 본문에 사용한 두 번째 측정과 다른 작업이 겹쳐 제외한 첫 측정이 모두 들어 있습니다.

준비된 모델의 실행 설정 JSON과 결과 경로를 지정하는 벤치마크 명령입니다.

strata --version
strata bench run \
  --profile ./benchmark-profile.json \
  --suite standard-v1 \
  --track custom \
  --quantization IQ3_XXS \
  --out ./strata-bench-results

위 명령은 모델을 준비한 뒤 실행하는 벤치마크 단계입니다. 설치나 모델 다운로드는 자동으로 수행하지 않습니다.

제 기준에서는 이런 용도에 끌립니다

기존 그래픽카드로 더 큰 모델을 로컬 API 서버로 띄우고 싶다면 Strata를 살펴볼 만합니다. RAM이 넉넉한 PC에 남는 그래픽카드가 있고, 모델을 자주 바꾸기보다 하나를 계속 쓰는 환경이라면 특히 재미있는 선택지입니다. 코딩 도구는 두고 추론 서버만 로컬로 바꿀 수도 있습니다.

시스템 RAM까지 적은 PC라면 이번 측정과 조건이 크게 달라집니다. Strata의 모델 안내에는 RAM이 부족할 때 SSD에서 전문가를 읽는 경로도 나와 있지만, 이때는 속도가 많이 느려진다고 적혀 있습니다.

이번 기능 확인에서는 JSON 응답, 긴 입력에서 정보 찾기, 도구 호출 형식을 시험했습니다. 한국어 장문 작성과 실제 저장소의 코드 수정은 시험 항목에 없습니다.

정리하면

제게 Strata의 재미는 갖고 있던 PC로 큰 모델을 실행할 수 있다는 데 있습니다. 그래픽카드만으로 끝나는 구성에 비해 CPU와 RAM을 함께 고르는 일도 중요해졌습니다.

로컬에서 실행할 모델의 선택지가 넓어져 반갑습니다. 앞으로도 모델 크기와 출력 속도만 보기보다, 제가 자주 하는 질문이나 작업을 얼마나 잘 끝내는지 함께 보려고 합니다.

참고 자료

댓글