b8966
요약
이 기술 기사는 ggml-cuda 라이브러리에 FlashAttention 지원을 추가한 업데이트에 대한 내용을 담고 있습니다. 특히 GQA(Grouped Query Attention) 비율이 32인 경우(DKQ=320/DV=256, ncols2=32)를 지원하며, MMA-f16 및 타일 커널 구성, 디스패치 로직 등을 개선했습니다. 또한 다양한 플랫폼(macOS, iOS, Linux, Android, Windows 등)과 아키텍처(CPU, CUDA, Vulkan, ROCm, OpenVINO, SYCL 등)에 대한 지원을 확장하고 버그를 수정하여 호환성을 높였습니다.
핵심 포인트
- ggml-cuda 라이브러리에 FlashAttention 기능을 추가하여 성능을 최적화했습니다.
- GQA 비율이 32인 특정 조건(DKQ=320/DV=256)에 대한 지원을 구현하고, 관련 커널 및 로직을 업데이트했습니다.
- MMA-f16와 타일 커널 구성, 디스패치 로직 개선을 통해 전반적인 계산 효율성을 향상시켰습니다.
- macOS Apple Silicon, 다양한 Linux 아키텍처(x64, arm64), Windows 및 Android 등 광범위한 플랫폼과 백엔드(CUDA, Vulkan, ROCm, OpenVINO, SYCL)에 대한 지원을 확장했습니다.
ggml-cuda: DKQ=320/DV=256 및 ncols2=32 에 대한 flash-attn 지원 추가 (… (#22286) ggml-cuda: DKQ=320/DV=256 및 ncols2=32 (GQA=32) 에 대한 flash-attn 지원 추가 MMA-f16 와 tile 커널 구성, 디스패치 로직, 템플릿 인스턴스, 그리고 Mistral Small 4(헤드 크기 320/256) 를 위한 tile .cu 파일을 추가합니다. GQA 비율을 32 만 지원하기 위해 ncols2=32 로 제한합니다. GQA!=32 일 경우 BEST_FATTN_KERNEL_NONE 을 반환하도록 체크를 추가합니다 코드 리뷰 제안 사항 반영 리뷰 코멘트 해결 Co-authored-by: Johannes Gäßler johannesg@5d6.de 리뷰 코멘트 해결 및 커널 구성을 DQK=512, DV=512 로 기본값으로 변경 (이전에는 DQK=256, DV=256) sinks=1, ncols=32 인 경우 두 warp-group 가 생성되지만 두 그룹 모두 sinks 인덱스가 동일 (0,...,15) 이므로 sinks=1 일 때 CPU 출력과 출력이 일치하지 않는 버그 수정 각 warp_group(threads.y / np) 를 위한 기본 인덱스인 sink_base 추가 코드 리뷰 제안 사항 반영 Co-authored-by: Johannes Gäßler johannesg@5d6.de ggml/src/ggml-cuda/template-instances/generate_cu_files.py 업데이트 Co-authored-by: Johannes Gäßler johannesg@5d6.de Co-authored-by: Johannes Gäßler johannesg@5d6.de macOS/iOS: macOS Apple Silicon (arm64) macOS Apple Silicon (arm64, KleidiAI 활성화) macOS Intel (x64) iOS XCFramework 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: Android arm64 (CPU) Windows: Windows x64 (CPU) Windows arm64 (CPU) Windows x64 (CUDA 12) - CUDA 12.4 DLLs Windows x64 (CUDA 13) - CUDA 13.1 DLLs Windows x64 (Vulkan) Windows x64 (SYCL) Windows x64 (HIP) openEuler: openEuler x86 (310p) openEuler x86 (910b, ACL Graph) openEuler aarch64 (310p) openEuler aarch64 (910b, ACL Graph)
AI 자동 생성 콘텐츠
본 콘텐츠는 llama.cpp Releases의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기