vulkan: 비연속적 (non-contig) unary/glu 연산 지원 ([#24215](https://github.com/ggml-org/
요약
llama.cpp의 Vulkan 백엔드에서 비연속적(non-contiguous) unary/glu 연산을 지원하도록 업데이트되었습니다. 인덱스 계산 최적화를 위해 fastdiv를 도입하고, 연산 코드의 구조를 개선하여 효율성을 높였습니다.
핵심 포인트
- Vulkan 백엔드 내 비연속적 unary/glu 연산 지원 추가
- 인덱스 계산 최적화를 위한 fastdiv 활용 및 스트라이드 전달 방식 변경
- 코드 재사용성을 위해 unary 연산들을 단일 파일로 통합 관리
- expm1 연산 추가 및 정밀도 분석 수행
vulkan: 비연속적 (non-contig) unary/glu 연산 지원 (#24215)
- vulkan: 비연속적 (non-contig) unary/glu 연산 지원
unary/glu 연산이 모든 스트라이드 (strides)를 전달하고 인덱스 계산에 fastdiv를 사용하도록 변경했습니다. 코드를 공유하기 위해 glu와 유사하게 모든 unary 연산을 하나의 파일에 배치했습니다. codex가 요청하지 않았음에도 expm1을 미리 추가해 두었으나, 단순히 임의로 만드는 대신 실제 정밀도 분석 (precision analysis)을 수행하도록 수정해야 했습니다.
unary.comp는 처음에 xielu의 추가 상수를 위한 공간이 없었기 때문에 generic_unary_head를 사용할 수 없었습니다. 이를 해결하기 위해 fastdiv 'L' 값들을 패킹 (packing)해야 했습니다.
-
컴파일러 버그에 대한 워크아라운드 (workaround) 시도
-
#23991로부터 발생한 충돌 해결
-
expm1 사용
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 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:
- DISABLED
- openEuler x86 (310p)
- openEuler x86 (910b, ACL Graph)
- openEuler aarch64 (310p)
- openEuler aarch64 (910b, ACL Graph)
UI:
AI 자동 생성 콘텐츠
본 콘텐츠는 llama.cpp Releases의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기