Strata로 LLM을 구동할 때 Mac이 빠른가 VS NVIDIA GPU가 빠른가 검증
요약
본 기사는 Strata라는 추론 엔진을 사용하여 로컬 환경에서 대규모 언어 모델(LLM)을 구동하는 성능 비교를 다룹니다. Mac의 통합 메모리 아키텍처와 NVIDIA GPU의 분리형 VRAM 간의 장단점을 분석하며, 단순히 하드웨어 사양만으로 속도를 판단하기보다 '모델 계층별 메모리 수용 방식'에 따라 성능이 결정됨을 강조합니다.
핵심 포인트
- Strata는 범용 모델 러너가 아닌 특정 모델 구조에 최적화된 추론 엔진입니다.
- Mac과 NVIDIA GPU 중 어느 것이 빠르다는 이분법적 결론 대신, 모델의 메모리 배치 방식이 중요합니다.
- LLM 구동 시 UMA(통합 메모리)와 디스크리트 VRAM 간의 성능 차이를 깊이 있게 분석했습니다.
본 정보는 2026년 10월 15일 기준입니다. Strata는 9월 24일 v0.1.0부터 3주 만에 0.1.44.1까지 업데이트되었으므로, 최신 정보는 공식 리포지토리를 확인해 주십시오.
이 글을 읽고 나면, 직접 사용하거나 구매할 예정인 기기에서 어떤 Strata pack을 선택해야 할지, 그리고 게이밍 PC와 Mac 중 어디에 투자해야 할지 결정할 수 있게 됩니다.
- RAM 또는 통합 메모리(Unified Memory) 용량으로 선택해야 할 pack 판별 스크립트
- 생성 속도는 Mac이, 프롬프트 로딩은 NVIDIA가 우세한 역전의 경계 지점
- 동일 예산으로 비교했을 때, Mac이 명확히 유리한 조건과 동등한 조건을 파악할 수 있습니다.
저는 Ollama나 LM Studio를 사용해 로컬 LLM을 구동해 본 경험이 있으며, 100B급 모델을 집에서 구동할 장비를 판단하고 싶습니다.
- CUDA와 Metal의 커널 구현 설명
- 양자화(Quantization) 기법 자체의 이론
- 이미지 생성 미리보기 및 멀티 GPU 구성 상세 정보
10월 13일 출시 노트에서 Mac 지원을 알게 되었을 때, 저는 Mac이 UMA(Unified Memory Architecture)이기 때문에 같은 가격대의 게이밍 PC보다 빠를 것이라고 직감했습니다. 하지만 공식 실측치를 나열해 보니, 그 직감이 절반만 맞았습니다.
고려해야 할 것은 'UMA인지 디스크리트 메모리인지'라는 이분법적 선택보다는, '모델의 어느 부분이 어떤 계층의 메모리에 수용되는가'에 따라 속도가 결정된다는 관점을 얼마나 일반화할 수 있는지입니다.
참고로 제 검증 환경은 GPU가 없는 Linux 샌드박스(Python 3.13)이며, Strata 자체를 구동하지 않았습니다. 모든 속도는 공식 실측치를 인용한 것이며, 제가 실행한 것은 판별 및 비교 스크립트뿐입니다.
이 섹션에서 알 수 있는 것: Strata가 어떤 모델을 구동하는 도구인지, 그리고 왜 12GB GPU로 125B 모델이 작동할 수 있는지
Strata는 Alibaba의 Qwen 팀이 2026년 8월에 공개한 Qwen3.8-Flash-Next를 일반 PC에서 구동하기 위한 추론 엔진입니다. MIT 라이선스의 OSS이며, 작성 시점 기준 GitHub 스타 수는 약 2.4만 개입니다.
시작하면 http://127.0.0.1:8080에 채팅 화면과 OpenAI 호환 및 Anthropic 호환 API가 열립니다.
Strata는 범용 모델 러너(Model Runner)가 아닙니다. Ollama처럼 임의의 GGUF 파일을 읽어오는 것이 아니라, 하나의 모델 계열 구조에 맞춰 최적화하여 속도를 내고 있습니다.
Qwen3.8-Flash-Next의 모델 카드에 따르면, 총 파라미터는 125B이며, 토큰당 사용하는 양은 6B뿐입니다. 여기에 51B의 n-gram 임베딩과 4B의 MTP 레이어가 추가됩니다.
총 48개의 계층마다 512개의 전문가(Expert)가 있으며, 토큰당 10개와 공유되는 1개만 선택됩니다. 이 MoE (Mixture of Experts) 구조 덕분에 24,576개의 모든 전문가를 GPU에 올릴 필요가 없습니다.
Strata의 README에 비유하자면 주방에 비유할 수 있습니다. 전문가는 재료, GPU는 메인 셰프, VRAM은 조리대입니다.
| 비유 | 실체 | 배치되는 것 |
|---|---|---|
| 조리대 | GPU의 VRAM | 자주 사용하는 전문가, 어텐션 메커니즘(Attention Mechanism), KV 캐시 일부 |
| ... |
여기에 MTP 레이어가 다음 몇 단어를 추측하고, 본체가 종합적으로 검산합니다. 공식 설명에 따르면, 출력은 변함없이 1.6~1.8배 빨라집니다.
이 섹션에서 알 수 있는 것: Strata로 선택 가능한 모델 버전과 품질 차이, Mac 사용 가능 여부
앞서 Strata가 하나의 모델 계열에 특화하여 속도를 낸다고 보았습니다. 따라서 '사용 가능한 LLM'은 모델명 목록 자체가 아니라, 같은 모델의 어떤 압축 버전(pack)과 파생 버전을 선택하느냐의 문제입니다.
| 계열 | 주요 크기 | 특징 | Mac |
|---|---|---|---|
| Qwen3.8-Flash-Next 원본 | Q2_0 / IQ2_XS / IQ3_XXS / IQ3_S | 모든 전문가를 유지, 이미지 입력 가능 | ○ |
| ... |
Coder는 작성자의 측정에 따르면 풀 모델의 SWE-bench Verified 점수 중 91.3%를 유지하면서 32GB RAM으로 구동됩니다. 다만 중국어로 답변이 깨지는 보고가 있어, 공식에서도 일본어를 포함한 CJK(Chinese, Japanese, Korean) 문장에는 취약하다고 주의하고 있습니다. 한국어 대화 용도로는 Coder를 피하고 원본을 선택하는 것이 좋습니다.
0.1.44 출시 노트에는 Q8_0과 비교했을 때 다음 단어가 일치한 비율이 실려 있습니다. 4,995개 지점에서 비교되었습니다.
| pack | Q8_0と同じ次トークン |
|---|---|
| UD-Q6_K_XL | 94.6% |
| ... | |
同梱されているtools/quant_quality.py |
で再計測できます。なおモデルのライセンスはQwen Community License 1.0이며, 파생 버전은 자체 라이선스를 가집니다.
이 섹션에서 알 수 있는 것: 게이밍 PC에서 구동할 최소 조건과 RAM 용량에 따른 pack 선택, 실측 속도
앞 단락에서, pack 크기가 클수록 품질이 향상된다는 것을 확인했습니다. PC의 경우 그 상한선은 메인 메모리 용량이 결정하므로, 먼저 RAM을 확인합니다.
| 항목 | 조건 |
|---|---|
| GPU | NVIDIA RTX 20~50 시리즈 또는 AMD RX 7900/7800/7700 XT, RX 9060 XT/9070 시리즈, RX 6800/6900 시리즈 등. VRAM 12GB 이상 |
| ... | |
| README의 'RAM으로 선택' 표를 코드에 옮기면 판정은 다음과 같습니다. |
"""Strata: 메모리 용량에서 선택해야 할 pack을 반환합니다 (docs/MODELS.md, docs/MAC.md의 표를 복사한 것)"""
# PC: RAM(GB) 하한 -> (권장 pack, 보충 설명) 출처 docs/MODELS.md "Pick by RAM"
PC_TABLE = [
...
python3 strata_fit.py
의 출력 결과를 요약하면 다음과 같습니다.
| 메모리 | PC | Mac |
|---|---|
| 32GB | Coder | Q2_0 SSD 읽기 |
| ... |
README는 64GB에서 IQ2_XS를 권장하지만, 0.1.44의 setup은 IQ3_S를 기본값으로 합니다. 속도 중시라면 IQ2_XS, 품질 중시라면 IQ3_S입니다.
README의 측정값입니다. 생성은 짧은 채팅에서의 속도입니다.
| pack | 생성 | 읽기 32K |
|---|---|
| Q2_0 | 94 tok/s | 2,650 tok/s |
| ... |
구성 사양은 RTX 5070 12GB, Ryzen 5 7600, 64GB RAM입니다. 같은 형식의 표는 다음 명령어로 자신의 장비에서도 만들 수 있습니다.
# Windows는 BENCH.bat. 5~10분 동안 짧은 채팅, 4K/16K 읽기, 에이전트 형태의 대화를 측정합니다.
./bench.sh
공식적으로는 빠른 GPU보다 VRAM 용량이 많은 GPU가 효과적이라고 합니다. 1GB 증가할 때마다 약 700개의 전문가가 조리대에 올라가고 보조 셰프의 역할이 줄어들기 때문입니다.
이 섹션에서 알 수 있는 것: Mac 구동 조건, 메모리 용량별 동작 방식, 알려진 결함 및 제한
앞 단락에서, PC에서는 RAM이 pack의 상한선을 결정하고 VRAM이 속도를 결정한다는 것을 확인했습니다. Mac의 경우 이 두 가지가 동일한 유니버설 메모리(unified memory)이기 때문에 판정 규칙이 달라집니다.
Mac 지원은 0.1.44 (2026년 10월 13일)에 실험적으로 추가되었습니다.
| 항목 | 조건 |
|---|---|
| 칩 | Apple Silicon M1~M5. Intel Mac은 불가 |
| ... |
xcode-select --install # 최초 한 번만. 컴파일러를 설치합니다.
git clone https://github.com/Niko1221/Strata && cd Strata
./setup.sh # 엔진 빌드에 약 7분, 이후 모델을 가져와 실행합니다.
하나의 프로그램이 상주할 수 있는 용량은 메모리의 약 3분의 4입니다. M5 Max 128GB에서는 107.5GB로 측정되었습니다. pack이 이 범위 안에 들어오면 모든 전문가를 상주시키고, 그렇지 않으면 SSD에서 필요한 전문가를 그때그때 읽어옵니다.
| pack | GPU가 매핑하는 파일 | 필요량의 예상치 | 권장 메모리 |
|---|---|
| Q2_0 | 37.6GB | 46GB | 64GB |
| ... |
32~48GB Mac에서는 전문가가 상주 공간의 60%를 초과하면 자동으로 SSD 읽기로 전환됩니다. setup은 전문가들을 읽기 쉽게 재배열한 복사본도 출력하여, 32GB M4 Mac mini에서 생성 속도가 약 17% 빨라졌습니다.
docs/MAC.md에 실린 두 대의 측정값입니다.
⚠️ [IMG:N] 형식 토큰은 이미지 placeholder 입니다. 번역하지 말고 원래 위치에 그대로 유지하세요.
| 機種 | pack | 生成 MTPあり | 生成 MTPなし | 読み込み 32K |
|---|---|---|---|---|
| M5 Max 128GB | Q2_0 | 108〜120 tok/s | 87 tok/s | 約1,460 tok/s |
| ... | ||||
같은 M5 Max에서 llama.cpp의 Metal 버전은 Q2_0으로 56.6 tok/s이고, Strata는 그 약 2배입니다. 이 표도 ./bench.sh |
으로 만들 수 있습니다.
0.1.44에서는 M4와 M5가 아닌 Mac(보고된 것은 M2 Max)에서 답변이 의미 없는 문자열이 되는 버그가 있었습니다. 0.1.44.1에서 수정되었지만, 작성자에게는 M2가 없어 확인은 보고자를 기다리는 중입니다. M1~M3에서는 ./update.sh
으로 0.1.44.1 이후 버전으로 만든 다음, 먼저 짧은 질문으로 답이 올바른지 확인해 주세요.
그 외에도 동시 처리는 요청당 1개까지, 측정된 컨텍스트 길이는 32K까지, Coder와 Swift와 Qwen3.6은 미지원, 외장 디스크는 검증되지 않았다는 제한 사항이 있습니다.
PC에서는 RAM이 pack의 상한을, VRAM이 속도를 결정합니다. Mac에서는 같은 메모리가 양쪽을 결정하며, 프레임 안에 들어가면 상주하고, 안 들어가면 SSD에서 읽어옵니다.
- Strata는 125B의 Qwen3.8-Flash-Next 전용이며, 전문가를 VRAM, RAM, SSD에 분배하여 구동합니다.
- 품질은 pack의 크기로 결정되며, Q2_0의 80.6%부터 UD-Q6_K_XL의 94.6%까지 폭이 있습니다.
- PC는 12GB 이상의 GPU와 32GB 이상의 RAM, Mac은 M1~M5 및 macOS 15 이상이 조건입니다.
이 섹션에서 알 수 있는 것: 같은 pack에서 Mac과 PC의 속도가 어디서 역전하며, 그것이 왜 발생하는가
앞 절에서 Mac은 메모리가 공통이라 판정 규칙이 바뀐다고 보았습니다. 그렇다면 속도에서도 유리한지, 공식 실측값을 같은 pack으로 맞춰 비교해 보겠습니다.
"""공식 실측값으로부터 PC(RTX 5070) / Mac(M5 Max 128GB) / Strix Halo의 비율을 도출"""
# decode: 짧은 질문에 대한 생성 tok/s / prefill: 32K 토큰 읽기 tok/s
PC = {"Q2_0": (94.0, 2650), "IQ3_S": (53.0, 1620)} # README, RTX 5070
...
실행 결과를 표로 정리합니다.
| 비교 | 생성 | 읽기 32K |
|---|---|---|
| Q2_0 Mac/PC | 1.21배 | 0.55배 |
| ... | ||
Mac의 IQ3_S 읽기는 공식값 1,140~1,190의 중앙값입니다. 측정 조건은 완전히 같지는 않습니다. PC는 setup 기본 설정과 엔진 0.1.26/0.1.36, Mac은 MTP 있음 --spec 2 |
으로 접미사 추측 없음(suffix predictionなし), Strix Halo는 --spec 4
등 다른 추측 설정으로 8K 컨텍스트입니다. 배율은 경향성으로 읽어주세요.
생성은 Mac이 이기고, pack이 클수록 차이가 벌어집니다. 반면 예상 밖이었던 것은 읽기(読み込み)로, RTX 5070은 Q2_0에서 Mac보다 약 1.8배 빠르게 읽었습니다. UMA라면 어느 쪽도 이길 것이라고 착각했기에, 여기서 직감의 절반이 틀렸습니다.
1 토큰 생성 시간을, 조리대와 식료품 저장고에서 각각 재료를 읽는 시간으로 생각합니다. 기호를 하나씩 놓습니다.
- $B_{ ext{gpu}}$ 는 조리대에서 읽을 재료의 양이며, 단위는 GB 스칼라입니다
- $W_{ ext{vram}}$ 은 조리대의 읽기 속도, 즉 VRAM 대역폭입니다
- $B_{ ext{cpu}}$ 는 보조 셰프가 식료품 저장고에서 읽을 재료의 양입니다.
- $W_{ ext{ram}}$ 은 식료품 저장고의 읽기 속도, 즉 메인 메모리 대역폭입니다.
GPU와 CPU는 동시에 작동하므로, 느린 쪽이 전체 시간을 결정합니다.
t_{ ext{token}} ext{ extbackslash approx } ext{max}igg( rac{B_{ ext{gpu}}}{W_{ ext{vram}}}, ext{ extbackslash frac} {B_{ ext{cpu}}}{W_{ ext{ram}}} igg)
이 공식이 말하는 것은, 식료품 저장고 쪽의 작업이 조금이라도 늘어나면, 그것이 바로 전체 대기 시간이 된다는 것입니다. DDR5-5200의 2채널은 이론상 83.2GB/s로, RTX 5070의 VRAM 672GB/s의 약 1/8밖에 되지 않습니다.
패킹(pack)을 1.46배로 늘려도 작업대(調理台)의 크기는 12GB로 유지되므로, 증가한 부분은 거의 모두 식료품 창고 측에 탑재됩니다. 따라서 PC는 43.6%나 느려집니다. 벽이 없는 주방의 Mac은 모든 재료를 614GB/s로 직접 읽기 때문에, 저하 폭은 13.9%에 그칩니다.
t_{ ext{token}}^{ ext{UMA}} ext{ (UMA 기준 토큰 속도)}
ightleftharpoons rac{B_{ ext{all}}}{W_{ ext{uma}}}
이 공식이 의미하는 바는, UMA의 속도는 메모리 대역폭(memory bandwidth)에 의해 거의 결정된다는 것입니다. 두 번째 예시로 같은 UMA 방식인 Strix Halo를 보면, 대역폭 256GB/s에서 IQ3_S 생성은 59.1 tok/s였습니다. 대역폭이 2.4배인 M5 Max는 1.66배 빠르며, 이는 UMA라는 방식 자체보다 대역폭 수치가 더 큰 영향을 미치고 있음을 알 수 있습니다.
읽기(loading) 과정에서 역전되는 이유는, 프롬프트 처리가 대역폭보다는 연산량(computation amount)에 의해 결정되는 작업이기 때문입니다. PC에서는 최대 8,192 토큰씩 모아서 다음 레이어의 전문가(expert)를 복도에서 미리 옮겨가며 Tensor Core로 계산합니다.
가격은 2026년에 크게 변동할 예정입니다. PCPartPicker 데이터에 따르면, DDR5 64GB 키트의 평균 가격이 2026년 8월에는 1,250달러를 초과했습니다. Mac Studio M5 Max의 국내 가격(41만 9,800원)을 기준으로 할 때, 36GB 구성에서는 여유가 있지만, 128GB로 가려면 40코어 GPU 버전이 필요합니다.
M5 Max 128GB와 같은 예산이라면, 상대는 24GB급 GPU와 96GB 이상의 RAM을 탑재한 PC입니다. 공식 추정치에 따르면 RTX 3090은 Q2_0에서 약 128140 tok/s, IQ3_XXS에서는 약 103106 tok/s를 기록하고 Mac은 같은 패킹(pack)으로 97~120 tok/s로, 거의 대등합니다. 다만 이 추정치는 구형 엔진 기준이며 오차 범위는 ±20%임을 명시하고 있습니다.
Mac이 확실히 우위를 점하는 경우는 UD-Q4_K_XL과 같이 4bit 이상의 패킹을 상주(常駐)시키는 상황입니다. M5 Max는 7494 tok/s로 작동하지만, 64GB PC에서는 SSD에서 읽어와야 하므로 구형 측정치 기준으로 78.5 tok/s에 그쳤습니다.
이 섹션에서 알 수 있는 것: 보유 장비와 중요하게 생각하는 지점에 따라 어떤 구성으로 시작할지
앞선 절에서, 생성(generation)은 패킹이 메모리에 상주할 수 있는지 여부에 따라 결정되며, 읽기(loading)는 GPU의 연산 성능에 의해 결정된다고 보았습니다. 이 두 축을 판단의 분기점으로 삼으면 다음 흐름이 됩니다.
어려우면, 보유 장비로 최소 패킹부터 시작하여 ./bench.sh의 결과를 본 후에 추가 구매하는 것이 가장 비용 효율적입니다.
이 섹션에서 알 수 있는 것: 구동된 Strata를 기존 앱 및 에이전트와 사용하는 방법
앞선 절에서 장비를 결정했습니다. setup을 완료하면 서버가 이미 작동하고 있으므로, 남은 것은 손에 쥔 도구의 연결 대상을 변경하는 것뿐입니다.
from openai import OpenAI
# API 키와 모델명은 임의의 문자열이어도 무방합니다.
client = OpenAI(base_url=
| 용어 | 의미 | 주방의 비유 |
|---|---|---|
| UMA, 유니파이드 메모리 | CPU와 GPU가 같은 메모리를 공유하는 구성 | 조리대와 식료품 창고의 벽이 없는 주방 |
| ... | |
- 기초: MoE(Mixture of Experts)와 VRAM의 관계를 파악하기
- 실습: 가지고 있는 장비로 Strata를 구동하고, `./bench.sh`로 자신의 수치를 얻기 - 비교: 같은 GGUF 모델을 llama.cpp에서도 구동하여 전용 엔진의 효과를 확인하기
- 심화: KV 캐시와 문맥 길이의 관계를 이해하여 설정을 최적화하기
- Niko1221/Strata README 요구사항, RAM별 패키지 표, PC 실측 결과
- Strata on a Mac 국문 번역: Mac에서의 Strata. 상주(常駐) 및 SSD 로딩, Mac 실측 결과
- Which model? 국문 번역: 어떤 모델을 선택할 것인가. 패키지 목록
- How does Strata work? 국문 번역: Strata의 작동 방식
- Strata - the details 국문 번역: 상세 정보. API, 다른 GPU의 추정 속도
- Strix Halo Ryzen AI Max+ 395에서의 실측 결과
- 0.1.44와 0.1.44.1의 릴리스 노트. Mac 지원, 품질 비교, M2 수정
- Qwen3.8-Flash-Next 모델 카드 구성 및 라이선스
- PC Watch: M5 Max/Ultra의 'Mac Studio' 등장 국내 가격
- DDR5 가격이 18개월 만에 500% 급등 국문 번역: DDR5 가격이 18개월 만에 500% 상승
AI 자동 생성 콘텐츠
본 콘텐츠는 Qiita AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기