guqiong96/Lvllm

LvLLM is a special NUMA extension of vllm that makes full use of CPU and memory resources, reduces GPU memory requirements, and features an efficient GPU parallel and NUMA parallel architecture, supporting hybrid inference for MOE large models.

해결하는 문제

LvLLM은 대규모 Mixture-of-Experts (MoE) 모델을 실행할 때 발생하는 GPU 메모리 제한 문제를 해결합니다. 모델의 크기를 GPU VRAM과 시스템 RAM에 분산시켜, 가용 GPU 메모리보다 큰 모델도 실행할 수 있도록 합니다.

작동 원리

LvLLM은 vLLM의 확장 기능으로, lk_moe 엔진을 통합하여 하이브리드 GPU + NUMA (Non-Uniform Memory Access) 병렬 아키텍처를 구현합니다. 이를 통해 MoE 레이어가 표준 GPU 연산과 하이브리드 CPU-GPU 경로 사이를 유연하게 전환할 수 있습니다. 시스템은 NUMA 인식 스케줄링, CPU 코어에 대한 스레드 바인딩, 그리고 CPU-GPU 하이브리드 디코딩과 병렬로 실행되는 특화된 GPU 프리필(prefill) 메커니즘을 통해 하드웨어 활용도를 극대화하고 성능을 최적화합니다.

대상 사용자

GPU VRAM이 모델 전체를 담기에 부족한 하드웨어에서 대규모 MoE 모델(Qwen3, GLM, MiniMax 시리즈 등)을 실행하는 사용자, 특히 AVX2+를 지원하는 x86 CPU와 NVIDIA GPU (SM75+)를 사용하는 사용자를 위해 설계되었습니다.

주요 특징

  • 이중 병렬성: 하이브리드 CPU-GPU 디코딩 및 프리필 모드를 지원합니다.
  • 메모리 부하 분산: VRAM과 시스템 메모리를 결합하여 더 큰 모델을 수용합니다.
  • NUMA 최적화: 특화된 스레드 바인딩을 통해 노드 간 통신을 줄이고 L3 캐시 적중률을 높입니다.
  • 폭넓은 양자화 지원: bfloat16, float16, FP8, NVFP4, MXFP4 및 AWQ 4-bit symmetric quantization과 호환됩니다.
  • vLLM 호환성: 최신 vLLM 소스 코드와 완전한 호환성을 유지합니다.