llama.cpp가 2026년 11월 4일 v0.9.0을 공개했습니다. OCP FP8 E4M3 양자화, 다중 시퀀스용 KV 캐시 개선, 멀티노드 텐서 병렬의 초기 지원이 한 릴리스에 함께 들어왔습니다.
한 장짜리 그래픽카드로 로컬 모델을 돌리는 사람에게 실속은 FP8입니다. 가중치를 8비트로 담는 형식이라, 16비트로는 메모리에 못 올리던 크기를 한 단계 더 시도할 수 있습니다.
여러 사람이 붙는 서버를 운영한다면 다른 변화가 중요합니다. 시퀀스별로 KV 캐시를 나눠 쓰는 구성에서 떨어졌던 프리필 성능을 되돌리는 연산이 추가됐습니다.

0.9.0에 새로 들어온 세 가지
첫째가 FP8입니다. OCP 표준의 FP8 E4M3 텐서 형식이 추가됐고, 변환 도우미와 새 파일 형식(ftype) LLAMA_FTYPE_MOSTLY_F8_E4M3이 함께 들어갔습니다.
둘째는 flash_attn_ext_rows 연산입니다. 시퀀스마다 KV 캐시 행을 따로 조회하는 구조에서 여러 시퀀스를 동시에 처리할 때의 비효율을 줄이고, KV를 나누지 않던 방식의 프리필 성능을 되살렸다고 릴리스 노트는 적습니다.
셋째는 ggml 0.29.0을 통한 멀티노드 텐서 병렬입니다. 여러 프로세스를 묶는 통신 인터페이스를 새로 넣어 NCCL 기반으로 모델을 노드 여러 대에 나눠 올리는 길이 열렸습니다. 다만 초기 지원이라고 못박았습니다.
배치 텐서 복사 API도 새로 생겼습니다. 기존 2차원 복사 함수를 대체하는 묶음이고, Metal과 CUDA에 먼저 구현됐습니다.
FP8은 4비트 양자화와 무엇이 다른가
FP8은 이름 그대로 8비트 부동소수점입니다. 16비트(BF16)로 올리던 모델을 8비트로 담으면 가중치가 차지하는 메모리가 정확히 절반이 됩니다. 32GB 한 장에 16비트로는 어림도 없던 30B급을 계산해 볼 수 있다는 뜻입니다.
흔히 쓰는 Q4_K 같은 정수형 양자화는 비트를 더 줄입니다. FP8은 지수부를 남기고 가수부를 줄이는 형식이라, 값이 넓게 흩어진 가중치를 담는 데 맞춰져 있습니다. 그렇다고 16비트와 품질이 같다는 주장은 릴리스 노트에 없습니다. 형식이 추가됐다는 사실까지만 확인됩니다.
기존 파일을 그대로 쓰는 사람은 이번 변경으로 달라지는 게 없습니다. FP8을 쓰려면 llama-quantize로 그 형식에 맞춰 다시 변환하고, 변환된 파일이 실제로 돌아가는지 확인해야 합니다. 양자화 도구 자체도 손봤습니다. IQ4 생성이 중간 지점을 미리 계산하도록 빨라졌고, imatrix의 --nextn 크래시와 분할 GGUF 병합 시 조각 불일치를 거부하는 처리도 함께 들어갔습니다.

여러 명이 붙는 서버에서 달라지는 것
llama-server 쪽 변화도 실사용에 닿습니다. GET /props가 모델이 가진 음성 목소리 목록을 돌려주고, 음성 생성 엔드포인트가 그 이름을 그대로 받습니다.
/v1/responses 응답에는 extra_params(시드·min_p 등)가 채팅 완성 응답으로 변환될 때 함께 실립니다. 앞단 게이트웨이에서 샘플링 값을 넘기던 구성이라면 응답에서 그 값을 잃지 않습니다.
성능 작업은 백엔드 전반에 걸쳐 있습니다. CPU는 SVE 커널, SYCL은 양자화 KV를 위한 DPAS 플래시 어텐션, CUDA는 MoE MMQ 융합, Metal은 MXFP4 mat-vec, Vulkan은 split-K 튜닝, OpenCL은 양자화 GEMM·GEMV 범위 확대입니다. Hexagon 백엔드에는 conv2d와 업스케일 같은 연산이 더해졌습니다.
서버 쪽에는 이런 수정도 붙었습니다. 공유 결정 접두사를 첫 출력에서 자르고, n_rs_seq보다 긴 드래프트에서도 투기적 체크포인트를 복원합니다. 추론 UI는 입력에 내용이 있을 때만 제출 버튼을 띄우고, 도구 호출이 끝내 돌아오지 않으면 중단 상태로 표시합니다.

새로 지원하는 모델과 음성 기능
새 아키텍처는 네 개입니다. 확산 모델 Clover-35B-A3B-Preview(자기회귀 모드), Limite 1B - Violetto, Metis-1.6(Praxis 약 2.9B·Logos 약 10.2B, Mamba-2와 GQA를 섞고 LatentMoE를 쓴 구조), Mistral Large 4입니다.
Gemma 4의 E2B·E4B는 그래프 최적화로 프리필이 크게 개선됐다고 적었습니다. LFM3는 NVFP4 GGUF와 텐서 분할이 열렸고, 음성 코덱 디코더도 양자화 대상에 들어갔습니다.
음성 쪽은 세 갈래입니다. Chatterbox TTS가 추가됐고, Nemotron 3.5 Transcribe는 40개 언어 오프라인 전사에 프롬프트 문맥과 화자 구분을 붙입니다. Pocket TTS는 목소리 복제 없이 미리 정의된 목소리를 쓰는 방식입니다.
지금 올릴까, 기다릴까
바로 올릴 이유는 두 가지입니다. 여러 시퀀스를 동시에 돌리는 서버에서 KV 캐시 성능을 되돌린 수정이 들어왔고, 메모리 여유를 만들고 싶다면 FP8이 새 선택지가 됩니다.
기다릴 이유도 분명합니다. 0.9.0은 새 양자화 형식이 처음 들어온 릴리스입니다. FP8 GGUF를 직접 변환해 본 사례가 아직 적고, 백엔드마다 커널 지원도 고르지 않습니다. 서비스 중인 서버라면 0.8.x에 머물다가 나이틀리 빌드(b12110)에서 검증이 쌓인 뒤 옮기는 편이 안전합니다.
필요한 메모리는 형식이 정합니다. 8비트 가중치는 파라미터 하나에 1바이트라, Metis Logos 약 10.2B를 FP8로 올리면 가중치만 10GB 안팎입니다. 여기에 KV 캐시와 컨텍스트 버퍼가 얹히고, 35B-A3B처럼 전문가를 섞은 모델은 계산에 쓰는 3B가 작아도 전체 35B를 메모리에 올려야 합니다. 16GB 카드라면 10B급 FP8까지가 현실적인 상한이고, 24~32GB가 있어야 30B급을 8비트로 시도할 수 있습니다. 멀티노드 텐서 병렬은 노드 사이 통신이 받쳐줘야 하므로 대역폭이 낮은 네트워크에서는 이득이 줄어듭니다.
옮기기 전에 확인할 것은 세 가지입니다. 쓰는 모델이 새 아키텍처 목록에 이름을 올렸는지, 쓰는 백엔드가 이번에 어떤 커널을 받았는지, 그리고 긴 양자화 이름 안에서도 -hf 태그가 제대로 붙는지입니다. 마지막 항목은 이번에 고친 버그라, 모델 이름에 숫자가 길게 붙은 GGUF를 쓰던 사람이면 한 번 확인할 값이 있습니다.
⬇⬇⬇ 로켓배송으로 바로받기 ⬇⬇⬇
GIGABYTE GIGABYTE 지포스 RTX 5090 WINDFORCE OC D7 32GB 제이씨현
로켓배송으로 바로 받기이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.
한 장으로 돌리는 사람에게는 FP8이, 여러 명을 받는 서버에는 flash_attn_ext_rows 수정이 이번 릴리스의 실속입니다.
원문 보기 - llama.cpp v0.9.0 릴리스 노트
이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.



