에이전트와 개발

llama.cpp, Hexagon 연산 정리와 Vulkan 타일 오류 고친 빌드 3종 공개

llama.cpp가 b11875~b11877 빌드 세 개를 잇달아 공개했다. Snapdragon Hexagon NPU 연산 처리를 일반화하고, Vulkan의 행렬곱 타일 오류와 conv3d 타일 크기를 손봤다.

루카스 ·

llama.cpp 프로젝트가 2026년 10월 25일 b11875, b11876, b11877 빌드를 약 50분 안에 차례로 공개했다. 첫 빌드는 Qualcomm Snapdragon용 Hexagon NPU 백엔드의 연산 처리 방식을 일반화했고, 나머지 두 빌드는 Vulkan 백엔드의 행렬곱 타일 오류와 3차원 합성곱(conv3d) 타일 크기를 다뤘다.

빌드마다 릴리스 페이지가 따로 있고, 페이지마다 플랫폼별 내려받기 목록이 같은 구성으로 붙어 있다. Hexagon NPU는 Android arm64와 Linux arm64용 Snapdragon 빌드(CPU, Adreno GPU, Hexagon NPU 포함)로 제공되며 각각 설치 안내 문서가 있다. Vulkan 빌드는 Ubuntu x64·arm64와 Windows x64·arm64용이 올라와 있다.1,2,3

b11875(공개 23:06)는 Hexagon 백엔드에서 단항·이항·행렬곱 연산의 차원을 합치거나 바꾸는 처리를 일반화했다(#31071). 합치는 처리는 호스트에서 맡도록 하고 일반화했다. 행 수가 적을 때 합치는 대신 나누는 논리는 단항 연산에만 추가됐다. 쓰지 않게 된 단항 연산 보조 코드는 지웠으며, 프로파일링 스크립트 profile.py에는 결과를 서로 견주는 --compare 옵션이 들어갔다.1

b11876(23:27)은 Vulkan의 작은 행렬곱 타일 오류를 고쳤다(#30106). 작은 타일의 폭 값 WM이 타일의 BLOCK_SIZE나 WARP와 관계없이 32, 서브그룹 폭이 8이면 8로 고정돼 있었다. 서브그룹 폭이 16인 Mali GPU에서는 워크그룹의 두 번째 서브그룹이 옆 타일의 열을 덮어썼고, 폭이 8인 환경에서는 일부 _id 타일에서 계산되지 않은 행이 남았다. 이번에는 서브그룹마다 워프 타일이 하나씩 생기도록 WM을 계산하게 했다. 기여자는 Pixel 9 Android 폰에서 시험해, 수정 전 MUL_MAT 20건과 MUL_MAT_ID 6건이던 실패가 모두 통과했다고 적었다. 이 변경은 이슈 #28637을 해결하며, 작성 과정에 Claude Opus 5.5의 도움을 받았다고 밝혔다.2

b11877(23:57)은 Vulkan conv3d에 더 큰 타일 크기를 추가했다(#29920). 실제로는 coopmat2 경로에만 해당하며, 이 경로는 출력을 저장하는 데 공유 메모리가 필요 없다. 공유 메모리에 출력을 담으면 64KB가 넘게 쓰게 된다고 설명했다. 새 크기는 최신 드라이버에서만 쓰도록 제한했다. 대표 백엔드 테스트도 몇 개 더했는데, sd.cpp의 Wan VAE를 보고 Codex가 만든 것이라고 적었다.3

댓글

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

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