피드로 돌아가기
Dev.toAI/ML
원문 읽기
llama.cpp Tensor Parallelism 도입으로 vLLM급 70t/s 성능 달성
llama.cpp b9455 Finally Caught vLLM: 70t/s on 2x3090 Qwen 27B UQ8
AI 요약
Context
기존 llama.cpp의 Row-based Split 구조로 인한 GPU 유휴 자원 발생 및 vLLM 대비 낮은 추론 속도 문제 발생. GGUF 양자화 모델 사용 시 성능 저하를 감수해야 했던 아키텍처적 한계 존재.
Technical Solution
-sm tensor플래그 도입을 통한 Tensor Parallelism 구현으로 개별 Matrix Multiplication 연산을 다수 GPU에 동시 분산- MTP Speculative Decoding 적용 및
--spec-draft-n-max 3설정을 통한 연산 효율과 예측 정확도 간의 최적점 확보 - KV Cache Quantization(
q8_0) 적용을 통한 캐시 메모리 30% 절감 및 Context Window 확장성 확보 --no-mmap설정을 통한 VRAM Fragmentation 방지로 서버 재시작 시의 메모리 안정성 강화- Flash Attention 활성화로 Attention 연산 최적화 및 처리 속도 향상
Impact
- Decode Speed: 67-81 t/s 유지 (68K Context 및 2K Token 출력 환경에서도 68 t/s 확보)
- Prompt Processing: 27K Context 기준 1,417 t/s의 Prefill 속도 달성
- Quantization Quality: UD-Q8_K_XL 적용을 통해 vLLM 저정밀도 양자화에서 발생하던 논리적 오류 제거
Key Takeaway
단순한 모델 분할이 아닌 연산 단위의 Tensor Parallelism 적용이 Multi-GPU 환경의 실질적 병목을 해결하며, 고정밀도 양자화와 고속 추론의 동시 달성이 가능함을 입증한 사례
실천 포인트
Multi-GPU LLM 추론 최적화 시 다음 사항을 검토하십시오. - Row-split 대신 Tensor Parallelism 적용 가능 여부 확인 - Speculative Decoding 도입 시 Draft Token 수의 한계 효용 지점 측정 - KV Cache 양자화를 통한 VRAM 확보 및 Context Window 확장 전략 수립 - VRAM 파편화 방지를 위한 mmap 설정 최적화