metal: f16/f32를 지원하기 위한 GLU 커널 템플릿화 ([#23882](https://github.com/ggml-org/llama.
요약
llama.cpp의 Metal 커널 업데이트를 통해 GLU 커널을 템플릿화하여 f16 및 f32 지원을 강화했습니다. 메모리 대역폭 효율을 위해 네이티브 타입을 사용하면서도, 수치 안정성을 위해 실제 연산은 float로 수행하도록 최적화되었습니다.
핵심 포인트
- GLU 커널 템플릿화를 통한 코드 효율성 증대
- f16/f32 지원 및 메모리 대역폭 절약 최적화
- 수치 폭발 방지를 위한 ALU 연산 float 유지
- macOS, Linux, Android, Windows 등 다양한 플랫폼 바이너리 제공
metal: f16/f32를 지원하기 위한 GLU 커널 템플릿화 (#23882)
하드코딩된 f32 GLU 커널을 제거하고 단일 템플릿을 사용하도록 변경했습니다. 이제 메모리 대역폭 (memory bandwidth)을 절약하기 위해 네이티브 텐서 타입(half 또는 float)으로 로드/저장하지만, geglu/swiglu에서 수치가 폭발하는 것을 방지하기 위해 실제 ALU 연산은 float로 유지합니다. 또한 f16 입력을 허용하도록 디스패치 게이트 (dispatch gate)를 개방했습니다.
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) 비활성화됨
Android:
Android:
Windows:
- Windows x64 (CPU)
- Windows arm64 (CPU)
- Windows x64 (CUDA 12) - CUDA 12.4 DLLs
- Windows x64 (CUDA 13) - CUDA 13.3 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)
UI:
AI 자동 생성 콘텐츠
본 콘텐츠는 llama.cpp Releases의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기