
Deepseek V4/Gemma4/Qwen/GPT-OSS에서의 MoE CPU-offload 벤치마크 — TensorSharp vs
요약
TensorSharp의 MoE CPU-offload 기능이 메인 브랜치에 병합되었습니다. 이 기능은 MoE 모델의 전문가 가중치를 시스템 RAM에 유지하여 저사양 GPU에서도 대규모 모델을 실행할 수 있게 하며, llama.cpp 대비 우수한 성능을 보여줍니다.
핵심 포인트
- MoE 전문가 가중치를 CPU/RAM으로 오프로드하여 VRAM 절약 가능
- Gemma 4 등 주요 MoE 모델에 대한 벤치마크 결과 제공
- 특정 설정에서 llama.cpp 대비 높은 추론 속도 및 낮은 VRAM 사용량 기록
- Attention 및 Router 레이어는 가속기(GPU)에서 처리하여 효율성 유지
TensorSharp의 MoE CPU-offload 기능이 메인(main) 브랜치에 병합되었습니다. 이 기능의 파라미터 설명은 다음과 같습니다:
Mixture-of-Experts CPU offload: --n-cpu-moe <N> | -ncmoe <N>
첫 N개 레이어의 라우팅된 MoE 전문가(expert) 가중치를 시스템 RAM에 유지하고 CPU에서 곱셈을 수행합니다. Attention, Norms, Router 및 Shared expert는 가속기(accelerator)에 머무릅니다. 이를 통해 35B-A3B MoE 모델을 12-16 GB 그래픽 카드에서 긴 컨텍스트 KV 캐시와 함께 실행할 수 있습니다. 모든 레이어에 적용하려면 'all'을 입력하세요. 기본값: 0 (모든 것을 가속기에서 처리; TS_N_CPU_MOE 환경 변수로 재정의 가능). 예시: --n-cpu-moe 32
--cpu-moe | -cmoe
--n-cpu-moe all의 약어입니다: 모든 라우팅된 전문가가 시스템 RAM에 유지됩니다. 기본값: off (TS_CPU_MOE 환경 변수로 재정의 가능). 예시: --cpu-moe
성능을 측정하기 위해 TensorSharp와 llama.cpp를 비교하는 벤치마크를 실행했으며, 결과는 다음과 같습니다. 완료된 벤치마크 보고서는 다음에서 확인할 수 있습니다: https://github.com/zhongkaifu/TensorSharp/blob/main/docs/moe_cpu_offload_benchmark.md
호스트 및 소프트웨어 구성 요소 상세 정보
GPU: 2 x NVIDIA RTX PRO 6000 Blackwell Server Edition, 각 97,887 MiB, 드라이버 580.126.20, PCIe 5.0 x16
CPU: 2 x Intel Xeon 6952P (384 스레드, 6 NUMA 노드), cgroup 할당량 81.6 CPUs
RAM: 1,511 GiB
Storage: MooseFS 네트워크 마운트 상의 모델 (매 측정 실행 시마다 페이지 캐시(page-cache) 워밍업 완료)
OS: Ubuntu 24.04.3 LTS, CUDA 12.8
TensorSharp 브랜치: feature/support_moe_offload_to_cpu, .NET 10.0.110, 백엔드(backend) ggml_cuda
llama.cpp: llama-bench 빌드 4308a4f, CUDA 백엔드, 기본값 -t 192
모델별 결과
비율은 TensorSharp / llama.cpp 기준입니다: >1.0x는 TensorSharp가 더 빠름을 의미하며, VRAM >1.0x는 TensorSharp가 더 많은 메모리를 사용함을 의미합니다.
Gemma 4 26B-A4B it (UD-IQ4_XS, 30 MoE layers) --n-cpu-moe TS VRAM (MiB) TS pp4096 TS pp8192 TS tg128 llama VRAM (MiB) llama pp4096 llama pp8192 llama tg128 0 (baseline) 16,822 11,173 11,274 161.4 14,602 10,843 10,628 206.7 8 15,724 7,063 6,500 80.2 11,874 1,459 1,459 32.7 16 14,128 4,183 4,888 54.5 9,122 833 854 21.9 24 12,346 3,500 3,958 49.1 6,368 667 689 16.7 30 ( --cpu-moe ) 11,038 3,035 3,072 39.7 4,134 543 495 12.9 --n-cpu-moe VRAM pp4096 pp8192 tg128 0 1.15x 1.03x 1.06x 0.78x 8 1.32x 4.84x 4.46x 2.45x 16 1.55x 5.02x 5.72x 2.49x 24 1.94x 5.25x 5.74x 2.93x 30 2.67x 5.59x 6.21x 3.07x Qwen 3.5 35B-A3B (UD-IQ4_XS, 48 MoE layers) --n-cpu-moe TS VRAM (MiB) TS pp4096 TS pp8192 TS tg128 llama VRAM (MiB) llama pp4096 llama pp8192 llama tg128 0 (baseline) 19,862 9,538 9,405 160.0 17,522 8,149 8,073 228.4 12 18,148 6,755 6,648 75.4 13,282 988 954 27.5 24 15,414 4,412 5,259 52.3 9,010 498 484 15.8 36 12,684 3,772 4,223 50.7 4,738 523 517 11.3 48 ( --cpu-moe ) 11,606 3,917 3,709 38.6 3,314 477 457 10.2 --n-cpu-moe VRAM pp4096 pp8192 tg128 0 1.13x 1.17x 1.16x 0.70x 12 1.37x 6.84x 6.97x 2.74x 24 1.71x 8.85x 10.86x 3.31x 36 2.68x 7.21x 8.17x 4.50x 48 3.50x 8.21x 8.11x 3.77x GPT-OSS 20B (Q8_0 / MXFP4, 24 MoE layers) --n-cpu-moe TS VRAM (MiB) TS pp4096 TS pp8192 TS tg128 llama VRAM (MiB) llama pp4096 llama pp8192 llama tg128 0 (baseline) 13,186 13,964 12,925 212.8 12,204 17,856 17,642 344.2 6 11,560 8,975 7,617 85.8 9,812 1,747 1,666 32.2 12 9,378 6,470 6,394 51.7 7,386 1,176 1,188 18.3 18 7,192 4,315 4,393 30.7 4,962 807 751 12.1 24 ( --cpu-moe ) 4,762 4,277 3,798 27.7 2,536 568 548 9.4 --n-cpu-moe VRAM pp4096 pp8192 tg128 0 1.08x 0.78x 0.73x 0.62x 6 1.18x 5.14x 4.57x 2.67x 12 1.27x 5.50x 5.38x 2.83x 18 1.45x 5.35x 5.85x 2.54x 24 1.88x 7.53x 6.93x 2.95x DeepSeek V4 Flash (UD-Q8_K_XL, 5 shards / 150.7 GiB, 43 layers, both GPUs) --n-cpu-moe TS VRAM (MiB) TS pp4096 TS pp8192 TS tg128 llama VRAM (MiB) llama pp4096 llama pp8192 llama tg128 0 (baseline, both GPUs) 169,132 3,448
4,387 51.1 155,608 2,398 2,232 49.6 12 131,818 392 428 10.3 117,150 126 124 13.7 24 79,742 218 236 5.3 78,954 64 63 7.2 --n-cpu-moe VRAM pp4096 pp8192 tg128 0 1.09x 1.44x 1.97x 1.03x 12 1.13x 3.11x 3.46x 0.75x 24 1.01x 3.42x 3.72x 0.74x TensorSharp는 GGUF LLM을 로컬에서 실행하기 위한 네이티브 오픈 소스 추론 엔진 (inference engine)으로, CUDA, Vulkan, Metal, OpenAI 호환 API, 연속 배치 (continuous batching), 투기적 디코딩 (speculative decoding) 및 멀티모달 (multimodal) 지원을 제공합니다. Github 리포지토리: https://github.com/zhongkaifu/TensorSharp 프로젝트를 확인하고 스타 (star)를 눌러주셔서 감사합니다! 모든 피드백은 정말 큰 도움이 됩니다. /u/fuzhongkai 제출 [link] [comments]
AI 자동 생성 콘텐츠
본 콘텐츠는 r/LocalLLaMA의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기