에이전트와 개발

llama.cpp b11854, Vulkan 연산 정밀도 선택과 FP32 오버플로 처리 추가

llama.cpp가 10월 24일 공개한 b11854 빌드에서 Vulkan 백엔드가 행렬 곱셈의 누산 정밀도를 고르고, FP32 값이 넘치면 스케일링으로 처리한다.

루카스 ·

llama.cpp 프로젝트가 2026년 10월 24일 시험판으로 표시된 b11854 빌드를 공개했다. 이번 빌드는 Vulkan 백엔드에 ggml의 src1 정밀도 지원을 넣고, 연산 결과를 쌓는 누산 정밀도를 고르는 방식을 바꿨다. FP32 값이 표현 범위를 넘는 오버플로는 값을 스케일링해 처리한다(변경 번호 #30656).

Vulkan API의 그래픽스 파이프라인 단계를 순서대로 연결해 보여주는 단순화된 도식. 입력 단계에서 출력 단계까지 화살표로 흐름을 표시한다.
Vulkan API의 그래픽스 파이프라인을 단순화한 도식Alexander Overvoorde / Wikimedia Commons · CC BY-SA 4.0 · 원본 · 크기 조정

릴리스 페이지에는 Vulkan용 빌드가 Windows x64와 arm64, Ubuntu x64와 arm64 네 종류로 올라 있다.

릴리스 기록에 나온 세부 변경은 다음과 같다. 누산 정밀도를 고르는 로직을 고쳤고, FP32 오버플로를 스케일링으로 다루도록 했다. FP16 활성값으로 복사하는 단계의 오버플로도 처리했다. src0이 FP32일 때도 같은 처리를 적용했으며, 스케일링이 꺼져 있으면 값을 건드리지 않는다. mul_mat에는 검사를 추가했다. 정밀도 값을 읽는 ggml 보조 함수를 새로 만들어 Vulkan 백엔드에서 쓰고, 관련 변수 이름은 acc_prec로 바꿨다.

개발 과정에서 FP16 스케일링은 최종적으로 제거됐다. 테스트는 추가했다가 일부를 줄였고, 테스트의 스케일링이 src0 값까지 포함하도록 고쳤다. 릴리스 기록은 수정 배경이나 속도 변화를 밝히지 않았다.

같은 빌드는 CUDA 12와 13, ROCm, OpenVINO, SYCL 등 다른 백엔드용 파일도 함께 배포한다. 이번 릴리스 기록에 담긴 변경 내용은 Vulkan 백엔드에 관한 것이다.

댓글

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

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