opencl: flash attention 개선 ([#25069](https://github.com/ggml-org/llama.cpp/pull/
요약
llama.cpp 프로젝트에서 OpenCL을 활용한 Flash Attention 커널 개선 사항을 반영했습니다. f16, f32 및 양자화된 q4_0, q8_0 형식을 지원하며, 패딩 및 마스킹 최적화를 통해 연산 효율을 높였습니다.
핵심 포인트
- OpenCL 기반 Flash Attention 커널 재작업 및 지원 확대
- f16, f32 및 q4_0, q8_0 양자화 형식 지원
- 패딩 및 마스킹 최적화를 통한 연산 생략 기능 구현
- MoE 텐서에 대한 SOA(Structure of Arrays) 적용
opencl: flash attention 개선 (#25069)
-
opencl: f16 및 f32를 위한 FA (Flash Attention) 커널 재작업
-
opencl: flash-attention prefill prepass 커널
-
flash_attn_kv_pad_f16은 tail KV tile을 BLOCK_N 배수로 패딩(pad)합니다.
-
flash_attn_mask_pad_f16은 일치하는 mask tile을 패딩(pad)합니다.
-
flash_attn_blk_f16은 각 query block당 KV tile을
fully masked / mixed / fully unmasked로 분류하여,
메인 커널이 fully-masked tile을 건너뛰고
fully-unmasked tile에 대한 mask lookup을 생략할 수 있도록 합니다. -
opencl: q4_0 및 q8_0를 위한 FA 커널
-
opencl: f32에서 q8_0/q4_0로의
set_rows구현 -
opencl: q4_0 및 q8_0를 위한 dequant (dequantization) 커널
-
opencl: override 기능이 포함된 FA tile 튜닝 테이블 추가
-
opencl: FA를 위한 host side 연결
-
opencl: q4_0 MoE 텐서에 대해서도 SOA (Structure of Arrays) 적용
-
opencl: 외관 수정 (cosmetic fix)
-
opencl: 리팩토링(refactor) 및 주석을 통한 일부 코드 경로 명확화
-
opencl:
-cl-finite-math-only에 대한 infinity 오류 수정
Co-authored-by: Li He lih@qti.qualcomm.com
macOS/iOS:
- macOS Apple Silicon (arm64)
- macOS Apple Silicon (arm64, KleidiAI 활성화) 비활성화됨 (DISABLED)
- macOS Intel (x64)
- iOS XCFramework
Linux:
Linux:
- Ubuntu x64 (CPU)
- Ubuntu arm64 (CPU)
- Ubuntu s390x (CPU)
- Ubuntu x64 (Vulkan)
- Ubuntu arm64 (Vulkan)
- Ubuntu x64 (ROCm 7.2)
- Ubuntu x64 (OpenVINO)
- Ubuntu x64 (SYCL FP32)
- Ubuntu x64 (SYCL FP16)
Android:
Windows:
Windows:
- Windows x64 (CPU)
- Windows arm64 (CPU)
- Windows arm64 (OpenCL Adreno)
- Windows x64 (CUDA 12) - CUDA 12.4 DLLs
- Windows x64 (CUDA 13) - CUDA 13.3 DLLs
- Windows x64 (Vulkan)
- Windows x64 (OpenVINO)
- Windows x64 (SYCL)
- Windows x64 (HIP)**
openEuler:
- DISABLED
- openEuler x86 (310p)
- openEuler x86 (910b, ACL Graph)
- openEuler aarch64 (310p)
- openEuler aarch64 (910b, ACL Graph)**
UI:
AI 자동 생성 콘텐츠
본 콘텐츠는 llama.cpp Releases의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기