본문으로 건너뛰기

© 2026 Molayo

llama.cpp헤드라인2026. 05. 28. 03:16

vulkan: F16/32에 대해 MUL_MAT_VEC을 반복당 4 K로 전환 ([#22887](https://github.com/ggml-or

요약

llama.cpp의 Vulkan 백엔드에서 F16/32 데이터 타입에 대한 MUL_MAT_VEC 연산 최적화를 진행했습니다. Intel BMG 환경에서 Qwen3.5-9B 모델 테스트 시 약 4.8%의 성능 향상을 달성했으며, 정렬된 로드 사용 및 OOB 읽기 문제를 수정했습니다.

핵심 포인트

  • Vulkan 백엔드 MUL_MAT_VEC 반복당 4K 전환으로 성능 향상
  • 정렬된 로드(aligned loads) 사용을 통한 추가 최적화
  • Mesa 컴파일러의 코드 생성을 돕기 위한 경계값 명시 로직 개선
  • 홀수 크기 연산 시 발생하던 OOB(Out-of-Bounds) 읽기 오류 수정

vulkan: F16/32에 대해 MUL_MAT_VEC을 반복당 4 K로 전환 (#22887)

  • vulkan: F16/32에 대해 MUL_MAT_VEC을 반복당 4 K로 전환

Mesa git 대비, Intel BMG 상의 Qwen3.5-9B:BF16 tg128 테스트에서 4.8%의 성능 향상을 보여줍니다.

OOB (Out-of-Bounds) A 읽기 문제를 수정하는 마지막 커밋 전까지는 일부 테스트가 실패할 수 있음에 유의하십시오.

  • vulkan: 사용 가능한 경우 mul_mat_vec에서 정렬된 로드 (aligned loads) 사용

Mesa git 대비, Intel BMG 상의 Qwen3.5-9B:BF16 tg128 테스트에서 3.3%의 성능 향상을 보여줍니다.

  • mul_mat_vec에서 num_rowsNUM_ROWS보다 작거나 같음(<=)을 명시적으로 표현

Mesa의 UUB (Unreachable Unbound) 로직은 조건문을 꿰뚫어 볼 수 없어, 정리 실행 (cleanup run) 시 num_rows 필드의 경계값을 이해하는 능력이 제한됩니다. num_rows가 실제로 항상 NUM_ROWS보다 작거나 같음을 명시하는 것은 Mesa가 약간 더 나은 코드 생성 (codegen)을 수행하는 데 도움이 됩니다.

Mesa git 대비, 현재 Intel BMG 상의 Qwen3.5-9B:BF16 tg128 테스트에서 1%의 성능 향상을 보여줍니다.

  • vulkan: 홀수 크기에 대한 MUL_MAT_VEC의 OOB A 읽기 수정

A 행렬에서의 OOB 읽기를 수정하라는 TODO 사항이 있었으며, 여기서 이를 처리합니다.

Intel BMG 상의 Qwen3.5-9B:BF16 tg128 테스트에서 성능 노이즈 범위(+<0.1%) 내에 있습니다.

macOS/iOS:

Linux:

<strong>Linux:</strong>

<strong>Android:</strong>

<strong>Windows:</strong>

<strong>Windows:</strong>

openEuler:

  • DISABLED
  • openEuler x86 (310p)
  • openEuler x86 (910b, ACL Graph)
  • openEuler aarch64 (310p)
  • openEuler aarch64 (910b, ACL Graph)

UI:

AI 자동 생성 콘텐츠

본 콘텐츠는 llama.cpp Releases의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0