사전 릴리스 / 연속 빌드: 이것은 실험적 빌드이며 안정 릴리스가 아닙니다.
hexagon: matmul 및 flash-atten 확장성 업데이트 (#29974) * hexagon: row-split 멀티코어를 위한 헤드 병렬 flash_attn 분할 row-split 모드에서는 각 코어가 모든 MUL_MAT의 출력 행 샤드를 계산하지만, flash_attn은 이전까지 헤드가 아닌 Q 토큰 기준 (flat qrow split)으로 분할되었습니다. 이로 인해 모든 코어가 전체 KV 캐시(모든 n_kv_heads)를 읽어야 했고, flash_attn에서 멀티코어의 메모리 대역폭 이점이 무효화되었습니다. n_kv_heads가 n_cores로 나누어 떨어질 때 HMX와 HVX flash_attn 커널 모두 KV 헤드 기준으로 분할하도록 변경합니다: 코어 i는 헤드 [i*n_kv_heads/N, (i+1)*n_kv_heads/N)를 독점적으로 처리하며 KV 캐시의 자신의 헤드 샤드만 읽습니다. n_kv_heads % n_cores != 0인 경우 (예: 4개 코어에서 2개 KV 헤드를 가지는 Gemma-4)는 원래의 토큰 블록 분할로 폴백합니다. GGML_HEXAGON_FA_HEAD_SPLIT으로 제어됩니다(기본값 1 = 켜짐). 이 플래그는 128바이트 kernel_params blob 한도 내에 머물도록 기존 is_dst_fp32 kparams 바이트의 비트 1에 패킹됩니다. 4c row-split에서 측정된 성능 향상(PP t/s, ubatch=1024): Qwen3-0.6B: 6977 -> 11026 (+58%) llama-3.2-3B: 3717 -> 5522 (+49%) Qwen3.5-4B: 2739 -> 2855 (+4%) Gemma-4 MoE: 변화 없음(MoE FFN이 지배적, 폴백 경로) TG는 변화 없음(flash_attn은 레이어당 matmul+barrier 비용에 비해 디코드 시간의 작은 비율임). * hex-fa: kern_params 및 head-split 선택 정리 * hex-fa: run.py에 -fa-head-split 옵션 추가 * hex-mdev: row-split 시나리오에서 감소된 작업량을 반영하도록 matmul 솔버 업데이트 * hex-mmid: 멀티 디바이스 시나리오에서 expers별 더 나은 작업 분할 * hex-fa: model/n-hvx/ctx-len 스위프 기반으로 HMX 게이팅 업데이트 * hex-fa: 호스트에서 softcap/scale 사전 계산 * hexagon: 멀티 시퀀스에서 HMX를 사용하도록 matmul을 2d로 평탄화 * hex-mm: kparams 정리 및 3/4D -> 2D 매핑으로 축소(collapse) 사용 * hex-mm: collapse 폴백의 오타 수정 * hex-mm: act 텐서에 대한 일관된 명명을 위한 추가 작업 * hex-mm: 융합된 matmul에서 차원 축소(colapsing dims) 지원 추가 * hex-build: WoS 빌드 오류 수정 * hex-mm: can_collapse에서 dst stride 강제 보장 * hex-fa: head-split 검사를 위한 한 줄 커밋 추가 * hex-fa: 사용되지 않는 로컬 head_split 변수 제거 * hex-fa: can_split 검사 강화 * hex-mm: 융합되지 않은 경로가 src1 대신 act를 사용하도록 업데이트 * hex-mm: 모든 dst에 대해 분할 검사 수행 보장 * hexagon: 배치 HMX matmul 프롤로그에서 두 번째 웨이트 청크 주소 수정 * hexagon: HMX matmul에서 F16 활성화 및 ragged N 지원 * hex-mm: mdev 사례에서 ragged/split 검사 강화 * hex-mm: F16 활성화에 대한 MM 융합 활성화 * hex-mm: 융합된 경로에서 솔버에 tiled 크기 전달 * hex-mmid: expert 매핑 루프에서 스칼라 나눗셈 제거 * hex-mmid: mdev 분할에 대한 적절한 cacheline 안전성 강제 * hex-mm: mdev 분할 시나리오 및 꼬리(tail) 처리를 위한 솔버 개선 * hex-mm: 중복 검사 제거 * hex-mm: 융합된 HMX MUL_MAT_NX가 양자화된 웨이트에 대해 마지막 부분 타일을 누락하는 문제 수정 * hex-mm: ragged 형상 처리 개선(vtcm의 스칼라 memset 제거) --------- Co-authored-by: ebateni Co-authored-by: Jhen-Jie Hong Co-authored-by: Yiwei Shao웹사이트: - https://llama.app
증명(Attestations): - https://github.com/ggml-org/llama.cpp/attestations/52957661
macOS/iOS: - macOS Apple Silicon (arm64) - macOS Apple Silicon (arm64, KleidiAI 활성화) DISABLED - 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: - DISABLED - openEuler x86 (310p) 대상 - openEuler x86 (910b, ACL Graph) 대상 - openEuler aarch64 (310p) 대상 - openEuler aarch64 (910b, ACL Graph) 대상
UI: - UI