Repository navigation
metal : split fa kernels into per-dtype libraries - #29329
Merged
Merged
Conversation
ggerganov
marked this pull request as ready for review
September 24, 2026 10:56
ggerganov
force-pushed
the
gg/metal-optimize-compile
branch
from
September 24, 2026 13:11
e10e2c1 to
f7640c9
Compare
Assisted-by: pi:llama.cpp/DeepSeek-V4-Flash-Vision-Exp
ggerganov
force-pushed
the
gg/metal-optimize-compile
branch
from
September 25, 2026 08:33
f7640c9 to
65437b3
Compare
feal87
added a commit
to feal87/myllama.cpp
that referenced
this pull request
Sep 25, 2026
Merge upstream commits: - llama: add llama_prec_policy + model-driven W4A4 path (ggml-org#24364) - llama: fix tensor split for fused qkv with uneven K/V head sizes (ggml-org#29294) - metal: split fa kernels into per-dtype libraries (ggml-org#29329) - metal: FWHT kernels for block widths above 512 (ggml-org#29095) - CUDA: fuse RMS_NORM + SCALE into one kernel (ggml-org#29393) - common: extract shared unicode path/string helpers (ggml-org#29415) - common,rpc: simplify fs_create_directory_with_parents() (ggml-org#29432) - rpc: include nb in the get_alloc_size cache key (ggml-org#29283) - [SYCL] support sparse FA (ggml-org#28796) - musa: fix PH1 operator failures and build issues (ggml-org#29193) - HIP: bump HIP_VERSION required for fp8 (ggml-org#29231) - opencl: add q5_k bin kernel (ggml-org#29401) - hexagon: add q5_k quant type support (ggml-org#29123) - hexagon: use DMA for contiguous dim1 CONCAT (ggml-org#29404) - mtmd: fix mel preprocessor in LFM2 audio (ggml-org#29403) - vulkan: fix legacy GLSLC without cooperativeMatrix (ggml-org#29409) - gguf-py: ByteLevel processing defaults bos/eos to False (ggml-org#29422) - gguf-py: TemplateProcessing has final word on add_special_token (ggml-org#29417) Assisted-by: Pi
1 task done
sky-mighty
pushed a commit
to sky-mighty/llama.cpp
that referenced
this pull request
Sep 26, 2026
* metal : split fa kernels into per-dtype libraries Assisted-by: pi:llama.cpp/DeepSeek-V4-Flash-Vision-Exp * cont : minor fix comment
1 task
frostyautumnleaf
pushed a commit
to frostyautumnleaf/llama.cpp
that referenced
this pull request
Oct 5, 2026
* metal : split fa kernels into per-dtype libraries Assisted-by: pi:llama.cpp/DeepSeek-V4-Flash-Vision-Exp * cont : minor fix comment
edwardyoon
pushed a commit
to edwardyoon/focus-llama
that referenced
this pull request
Oct 7, 2026
* metal : split fa kernels into per-dtype libraries Assisted-by: pi:llama.cpp/DeepSeek-V4-Flash-Vision-Exp * cont : minor fix comment (cherry picked from commit 5a75f14)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Overview
Split the monolithic
fa.metallibrary into per-dtype FA and FA-vec Metal libraries soggml_metal_library_compile_allcan compile them concurrently instead of waiting on one largefasource.On Apple M2 Ultra cold-start compile dropped from 16.856 sec (max single = fa) to 2.609 sec (max single = fa_vec_f16).
Additional information
fa.metal.fa_common.metalandfa_vec_common.metaltemplates.fa_f16,fa_f32,fa_q4_0,fa_q4_1,fa_q5_0,fa_q5_1,fa_q8_0.fa_vec_f16,fa_vec_f32,fa_vec_q4_0,fa_vec_q4_1,fa_vec_q5_0,fa_vec_q5_1,fa_vec_q8_0.fa_auxfor pad/blk/idx/reduce/kv_f16/lightning indexer.GGML_METAL_LIBSand CMake embed/non-embed source handling.host_namekernels are preserved.test-backend-ops -b MTL0 -o 'ADD(...)'after clearing the Metal cache.Requirements