
MTP 디코딩을 구형 Ampere GPU에 맞게 패치함 (Kepler/Maxwell/Pascal/Turing)
요약
llama.cpp의 Multi Token Prediction(MTP) 구현이 BF16을 지원하지 않는 구형 GPU 아키텍처에서 cuBLAS 충돌 문제를 일으킬 수 있어, CUDA 백엔드가 패치되었습니다. 이 패치는 최신 GPU에 영향을 주지 않으면서도 구형 카드에서 MTP가 안정적으로 작동하도록 BF16/FP16/FP32 폴백 로직을 추가했습니다.
핵심 포인트
- 구형 GPU(Kepler 등)의 MTP 충돌 문제 해결
- BF16 지원 여부에 따른 자동 폴백 기능 구현
- llama.cpp CUDA 백엔드 패치 내용 공유
llama.cpp의 현재 다중 토큰 예측(Multi Token Prediction, MTP) 구현은 BF16을 지원하지 않는 GPU에서 BF16 연산 선택을 유발할 수 있으며, 이는 구형 아키텍처(Kepler에서 테스트됨)에서 cuBLAS 충돌을 일으킵니다. 저는 llama.cpp의 CUDA 백엔드를 패치하여 강력한 기능 확인 기능을 추가했습니다: - BF16 지원 → BF16 사용 - BF16은 아니지만 빠른 FP16이 사용 가능 → FP16으로 폴백(fall back) - 구형 GPU(Kepler 등) → FP32로 폴백 이 변경 사항은 최신 GPU에 영향을 주지 않으면서도 구형 카드에서 MTP가 작동하도록 유지합니다. 테스트 환경: - Qwen3.6 35B A3B q4xl - Q4XL 양자화 - Tesla K40c (Kepler, 오버클럭) (4x) 성능: - 기본 llama.cpp: ~22 tok/s - MTP 비활성화: ~17.5 tok/s - MTP 활성화 (2 토큰): ~25 tok/s /u/TheSpicyBoi123 제출 [link] [comments]
AI 자동 생성 콘텐츠
본 콘텐츠는 r/LocalLLaMA의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기