인프라와 비용

llama.cpp SYCL, Arc B580 양자화 KV 캐시 디코딩 16K 문맥서 약 73% 빨라져

llama.cpp가 10월 29일 공개한 b11979·b11980 빌드에서 SYCL 백엔드가 Intel GPU용 양자화 KV 캐시 플래시 어텐션 커널과 프리필 최적화를 추가했다. Arc B580 디코딩은 16K 문맥에서 초당 31.3개에서 54.2개로 늘었다.

루카스 ·

llama.cpp 프로젝트가 2026년 10월 29일 SYCL 백엔드를 손본 빌드 b11979와 b11980을 공개했다. b11980은 양자화한 KV 캐시를 변환 없이 바로 읽는 플래시 어텐션 커널을 넣었고, b11979는 재배열 레이아웃 텐서의 역양자화 저장 방식을 바꿔 프리필 속도를 높였다.1,2

Intel Arc B580 그래픽카드(Battlemage)를 소개하는 영상의 한 장면. 카드 제품을 보여 준다.
Intel Arc B580 그래픽카드 촬영 영상 장면极客湾Geekerwan / Wikimedia Commons · CC BY 3.0 · 원본 · 크기 조정

새 디코딩 커널은 Q·K 계산에만 Intel XMX 유닛의 DPAS 명령을 쓰고, V·P 계산은 f16을 유지한다. 개발자가 Arc B580에서 Llama 3.1 8B Q4_K_M 모델에 q4_0 KV 캐시를 적용해 16K 문맥으로 측정한 결과, 토큰 생성(tg128) 속도가 초당 31.3개에서 54.2개로 올랐다. 프리필 개선은 Arc Pro B70에서 측정했다.1,2

b11980: 양자화 KV 캐시 디코딩 커널

디코딩과 쿼리 토큰 1~31개의 작은 배치는 이제 q4_0, q8_0 KV 블록에서 플래시 어텐션을 곧바로 실행한다. 이전에는 스칼라 방식으로 역양자화하거나 호출마다 캐시 전체를 f16으로 바꿔야 했다. Q·K 계산은 XMX에서 s8×s4, s8×s8 DPAS로 처리하고 V·P는 f16을 유지한다. joint_matrix가 s4를 지원하지 않아 dpas.s4.s8은 인라인 vISA로 구현했다.

헤드 크기는 64~512를 지원했으나 후속 커밋에서 192는 뺐다. 최대 32까지의 그룹 쿼리 어텐션과 어텐션 싱크도 지원한다. 프롬프트 처리는 기존 커널이 맡는다. B580에서 수행한 FLASH_ATTN_EXT 테스트는 4584건 중 4582건을 통과했고, 실패 2건은 master 브랜치와 같다.1

b11979: 프리필 역양자화 저장 최적화

b11979는 재배열(reordered) 레이아웃 텐서의 역양자화 커널이 값을 스칼라로 하나씩 쓰던 것을 vec 단위 저장으로 바꿨다. 연산과 반올림은 같고 출력은 비트 단위로 동일하다. 대상은 Q4_0, Q4_K, Q5_K, Q6_K, Q3_K, IQ3_XXS, IQ3_S, Q2_K, MXFP4다. 개발자는 Arc Pro B70에서 디코딩 이후 프리필(primed prefill)을 pp512와 pp2048로 측정했다. MXFP4를 뺀 나머지 형식은 새로 설치한 레이아웃(fresh layout)의 프리필과 디코딩이 변하지 않았고, Perplexity는 실행 간 오차 범위였다. MXFP4는 fresh 레이아웃에서도 프리필이 늘었고 디코딩은 변하지 않았다.2

Arc Pro B70 프리필 속도 증가율(pp512·pp2048)2
양자화 형식증가율측정 모델
Q4_0+6.4~7.3%Q4_0 모델(최대 27B 밀집)
Q4_K+14.7~15.3%Q4_K 위주 모델(최대 27B 밀집)
Q5_K+3.6%Q5_K 위주 27B
Q6_K+28.7%Q6_K 27B
Q3_K+16.8%Q3_K 위주 27B
IQ3_XXS·IQ3_S+20.3~21.1%각 형식 위주 27B
Q2_K+13.1%Q2_K 위주 27B
MXFP4pp2048 +57%, pp512 +61%MXFP4 MoE 20B

Q5_K는 저장 폭만 넓혀서는 효과가 없었다. 혼합 양자화 모델에서는 오차 범위, Q5_K 위주 모델에서는 +0.5%였다. 병목이 저장이 아니라 스칼라 ql·qh 바이트 로드와 로컬 메모리 스케일 브로드캐스트에 있었기 때문이다. 그래서 블록당 32스레드가 ql·qh 바이트 4개씩 읽어 vec4 저장 2개를 내도록 작업 분해를 다시 짜서 +3.6%를 얻었고, GET_ROWS 재배열 경로도 같은 방식으로 옮겼다. MXFP4는 MoE 전문가 경로(reorder_qw_mxfp4_moe)에만 재배열 레이아웃이 설치되며, 밀집 MXFP4 텐서는 기존 레이아웃을 쓴다.2

댓글

기사에 대한 의견이나 틀린 내용 제보를 남겨 주세요.

댓글을 불러오고 있습니다.