RTX 5090 단일 GPU에서 65K 토큰 디코딩 시 Qwen3.6-35B-A3B가 543 tok/s 달성
요약
RTX 5090 단일 GPU 환경에서 Qwen3.6 모델의 추론 속도를 극대화하기 위해 설계된 커스텀 C++/CUDA 엔진 NInfer를 공개했습니다. 커스텀 양자화와 커널 최적화 등을 통해 65K 토큰 디코딩 시 543 tok/s라는 압도적인 성능을 달성했습니다.
핵심 포인트
- RTX 5090에서 Qwen3.6-35B-A3B 모델로 543 tok/s 달성
- 커스텀 양자화, 커널 퓨전, 가중치 레이아웃 설계 등 엔드 투 엔드 최적화 적용
- 특정 모델(Qwen3.6-27B, 35B-A3B)에 특화된 고성능 추론 엔진 NInfer 오픈 소스 공개
- 장기 추론 및 다양한 워크로드에서 높은 MTP 수락률과 디코딩 속도 유지
요약(TL;DR) 예시: 저는 현재 단일 RTX 5090에서 두 가지 특정 Qwen3.6 체크포인트에 특화된, 처음부터 제작한 C++/CUDA 추론 엔진(inference engine)인 NInfer를 오픈 소스로 공개했습니다. 엔진과 변환된 모델 아티팩트(artifacts) 모두 공개되어 있습니다: Github : https://github.com/Neroued/ninfer
주요 결과: Qwen3.6-35B-A3B 모델은 단일 RTX 5090에서 단일 요청(single request)으로 전체 65,536 토큰 생성을 수행하는 동안 542 tok/s를 유지했습니다.
저의 목표는 심층적인 엔드 투 엔드(end-to-end) 최적화 이후, 고정된 모델과 고정된 가중치(weights)를 사용하여 단일 GPU(저의 경우 RTX 5090)에서 추론 속도가 얼마나 빨라질 수 있는지 확인하는 것이었습니다. 이를 위해 제가 할 수 있는 모든 것을 쏟아부어 전체 파이프라인을 처음부터 구축했습니다: 커스텀 양자화(custom quantization), 가중치 레이아웃 설계(weight layout design), 연산별 커널 최적화(per op kernel optimization), 커널 퓨전(kernel fusion), 전용 LM 헤드 드래프트(dedicated LM head draft) 등을 포함합니다.
NInfer는 범용 추론 엔진이 아니라, 특정 모델 아티팩트만을 위해 설계되었습니다. 현재 지원되는 모델은 다음과 같습니다:
- Qwen3.6-27B
- Qwen3.6-35B-A3B
변환된 모델 아티팩트는 모두 Hugging Face에서 이용 가능합니다. NInfer의 양자화 방식(quantization scheme) 하에서 공개된 아티팩트는 Qwen3.6-27B의 경우 16.29 GiB (~5.03 bpw), Qwen3.6-35B-A3B의 경우 20.84 GiB (~4.97 bpw)입니다.
Qwen3.6-35B-A3B 결과:
아래의 모든 MTP 결과는 드래프트 윈도우(draft window) 3과 NInfer의 최적화된 LM-head 드래프트 경로를 사용합니다. 각 결과는 한 번의 웜업(warm-up) 실행 후, 다섯 개의 고정된 시드(seeds)에 대한 평균 ± 표본 표준 편차(sample standard deviation)입니다.
Long-reasoning (장기 추론) 실행:
완성 길이 | 디코딩 속도 (Decode speed) | MTP 수락률 (MTP acceptance)
65,536 토큰 | 542.8 ± 12.5 tok/s | 73.0%
~55,171 토큰 | 572.9 ± 9.1 tok/s | 77.7%
~8,675 토큰 | 634.3 ± 14.2 tok/s | 82.7%
또한 코드, 번역, 스토리, 구조화된 출력 (structured output) 프롬프트의 혼합 세트도 실행했습니다:
워크로드 (Workload) | 디코딩 속도 (Decode speed) | MTP 수락률 (MTP acceptance)
코드 (Code) | 576.5 ± 21.7 tok/s | 71.0%
번역 (Translation) | 559.3 ± 28.1 tok/s | 66.6%
스토리 (Story) | 395.9 ± 30.9 tok/s | 37.7%
구조화된 출력 (Structured output) | 661.2 ± 29.5 tok/s | 87.2%
MTP0 컨텍스트 길이 확장 (context-length scaling):
프롬프트 길이 (Prompt length) | 프리필 속도 (Prefill speed) | 디코딩 속도 (Decode speed)
7,680 | 15,544 tok/s | 271.1 tok/s
64,512 | 10,809 tok/s | 242.9 tok/s
130,048 | 7,828 tok/s | 219.4 tok/s
260,096 | 5,157 tok/s | 188.2 tok/s
Qwen3.6-27B 결과:
NInfer는 27B 밀집 모델 (dense model)에서도 강력한 성능을 발휘합니다:
워크로드 (Workload) | 디코딩 속도 (Decode speed) | MTP 수락률 (MTP acceptance)
장기 추론 (Long-reasoning) | 174.2 ± 3.3 tok/s | 79.9%
코드 (Code) | 163.9 ± 6.2 tok/s | 72.5%
번역 (Translation) | 153.6 ± 11.7 tok/s | 65.7%
스토리 (Story) | 110.4 ± 9.2 tok/s | 37.9%
구조화된 출력 (Structured output) | 189.1 ± 15.7 tok/s | 88.9%
능력 점수 (Capability scores):
공개된 아티팩트(artifacts)를 AIME25, AIME26, GPQA-Diamond(0-shot, 규칙 기반 채점, 단일 샘플, 사고 활성화, MTP=3)를 통해 실행했습니다.
모델 | AIME25 | AIME26 | GPQA-Diamond
Qwen3.6-27B-NInfer | 26/30 | 28/30 | 172/198
Qwen3.6-35B-A3B-NInfer | 27/30 | 27/30 | 169/198
전체 평가 구성은 리포지토리(repository)에서 확인할 수 있습니다.
기능 및 한계 (Capabilities & limitations):
지원되는 두 모델 모두 NInfer는 텍스트, 이미지, 비디오 입력을 처리하며, OpenAI 및 Anthropic과 호환되는 HTTP 엔드포인트를 제공합니다. 제한적인 프리픽스 캐싱 (prefix caching)과 다양한 샘플링 파라미터를 지원합니다. RTX 5090의 32GB 메모리에서 INT8 KV 캐시 (KV cache)를 활성화하면, 두 모델 모두 고유의 네이티브 컨텍스트 길이인 262,144 토큰에 도달할 수 있습니다.
알려진 한계:
목록에 기재된 두 모델만 지원됩니다. 더 강력하고 로컬 환경에 적합한 모델이 출시되면 즉시 적용하겠습니다. RTX 5090 (sm_120a) 전용입니다. RTX PRO 6000에서도 작동해야 하지만, 일부 커널 튜닝이 최적화되지 않을 수 있습니다. 연속 배치 (continuous batching)는 지원하지 않습니다.
(조만간 새로운 모델들이 출시되지 않는다면, 이를 추가하는 방안을 검토해 볼 수도 있습니다.) 저는 진심으로 다른 추론 엔진(inference engine)이 이 수치에 필적하거나 이를 뛰어넘는 것을 보고 싶습니다. 유사한 양자화 크기(quantization size), 단일 요청(single request), 단일 RTX 5090, Qwen3.6-35B-A3B 환경에서 말이죠. 도전해 보세요. /u/FormOne2615 제출 [link] [comments]
AI 자동 생성 콘텐츠
본 콘텐츠는 r/LocalLLaMA의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기