본문으로 건너뛰기
r/LLMDevs조회 1

TensorSharp의 MoE CPU 오프로드와 벤치마크

TensorSharp가 MoE CPU 오프로드를 메인에 병합하고 llama.cpp 대비 다수 설정에서 처리량을 크게 개선한 벤치마크를 공개했습니다.

이 요약은 AI가 원문을 분석해 생성했습니다. 정확한 내용은 원문 기준으로 확인하세요.

TL;DR

TensorSharp가 라우팅된 MoE 전문가 가중치 일부 또는 전부를 시스템 RAM에 보관하고 CPU에서 곱셈을 수행하는 MoE CPU 오프로드 옵션을 메인 브랜치에 병합했습니다. --n-cpu-moe와 --cpu-moe 플래그 및 환경변수로 제어할 수 있고 이 설정으로 35B-A3B 같은 모델이 12–16GB GPU 환경에서 KV 캐시를 유지한 채 적재되는 사례가 보고되었습니다. 공개된 벤치마크는 TensorSharp와 llama.cpp를 동일 오프로드 깊이로 비교해 여러 모델에서 처리량이 수배 향상된 경우를 보여주므로 메모리 제약 환경에서 실무적 판단에 도움이 됩니다.

실용적 조언

  • GPU VRAM이 12–16GB로 제한된 환경에서 대형 MoE 모델을 돌리려면 --n-cpu-moe에 적절한 레이어 수를 지정해 초기 레이어의 라우팅된 전문가 가중치를 시스템 RAM에 유지하면 됩니다. 이렇게 하면 전문가 가중치 곱셈만 CPU에서 수행하고 attention·norm·router 등은 GPU에 남겨 두므로 KV 캐시를 함께 유지하면서 모델을 적재할 수 있습니다. 벤치 결과를 근거로 오프로드 깊이를 단계적으로 늘리며 성능과 VRAM 사용량을 모니터링하는 것이 권장됩니다.
  • 모든 라우팅된 전문가를 CPU에 두려면 --cpu-moe 플래그를 사용하면 편리합니다. 이 모드는 내부적으로 --n-cpu-moe all과 동일하게 동작하므로 테스트 환경에서 빠르게 직접 비교해볼 수 있고, 환경변수 TS_CPU_MOE로 프로덕션 설정을 고정할 수 있습니다. 단, CPU 메모리와 PCIe 대역폭이 병목이 될 수 있으므로 벤치마크를 통해 지연과 처리량 변화를 확인해야 합니다.
  • 공개된 벤치마크 테이블을 바탕으로 특정 모델·오프로드 깊이 조합이 사용 사례에 맞는지 판단해야 합니다. 예컨대 Qwen 3.5 35B-A3B에서는 일부 오프로드 깊이에서 처리량이 크게 올라갔지만 VRAM 요구량 및 지연 특성이 설정마다 달랐습니다. 따라서 실제 배포 전에는 동일 하드웨어에서 pp4096/pp8192/tg128 같은 대표적인 워크로드로 재현 테스트를 수행해 최적의 오프로드 포인트를 찾는 절차가 필요합니다.

섹션별 상세

TensorSharp는 라우팅된 MoE 전문가의 일부 또는 전부를 시스템 RAM에 남기고 CPU에서 곱셈을 수행하는 옵션을 메인 브랜치에 병합했다. 해당 기능은 --n-cpu-moe 또는 --cpu-moe 플래그와 환경변수 TS_N_CPU_MOE, TS_CPU_MOE로 제어할 수 있으며, 이 설정으로 35B-A3B와 같은 MoE 모델이 12–16GB GPU 환경에서도 KV 캐시를 함께 유지한 채로 적재되는 사례가 보고되어 있습니다. 기능 도입의 목적과 동작 경로가 명확하게 제시되어 있어 메모리 제약이 있는 환경에서 실무적으로 활용 가능성이 큽니다.
작성자는 TensorSharp와 llama.cpp를 동일한 MoE 오프로드 깊이로 CPU에 이관한 뒤 성능 벤치마크를 수행해 결과를 체크인한 벤치리포트를 공개했다. 하드웨어·소프트웨어 스택과 측정법을 명시했으며 모델별로 TS VRAM, inference 처리량(pp4096, pp8192, tg128)과 두 엔진 간 비율을 표로 제시해 비교할 수 있게 했습니다. 따라서 독자는 특정 모델과 오프로드 깊이에서 얻어진 수치로 메모리·처리량 절충을 판단할 수 있습니다.
벤치 결과는 많은 설정에서 TensorSharp가 처리량에서 수배 수준의 이점을 보였지만 VRAM 사용량은 대체로 더 높게 나오는 패턴이 혼재되어 있다. 예를 들어 Qwen 3.5 35B-A3B의 경우 일부 오프로드 깊이에서 처리량 비율이 약 6~10배 수준으로 나타났고, Gemma 4 및 GPT-OSS 사례에서도 유사한 처리량 우위를 보였지만 VRAM 측면에서는 엔진별 차이가 존재했습니다. 이 데이터는 GPU VRAM과 CPU 메모리 트레이드오프를 실제 수치로 비교할 수 있게 해줘 운영 선택에 실용적인 정보를 제공합니다.

용어 해설

Mixture-of-Experts(Mixture-of-Experts (MoE))
Mixture-of-Experts는 모델 내부에 여러 개의 전문가(expert) 서브네트워크를 두고 입력별로 라우터가 일부 전문가만 활성화해 계산량을 줄이는 아키텍처입니다. 라우팅된 전문가 가중치만 연산에 참여하므로 동일한 파라미터에서 용량을 키우는 방식이며, 활성화된 전문가들을 GPU 또는 CPU에 배치해 메모리-성능 절충을 조절할 수 있습니다.
GGUF
GGUF는 로컬에서 LLM을 배포할 때 쓰이는 모델 저장 포맷으로, 여러 inference 엔진이 공통으로 읽을 수 있게 설계되어 있습니다. 모델 파라미터와 메타데이터를 포함해 호환성 확보에 초점을 두며, TensorSharp와 같은 엔진이 GGUF 파일을 직접 로드해 추론 파이프라인으로 연결할 수 있도록 합니다.
KV 캐시(KV cache)
KV 캐시는 이전 토큰들의 key/value를 저장해 긴 문맥을 빠르게 처리하는 메커니즘으로, 긴 컨텍스트를 유지할수록 GPU 메모리 요구량이 크게 늘어납니다. MoE 모델과 함께 KV 캐시를 유지하려면 가중치 일부를 CPU로 오프로드하는 식의 메모리 분할 전략이 필요합니다.

코드 예제

bash
--n-cpu-moe 32

이 옵션은 첫 N개 레이어의 라우팅된 MoE 전문가 가중치를 시스템 RAM에 남기고 CPU에서 곱셈 연산을 수행하도록 지정합니다. 입력으로는 정수 N 또는 문자열 'all'을 줄 수 있고, 환경변수 TS_N_CPU_MOE로 덮어쓸 수 있습니다. GPU VRAM이 제한된 환경에서 일부 전문가를 CPU에 두어 모델을 적재 가능하게 만드는 역할을 합니다.

bash
--cpu-moe

--cpu-moe는 --n-cpu-moe all의 축약형으로 라우팅된 모든 전문가 가중치를 시스템 RAM에 남겨두게 합니다. 기본값은 off이며 환경변수 TS_CPU_MOE로 대신 설정할 수 있습니다. 대용량 MoE 모델을 작은 GPU에 적재하고자 할 때 편하게 전체 전문가를 CPU로 옮길 수 있는 단축 플래그입니다.

언급된 도구

TensorSharp추천링크

GGUF LLM 로컬 추론 엔진, CUDA/Vulkan/Metal 및 OpenAI 호환 API 지원

llama.cpp중립링크

로컬 LLM 추론 비교 대상 엔진으로 벤치마크 기준으로 사용됨

언급된 리소스

AI 분석 전체 내용 보기

AI 요약 · 북마크 · 개인 피드 설정 — 무료

출처 · 인용 안내

원문 발행 2026. 08. 06.수집 2026. 08. 06.출처 타입 REDDIT

인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.