모델 실행 소프트웨어 llama.cpp의 b12291은 이전 계산값을 재사용하는 캐시 처리 최적화를 확대했다. 모델 연산을 처리하는 Vulkan 경로에서 최적화 범위를 넓히고, 일부 데이터 크기를 잘못 분류하던 오류를 고쳤다. 개발팀은 특정 크기에서 큰 속도 향상을 관찰했으며, 새 최적화가 적용되지 않는 경우에도 오류 수정이 도움이 될 것으로 설명했다.

1. 캐시 데이터를 연산에 쓰는 경로를 확대했다

이번 릴리스에 포함된 변경은 Vulkan에서 키·값 캐시의 역양자화 최적화를 쓸 수 있는 경로를 넓힌다. 키·값 캐시는 이전 계산값을 저장해 재사용하는 공간이다. 역양자화는 작게 압축해 둔 데이터를 연산에 쓸 수 있는 형태로 풀어내는 처리다. 이번 변경의 초점은 이 처리의 최적화를 활용할 수 있는 실행 경로를 넓히는 데 있다.

이 최적화는 coopmat2(CM2) 경로에서도 허용되며, 적용 여부는 질의 토큰 수와 GQA 비율을 곱한 값에 기반한 판단 기준에 따른다. GQA 비율은 질의 헤드 수와 키·값 헤드 수의 비율이다. 어텐션은 입력 요소 간 관계를 계산하는 연산으로, 입력의 길이뿐 아니라 이 연산의 헤드 구성도 최적화 선택에 관여한다.

따라서 Vulkan 사용자가 살펴볼 변화는 실행 환경의 이름만이 아니라 실제 작업에서 어떤 처리 경로가 선택되는지다. 릴리스 설명에 제시된 두 요소는 개발자가 자신의 입력과 모델 구성을 중심으로 변경의 의미를 읽을 수 있는 실마리다. 같은 Vulkan 환경을 쓰더라도 질의 토큰 수와 모델의 헤드 구성을 함께 살펴보는 것이 이번 변경을 이해하는 출발점이다.

2. 정렬된 데이터를 잘못 분류하던 오류를 바로잡았다

개발팀은 작업 중 특정 헤드 크기에서 매우 큰 속도 향상을 관찰했다고 밝혔다. 헤드는 어텐션 연산을 나누어 맡는 단위다. 릴리스 설명은 이 크기들이 정렬되지 않은 것으로 잘못 취급되고 있었다며, 정렬된 것으로 처리하도록 고쳤다고 설명했다.

정렬 판정은 데이터의 메모리 배치가 연산에 적합한 간격과 위치를 따르는지 확인하는 과정이다. GQA는 데이터에 접근하는 간격인 보폭(stride)으로 nbq2 값을 쓰므로, 정렬 검사에서도 이 값을 확인하도록 고쳤다. 데이터를 다시 배치하는 것이 아니라 정렬 여부를 검사할 기준값을 바로잡는 변경이다.

개발팀은 역양자화 최적화가 적용되지 않을 때도 정렬 수정이 도움이 될 것으로 예상했다. 따라서 Vulkan 환경을 운영하는 개발자는 새 캐시 처리 경로의 적용 여부와 별개로 정렬 판정 수정의 효과도 살펴볼 수 있다.

3. 성능 이익과 도입 검증을 함께 판단해야 한다

릴리스 설명은 처리량이나 향상 배수, 측정에 쓴 하드웨어·모델·설정을 제시하지 않았다. 따라서 성능 개선의 이익을 실제 도입 판단으로 연결하려면, 사용 중인 모델과 입력으로 기존 버전 대비 효과를 확인하는 검증 작업도 함께 잡아야 한다.

4. 배포된 Vulkan 빌드로 변경을 살펴볼 수 있다

b12291은 2026년 11월 11일 미리보기 릴리스로 공개됐다. 해당 버전을 검토하는 사용자는 릴리스 페이지의 배포 파일 목록에서 운영체제와 프로세서 구성에 맞는 Vulkan 빌드를 고를 수 있다.

우분투용 배포 목록에는 x64와 arm64용 Vulkan 빌드가 포함돼 있다. 윈도용 목록에도 같은 두 아키텍처의 Vulkan 빌드가 올라와 있다. 이들 환경에서는 공개된 패키지를 출발점으로 이번 변경을 살펴볼 수 있다. 배포 목록에 운영체제뿐 아니라 프로세서 아키텍처도 나뉘어 있으므로, 파일을 고를 때는 두 항목을 함께 확인하면 된다.

b12291의 핵심은 Vulkan 캐시 최적화의 적용 경로를 넓히는 동시에, 그 최적화 밖에서도 의미가 있는 정렬 판정 오류를 바로잡았다는 데 있다.