sycl : CUDA 백엔드로부터 multi-column MMVQ 포팅 ([#21845](https://github.com/ggml-org/ll
요약
llama.cpp 프로젝트에서 CUDA 백엔드의 multi-column MMVQ 최적화 로직을 SYCL로 포팅했습니다. 이를 통해 다양한 양자화 유형을 지원하며, 작은 멀티 컬럼 배치에서도 가중치 재정렬 커널이 작동하도록 개선되었습니다.
핵심 포인트
- CUDA의 ncols_dst 최적화 로직을 SYCL로 이식
- 표준 양자화 유형(Q4_0, Q8_0 등)에 대한 재정렬 경로 지원
- 작은 멀티 컬럼 배치(ne[1] <= 8)에서의 부트스트랩 지원
- macOS, Linux 등 다양한 플랫폼용 바이너리 업데이트
sycl : CUDA 백엔드로부터 multi-column MMVQ 포팅 (#21845)
mmvq:
ggml-cuda/mmvq.cu의 ncols_dst 최적화를 SYCL로 포팅합니다.
각 컬럼(column)마다 한 번씩 읽는 대신, 디스패치(dispatch)당 한 번씩 가중치(weights)를 읽습니다.
모든 표준 양자화 유형(standard quant types)을 포함하며, Q4_0, Q8_0, Q3_K, Q4_K, Q5_K, Q6_K에 대한 재정렬(reorder) 경로를 지원합니다. IQ 유형(IQ4_XS 제외)은 호환되지 않는 vec_dot 시그니처(signatures)로 인해 제외되었습니다.
ggml-sycl:
가중치 재정렬(weight reorder)은 단일 토큰 행렬-벡터 곱(single-token mat-vec, ne[1] == 1)에서만 부트스트랩(bootstrapped)되었습니다. Speculative / MTP 검증(verify) 이슈는 멀티 컬럼 행렬-벡터 곱(multi-column mat-vec)에서만 발생하므로, 재정렬이 트리거되지 않고 더 느린 비-재정렬 커널(non-reorder kernel)에서 실행되었습니다. 작은 멀티 컬럼 배치(small multi-column batches, ne[1] <= 8)에서도 부트스트랩되도록 합니다.
macOS/iOS:
- macOS Apple Silicon (arm64)
- macOS Apple Silicon (arm64, KleidiAI 활성화) 비활성화됨(DISABLED)
- macOS Intel (x64)
- iOS XCFramework
Linux:
<strong>Linux:</strong>
- 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) DISABLED
<strong>Android:</strong>
<strong>Windows:</strong>
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) DISABLED
- 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가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기