벤치마크: Llama.cpp에서의 Windows 11 vs Lubuntu 26.04 (RTX 5080 + i9-14900KF). 차이가 이렇게 클 줄은 몰랐네요.
Benchmark: Windows 11 vs Lubuntu 26.04 on Llama.cpp (RTX 5080 + i9-14900KF). I didn't expect the gap to be this big.
핵심 요약
Windows 11과 Lubuntu에서 Llama.cpp 성능을 비교한 결과, Linux가 특히 프롬프트 처리 속도에서 압도적인 우위를 보임.
- OS 성능 비교 — Windows 11 대비 Lubuntu에서 Llama.cpp 구동 시 프롬프트 처리 및 생성 속도가 전반적으로 향상됨.
- 프롬프트 처리 격차 — CPU/GPU 하이브리드 환경에서 Linux가 Windows보다 100%~140% 더 빠른 처리 속도를 기록함.
- 스케줄러 문제 — Windows의 과도한 백그라운드 프로세스와 스케줄링 방식이 LLM 성능 저하의 주요 원인으로 지목됨.
- 배포판 영향 — 특정 리눅스 배포판보다는 커널과 CUDA 버전 등 소프트웨어 환경이 성능에 더 큰 영향을 미침.
평생 Windows 사용자로서(저를 미워하지 마세요, 어릴 때부터 써왔으니까요) 제가 성능을 얼마나 손해 보고 있는지 궁금했습니다. 그래서 합리적인 선택으로 몇 가지 벤치마크를 실행해 보았습니다.
설정:
- OS: Windows 11 25H2 vs Lubuntu 26.04
- 엔진: Llama.cpp b8929, CUDA 13.1 (Windows는 공식 빌드 다운로드, Lubuntu는 CMake로 직접 컴파일)
- CPU: Intel Core i9-14900KF
- RAM: 64GB DDR5 6800 MT/s
- GPU: RTX 5080 16GB VRAM
- 드라이버: 596.32 (Windows) / 595.x (Lubuntu)
결과 (평균)
여러 모델에 대해 2500개 이상의 토큰 프롬프트를 사용하여 llama-cli를 실행했습니다.
(참고: Gemma 4, OSS-20B & Qwen3.6은 GPU에 완전히 오프로드되었습니다. Qwen3.5 & OSS-120B는 -t 8 -tb 8 -fit on을 사용한 하이브리드 CPU/GPU 실행입니다.)
|모델|Win 11 (프롬프트)|Lubuntu (프롬프트)|프롬프트 차이|Win 11 (생성)|Lubuntu (생성)|생성 차이|
|:-|:-|:-|:-|:-|:-|:-|
|Gemma-4-E4B-it (Q8_K_XL)|6,232 t/s|7,587 t/s|+ 21.7%|111.7 t/s|116.7 t/s|+ 4.4%|
|Qwen3.5-35B-A3B (Q8_K_XL)|305 t/s|742 t/s|+ 143.2%|48.1 t/s|52.2 t/s|+ 8.5%|
|GPT-OSS-20B (MXFP4)|7,619 t/s|8,140 t/s|+ 6.8%|195.8 t/s|206.2 t/s|+ 5.3%|
|Qwen3.6-27B (IQ4_XS)|2,077 t/s|2,235 t/s|+ 7.6%|43.8 t/s|46.0 t/s|+ 5.0%|
|GPT-OSS-120B (MXFP4)|310 t/s|649 t/s|+ 109.3%|43.4 t/s|44.9 t/s|+ 3.4%|
요약
- 생성 속도: Lubuntu가 전반적으로 토큰 생성 속도가 약 4%에서 8% 더 빠릅니다. 좋은 향상이지만, 읽기 속도만 중요하다면 OS를 교체할 정도는 아닐 수도 있습니다.
- 프롬프트 처리 (완전 오프로드): Linux가 GPU에서 프롬프트 평가를 눈에 띄게 더 빠르게 처리합니다. 낮은 수치에서도 6-7% 더 빠르며, Gemma 4 실행 시에는 최대 21%까지 빠릅니다.
- 프롬프트 처리 (CPU/GPU 하이브리드): 여기가 놀라운 부분입니다. Llama.cpp가 CPU(-t 8 -tb 8)에 의존해야 하는 모델에서, Linux는 프롬프트 처리 속도에서 Windows를 100%에서 140% 이상 압도했습니다.
원본 실행 로그:
Windows 11:
.\llama-cli -m "E:\models\unsloth\gemma-4-E4B-it-GGUF\gemma-4-E4B-it-UD-Q8_K_XL.gguf" -c 8192 -mli -fa on --temp 1.0 --top-k 64 --top-p 0.95 --min-p 0.0 -ngl all -np 1 --no-mmap --jinja --chat-template-kwargs '{"enable_thinking":true}'
[ Prompt: 4038.3 t/s | Generation: 111.6 t/s ][ Prompt: 7341.7 t/s | Generation: 111.8 t/s ][ Prompt: 6432.1 t/s | Generation: 111.9 t/s ][ Prompt: 7116.3 t/s | Generation: 111.7 t/s ]
.\llama-cli -m "E:\models\unsloth\Qwen3.5-35B-A3B-GGUF\Qwen3.5-35B-A3B-UD-Q8_K_XL.gguf" -c 16384 -mli -fa on --temp 0.6 --top-k 20 --top-p 0.95 --min-p 0.0 -np 1 --no-mmap --chat-template-kwargs "{\"enable_thinking\":true}" -t 8 -tb 8 -fit on -fitt 160M
[ Prompt: 296.5 t/s | Generation: 48.4 t/s ][ Prompt: 308.6 t/s | Generation: 48.0 t/s ][ Prompt: 313.7 t/s | Generation: 48.2 t/s ][ Prompt: 302.1 t/s | Generation: 47.8 t/s ]
.\llama-cli -m "E:\models\lmstudio-community\gpt-oss-20b-GGUF\gpt-oss-20b-MXFP4.gguf" -c 32768 -mli -fa on --temp 1.0 --top-k 0 --top-p 1.0 --min-p 0.0 -ngl all -np 1 --no-mmap --jinja
[ Prompt: 7651.2 t/s | Generation: 195.6 t/s ][ Prompt: 7661.0 t/s | Generation: 196.6 t/s ][ Prompt: 7653.2 t/s | Generation: 196.6 t/s ][ Prompt: 7510.8 t/s | Generation: 194.6 t/s ]
.\llama-cli -m "E:\models\unsloth\Qwen3.6-27B-GGUF\Qwen3.6-27B-IQ4_XS.gguf" -c 8192 -mli -fa on --temp 1.0 --top-k 20 --top-p 0.95 --min-p 0.0 --presence_penalty 1.5 -ngl all -np 1 --no-mmap --jinja
[ Prompt: 1859.4 t/s | Generation: 43.2 t/s ][ Prompt: 2132.9 t/s | Generation: 43.0 t/s ][ Prompt: 2153.1 t/s | Generation: 44.5 t/s ][ Prompt: 2166.1 t/s | Generation: 44.5 t/s ]
.\llama-cli -m "E:\models\lmstudio-community\gpt-oss-120b-GGUF\gpt-oss-120b-MXFP4-00001-of-00002.gguf" -c 16384 -mli -fa on --temp 1.0 --top-k 0 --top-p 1.0 --min-p 0.0 -np 1 --no-mmap --jinja -t 8 -tb 8 -fit on -fitt 160M
[ Prompt: 324.3 t/s | Generation: 43.3 t/s ][ Prompt: 320.8 t/s | Generation: 43.4 t/s ][ Prompt: 284.9 t/s | Generation: 43.4 t/s ]

