llama.cpp Releases

[사전 출시 / 연속 빌드] b11404

[사전 출시 / 연속 빌드] metal : few-row MMA mat-mul (#29869) * metal : speculative decoding을 위한 few-row MMA mat-mul 및 batched copies Speculative decoding은 매 단계마다 몇 개의 draft 토큰을 검증합니다. tensor API가 없을 때 Metal은 이러한 mat-mul을 mat-vec…

사전 출시 / 연속 빌드: 이것은 실험적인 빌드이며 안정적인 릴리스가 아닙니다.

metal : few-row MMA mat-mul (#29869) * metal : speculative decoding을 위한 few-row MMA mat-mul 및 batched copies Speculative decoding은 매 단계마다 몇 개의 draft 토큰을 검증합니다. tensor API가 없을 때 Metal은 이러한 mat-mul을 mat-vec 커널로 실행했으며, 그 시간은 src1 행마다 증가했기 때문에 M3 Ultra에서 DFlash2 디코딩이 직렬 디코딩보다 느렸습니다. - 8x8 simdgroup 행렬에서 2..16개의 src1 행을 위한 mat-mul 커널 추가: 각 가중치는 모든 행에 대해 한 번만 dequantize되며, 스레드그룹의 simdgroup들이 K를 분할합니다. Q4_0, Q8_0, Q5_K는 자체 커널을 가지고, F32, F16, Q4_1, Q5_0, Q5_1, Q4_K, Q6_K는 16개 가중치 dequantizer를 사용하는 범용 경로를 사용하며, 2행의 Q4_0은 mat-vec 커널의 2행 변형을 사용합니다 - tensor API 없이 MTLGPUFamilyApple7+ 에서만, M3 Ultra에서 mat-vec 커널을 능가하는 행 수부터 사용 (F32: 6, F16, Q4_K, Q5_0, Q5_1: 3, 기타 타입: 2) - fusion table: MUL_MAT + ADD는 MMA store에서 동일한 형상의 residual을 추가하고, 동일한 두 텐서 간의 최대 16개의 인접한 동일 레이아웃 f32 복사가 하나의 dispatch로 실행됩니다 - fusion 검사와 ggml_graph_optimize가 device props를 사용하므로, reorder는 이를 융합할 수 있는 장치에서만 모든 src1 행 수에 대해 MUL_MAT + ADD를 패킹합니다 - reorder가 그룹을 패킹할 때 view는 GGML_METAL_FUSION_MAX에 포함되지 않으므로, 그 사이에 view가 있는 16개의 순환 상태 스냅샷 복사가 하나의 그룹으로 유지됩니다 - encoder는 융합된 그룹의 내부 노드에서 동시성을 검사하고, extent로 기록된 view를 추적하며, CPY의 대상을 read로 계산하지 않습니다 - CONCAT은 행 수가 적을 때 긴 행을 threadgroup들에 걸쳐 분할합니다 - tests: test-backend-ops의 few-row MUL_MAT, MUL_MAT_ADD, CPY_BATCH, CONCAT 케이스 (복사 순서를 위한 prepare_graph hook 포함), test-metal-graph-optimize, test-metal-cpy-batch-alias * metal : CPY_BATCH 융합 및 메모리 범위 변경 제거 리뷰에서 제안된 대로 커널과 테스트가 포함된 batched copy 융합을 제거하고 메모리 범위 변경을 되돌립니다. 메모리 범위, 그래프 reorder, CPY encoder는 다시 master와 동일합니다. * cont : 정리 * cont : has_tensor 게이트 제거 * cont : operand/residual 로직 정리 * cont : Q4_0 ne11=2 특수 케이스 제거 * cont : kernels/mul_mv_mma.metal 추가 * cont : mma 파이프라인 선택 로직 통합 * cont : 융합 로직을 device props로부터 분리 --------- Co-authored-by: Georgi Gerganov

웹사이트: - https://llama.app

증명(Attestations): - https://github.com/ggml-org/llama.cpp/attestations/52722020

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 (CUDA 12) - CUDA 12.8 라이브러리 - Ubuntu x64 (CUDA 13) - CUDA 13.4 라이브러리 - Ubuntu arm64 (CUDA 13) - CUDA 13.4 라이브러리 - Ubuntu x64 (ROCm 10.0) - Ubuntu x64 (OpenVINO) - Ubuntu x64 (SYCL FP32) - Ubuntu x64 (SYCL FP16) - Linux arm64 (Snapdragon: CPU, Adreno GPU, Hexagon NPU) - 설정 가이드

Android: - Android arm64 (CPU) - Android arm64 (Snapdragon: CPU, Adreno GPU, Hexagon NPU) - 설정 가이드

윈도우(Windows): - Windows x64(CPU)용 - Windows arm64(CPU)용 - Windows arm64(OpenCL Adreno)용 - Windows x64(CUDA 12)용 - CUDA 12.4 DLL 파일 - Windows x64(CUDA 13)용 - CUDA 13.4 DLL 파일 - Windows arm64(CUDA 13)용 - CUDA 13.4 DLL 파일 - Windows x64(Vulkan)용 - Windows arm64(Vulkan)용 - Windows x64(OpenVINO)용 - Windows x64(SYCL)용 - Windows x64(ROCm 10.0)용

openEuler: - 비활성화됨 - openEuler x86 (310p) 환경 - openEuler x86 (910b, ACL Graph) 환경 - openEuler aarch64 (310p) 환경 - openEuler aarch64 (910b, ACL Graph) 환경

UI: - UI

원문 출처

llama.cpp Releases

내용 안내

원문 발행 및 권리는 출처에 있습니다.

기계 번역 · 원문을 참고하세요