MI50 GPU 1개에서 2배 속도 향상 (19.4 -> 38.1 tk/s) - 추론 최적화 실험
2X tk/s (from 19.4 -> 38.1 tk/s on 1 x MI50) Playing with a hypothesis like speculative decoding.. but instead of an additional side model, exploiting that I can run multiple computations side-by-side AS IF I had Qwen3.6-27B loaded twice in memory - small quants don't use all the available compute.
핵심 요약
Q8 양자화 모델의 남는 연산 자원을 활용해 동일 모델을 병렬로 실행하여 추론 속도를 2배 높이는 기법을 실험함.
- 연산 자원 최적화 — Q8 양자화 모델이 f32 연산의 1/4만 사용한다는 점을 이용해 4개 모델을 병렬 실행함
- 추론 속도 향상 — 단일 MI50 GPU에서 기존 19.4 tk/s 대비 38.1 tk/s로 성능 개선함
- 추측 디코딩 응용 — 별도의 보조 모델 없이 동일 모델을 활용해 토큰 예측 및 검증 수행
- 기술적 논쟁 — 벤치마크 측정 방식과 실제 성능 향상 원리에 대해 커뮤니티 내 의구심 제기됨
github.com
원문 사이트로 이동
MODS: 슬롭(slop)이라서 삭제하고 싶다면 그래도 괜찮음 - llama.cpp 패치 같은 게 준비되면 사람들이 쓸 수 있게 다시 올릴게. 이게 어떻게 작동하는지 Medium 계정에 전체 글을 쓸 예정이야. 그냥 신나서 공유하고 싶었어.
README에 있는 claude 요약은 무시해 줘, 기본 작동은 하니까. 아직 hip 커널 작업 중이고 MTP와 결합하려고 해. 80 tk/s 근처까지 올리고 싶어.
모든 건 모든 Q8 (INT8 또는 F8) 계산이 f32 연산을 사용하고 가용 숫자의 1/4만 사용한다는 걸 깨달으면서 시작됐어… 그래서, 로드된 각 값에 대해 4개의 연산을 실행할 수 있는 거지. 그리고 옆에서 작은 모델이 예측을 실행하고 더 큰 모델이 투표/거부권을 행사하는 추측 디코딩 아이디어를 보고, 왜 똑같은 모델이 그 결정을 내리게 하지 못할까 싶었어.
KV 캐시는 약간의 오버헤드를 추가하지만, 아주 미미해. README의 표와 SVG들을 확인해 봐.
벤치마크는 내 MI50 하나로 돌린 거야.
더 작은 양자화(Q8 이하)의 특성을 활용하는 거라, 사실상 그런 모델들에서만 작동해.


