본문으로 건너뛰기

© 2026 Molayo

llama.cpp헤드라인2026. 06. 02. 18:38

hexagon: 최신 모델을 위한 MUL_MAT, MUL_MAT_ID, FLASH_ATTN 및 GDN 정리와 최적화 ([#23989](https

요약

llama.cpp의 Hexagon DSP 최적화 업데이트로, 행렬 곱셈(matmul), Flash Attention, GDN 연산의 성능을 개선하고 중복 로직을 제거했습니다. Qwen3.5-2B 모델의 특정 오류를 수정하고 다양한 데이터 타입에 대한 효율적인 커널 라우팅을 지원합니다.

핵심 포인트

  • Hexagon DSP를 위한 행렬 곱셈(matmul) 성능 향상 및 중복 로직 제거
  • Qwen3.5-2B 모델에서 발생하던 특정 RMS-norm 오류 수정
  • Flash Attention(FA) 및 Gated Delta Net(GDN) 연산 최적화
  • F16/F32 타일링 및 파이프라인 모드 재도입을 통한 효율성 증대

hexagon: 최신 모델을 위한 MUL_MAT, MUL_MAT_ID, FLASH_ATTN 및 GDN 정리와 최적화 (#23989)

  • hex-mm: F32 * F32 -> F32 행렬 곱셈 (matmuls)에 대한 초기 지원

  • hex-rms-norm: fused rms_norm_mul에서 src1 stride 사용 오류 수정

  • hex-ops: 이를 덮어쓰는 (clobber) 연산(ops)에서 spad 포인터 초기화

이는 fused rms-norm-mul이 실패하던 특이한 사례를 해결하며, 이는 qwen3.5-2B 모델에서 특정 search op-bath 크기에서만 발생했습니다.

  • hmx-mm: HMX에서 F32 * F32 -> F32 matmul_2d 지원 추가

이를 위해 Q4_0 * F32 -> F32 matmul을 사용하기로 결정했습니다.
Q4_0는 역양자화(dequantized)되어 F16으로 타일링(tiled)되며, 여기서는 F32를 양자화(quantize)하여 F16으로 타일링합니다.
매우 단순하면서도 상당히 효율적입니다.

  • hmx-mm: f16 2D 행렬 곱셈 (matmuls)을 다른 모든 유형에 사용되는 것과 동일한 커널(kernel)을 통해 라우팅

  • hmx-mm: 이전에 사용했으나 훨씬 더 범용적인 방식인 파이프라인(pipelined) 대 비파이프라인(non-pipelined) 모드 재도입

이번 업데이트는 행렬 곱셈 (matmul) 성능을 더욱 향상시키는 동시에, 서로 다른 경로에 존재하던 대부분의 중복 로직을 제거합니다.

  • hmx-fa: matmul 업데이트와 유사하게 파이프라인을 약간 개선

  • hmx-mm: HMX를 위한 MAT_MUL_ID 지원의 초기 버전

  • hmx-mm: MUL_MAT_ID에 대한 mxfp4 처리 수정

  • hex-gdn: GATED_DELTA_NET 최적화

DMA 프리페치(prefetch)/더블 버퍼링(double-buff), HVX를 이용한 모든 요소의 벡터화(vectorize), 즉 평소 하던 방식대로 진행되었습니다 :)

  • hmx-mm: fastmod를 사용할 수 있는 사례를 하나 더 발견

  • hexagon: 약간의 성능 향상을 위해 DCVS 설정 업데이트

  • hmx-fa: hmx-flash-attn에서 fastdiv 사용

  • hmx-fa: 내부 루프(inner loop)를 방해하지 않도록 기울기(slope) 값 사전 계산

  • hvx-utils/fa: powf 및 logf를 위한 새로운 HVX 헬퍼(helpers) 추가 및 이를 사용하여 FA alibi 속도 향상

  • hex-ops: 일부 소스(srcs)가 비어 있을 때 소스 텐서(src tensors)의 순서를 망가뜨리던 퓨전(fusion) 로직의 버그 수정

  • hex-fa: sink가 있거나 차원(dims)이 정확하지 않은 경우 HVX로 올바르게 폴백(fallback)

macOS/iOS:

macOS/iOS:

Linux:

Android:

Windows:

Windows:

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