llama.cpp가 새 미리보기 빌드에서 Zamba2 계열 모델의 계산을 GPU로 더 많이 옮겨 생성 속도를 높였다. CUDA로 이 모델을 실행하는 개발자가 대상이며, 개발자 측정에서는 같은 하드웨어와 양자화, 모델 수치의 정밀도를 낮춰 저장하는 방식 조건에서 처리량, 일정 시간 동안 처리하는 양이 약 35% 늘었다.
1. GPU가 맡지 못하던 계산을 직접 처리한다
핵심은 모델의 계산 방식과 GPU 지원 목록 사이의 빈틈을 메운 것이다. Zamba2와 비슷한 구조는 앞선 상태를 이어 계산하는 순환 스캔 단계에서 상태 크기, 계산 중 유지되는 값의 개수인 64를 사용한다. 기존 CUDA 처리 경로는 96, 128, 256만 지원해 이 모델의 주요 스캔 계산은 매 단계 CPU로 넘어갔다.
릴리스 설명은 이 병목 상황에서 Zamba2가 초당 6~7토큰을 처리한 반면, 다른 아키텍처, 모델의 구성 방식은 같은 하드웨어에서 초당 50~70토큰을 냈다고 적었다. GPU가 있어도 모델이 요구하는 계산 경로가 빠져 있으면 CPU 처리가 생성 속도를 제한할 수 있다는 사례다.
이번 수정은 기존 구현 패턴을 따라 상태 크기 64용 경로를 추가하고, GPU 지원 여부를 판단하는 조건과 오류 문구를 함께 갱신했다. 계산의 수학적 내용은 그대로 유지했다.
2. 같은 조건의 추론, 입력에 따라 모델이 출력을 만드는 과정 측정에서 약 35% 늘었다
변경 제안 작성자는 Zamba2-7B-Instruct의 처리량이 초당 약 11토큰에서 15.1토큰으로 늘었다고 보고했다. 같은 하드웨어와 양자화 조건을 유지한 추론 측정에서 재현 가능한 약 35% 개선을 관찰했다는 설명이다. 릴리스 노트와 커밋, 코드 변경을 기록한 항목 설명에도 같은 전후 수치가 실렸다.
이 결과는 계산을 CPU로 넘기던 주요 원인을 제거한 뒤의 개선 폭을 보여 준다. 모델의 수학적 연산을 바꾸기보다 GPU가 맡을 수 있는 범위를 넓혀 처리량을 높였다는 점이 이번 수정의 특징이다.
3. CPU 기준 결과와 맞춰 정확성을 확인했다
변경 제안 작성자는 GPU 결과를 내장 정확성 테스트의 CPU 기준 구현과 비교했다고 설명했다. Zamba2의 실제 차원 속성, 모델 계산 구조를 정하는 크기 정보를 반영한 새 테스트 세 가지를 추가했고, 전체 28개 테스트가 통과했다. GPU 처리 범위를 넓히면서도 기준 계산과 결과가 맞는지 확인하는 절차다.
추가된 테스트에는 여러 토큰을 처리하는 경우와 한 토큰씩 생성하는 경우가 포함된다. 아래는 원문 코드에서 상태 크기 64용 GPU 계산을 선택하는 부분의 발췌다.
if (d_state == 64) { // Zamba2
constexpr int threads = 64;
constexpr int num_warps = threads/WARP_SIZE;
const dim3 blocks((n_head * head_dim + (num_warps - 1)) / num_warps, n_seq, 1);
const ggml_cuda_kernel_launch_params launch_params = ggml_cuda_kernel_launch_params(blocks, threads, 0, stream);
ggml_cuda_kernel_launch(ssm_scan_f32_group<64/WARP_SIZE, 64>, launch_params,
src0, src1, src2, src3, src4, src5, src6, dst,4. 주요 병목을 줄여도 CPU 처리 부담은 남는다
이번 변경의 이익은 주요 스캔 계산을 GPU가 직접 맡게 된다는 데 있다. 계산을 담당하는 장치가 달라진 것으로, CPU로 넘어가던 경로를 GPU 지원 범위에 넣는 방식의 최적화다.
다만 변경 제안 작성자는 별개 원인으로 스캔 호출의 약 28%가 여전히 CPU로 넘어가며 다른 아키텍처 수준의 처리량에는 이르지 못했다고 보고했다. 원문은 병목 조사 단계의 초당 6~7토큰과 개선 측정의 약 11토큰 사이 차이나, 구체적인 GPU와 양자화 형식을 설명하지 않았다.
남은 CPU 처리는 이익과 함께 살펴볼 비용이다. 주요 계산 경로를 GPU로 옮긴 뒤에도 CPU가 맡는 작업이 남아 있어, 후속 최적화의 초점은 별도로 남은 우회 원인을 찾는 데 있다.
5. 미리보기 릴리스의 CUDA 빌드로 제공된다
b12207은 2026년 11월 8일 공개된 미리보기 릴리스다. 배포 항목에는 리눅스와 윈도용 CUDA 빌드가 포함돼 있다. 해당 환경에서 Zamba2를 실행하는 개발자는 운영체제에 맞는 CUDA 빌드를 선택할 수 있다.
사용 경로를 고를 때 핵심은 이번 수정이 CUDA 계산 경로에 들어갔다는 점이다. 릴리스는 리눅스와 윈도용으로 CUDA 12와 13 빌드를 제공하며, 함께 배포되는 CUDA 라이브러리 링크도 안내한다.
b12207의 가치는 계산식을 바꾸지 않고 GPU 지원의 빈틈을 메워 Zamba2의 생성 처리량을 높였다는 데 있다.
