]> git.djapps.eu Git - pkg/ggml/sources/ggml/commit
vulkan : incremental shader builds (llama/16341)
authorAcly <redacted>
Sat, 11 Oct 2025 14:59:36 +0000 (17:59 +0300)
committerGeorgi Gerganov <redacted>
Sun, 12 Oct 2025 04:57:25 +0000 (07:57 +0300)
commit6373895dc93c5f42348c693f02cf5b7753c11d75
tree751df4f5ed05706a55e7cd75c47722ac306b572f
parentd7d2d6dac3d58bbabe74d52e7e94fe0eae486c91
vulkan : incremental shader builds (llama/16341)

* vulkan (DRAFT): split shader generation by GLSL source file, to improve incremental build times

* support dep-files so shaders are recompiled if their included files change

* rename shader files which are used as "headers" to use .glsl extension
* move glslc extension detection shaders to separate folders
* the above is to prevent them from getting glob'd with the actual compute shaders that need to be compiled

* vulkan : only write embedded shader .hpp/.cpp when they change

* avoid recompiling ggml-vulkan.cpp when editing shaders
* pass single --source argument instead of --input-dir & --filter to shader gen
* check for source file match earlier

* fix hang in vulkan-shaders-gen when there are compilation errors

* early out did not decrement compile_count

* clean up

* fix glslc integer dot product test

* unconditionally write the embedded shader cpp output

* replace output filepath in generated dep-files to match output in CMakeLists

---------

Co-authored-by: Jeff Bolz <redacted>
153 files changed:
src/ggml-vulkan/CMakeLists.txt
src/ggml-vulkan/vulkan-shaders/acc.comp
src/ggml-vulkan/vulkan-shaders/add.comp
src/ggml-vulkan/vulkan-shaders/add_id.comp
src/ggml-vulkan/vulkan-shaders/argmax.comp
src/ggml-vulkan/vulkan-shaders/argsort.comp
src/ggml-vulkan/vulkan-shaders/clamp.comp
src/ggml-vulkan/vulkan-shaders/concat.comp
src/ggml-vulkan/vulkan-shaders/contig_copy.comp
src/ggml-vulkan/vulkan-shaders/conv2d_dw.comp
src/ggml-vulkan/vulkan-shaders/conv2d_mm.comp
src/ggml-vulkan/vulkan-shaders/conv_transpose_1d.comp
src/ggml-vulkan/vulkan-shaders/copy.comp
src/ggml-vulkan/vulkan-shaders/copy_from_quant.comp
src/ggml-vulkan/vulkan-shaders/copy_to_quant.comp
src/ggml-vulkan/vulkan-shaders/cos.comp
src/ggml-vulkan/vulkan-shaders/count_equal.comp
src/ggml-vulkan/vulkan-shaders/dequant_f32.comp
src/ggml-vulkan/vulkan-shaders/dequant_funcs.comp [deleted file]
src/ggml-vulkan/vulkan-shaders/dequant_funcs.glsl [new file with mode: 0644]
src/ggml-vulkan/vulkan-shaders/dequant_funcs_cm2.comp [deleted file]
src/ggml-vulkan/vulkan-shaders/dequant_funcs_cm2.glsl [new file with mode: 0644]
src/ggml-vulkan/vulkan-shaders/dequant_head.comp [deleted file]
src/ggml-vulkan/vulkan-shaders/dequant_head.glsl [new file with mode: 0644]
src/ggml-vulkan/vulkan-shaders/dequant_iq1_m.comp
src/ggml-vulkan/vulkan-shaders/dequant_iq1_s.comp
src/ggml-vulkan/vulkan-shaders/dequant_iq2_s.comp
src/ggml-vulkan/vulkan-shaders/dequant_iq2_xs.comp
src/ggml-vulkan/vulkan-shaders/dequant_iq2_xxs.comp
src/ggml-vulkan/vulkan-shaders/dequant_iq3_s.comp
src/ggml-vulkan/vulkan-shaders/dequant_iq3_xxs.comp
src/ggml-vulkan/vulkan-shaders/dequant_iq4_nl.comp
src/ggml-vulkan/vulkan-shaders/dequant_iq4_xs.comp
src/ggml-vulkan/vulkan-shaders/dequant_mxfp4.comp
src/ggml-vulkan/vulkan-shaders/dequant_q2_k.comp
src/ggml-vulkan/vulkan-shaders/dequant_q3_k.comp
src/ggml-vulkan/vulkan-shaders/dequant_q4_0.comp
src/ggml-vulkan/vulkan-shaders/dequant_q4_1.comp
src/ggml-vulkan/vulkan-shaders/dequant_q4_k.comp
src/ggml-vulkan/vulkan-shaders/dequant_q5_0.comp
src/ggml-vulkan/vulkan-shaders/dequant_q5_1.comp
src/ggml-vulkan/vulkan-shaders/dequant_q5_k.comp
src/ggml-vulkan/vulkan-shaders/dequant_q6_k.comp
src/ggml-vulkan/vulkan-shaders/dequant_q8_0.comp
src/ggml-vulkan/vulkan-shaders/diag_mask_inf.comp
src/ggml-vulkan/vulkan-shaders/div.comp
src/ggml-vulkan/vulkan-shaders/exp.comp
src/ggml-vulkan/vulkan-shaders/feature-tests/bfloat16.comp [new file with mode: 0644]
src/ggml-vulkan/vulkan-shaders/feature-tests/coopmat.comp [new file with mode: 0644]
src/ggml-vulkan/vulkan-shaders/feature-tests/coopmat2.comp [new file with mode: 0644]
src/ggml-vulkan/vulkan-shaders/feature-tests/integer_dot.comp [new file with mode: 0644]
src/ggml-vulkan/vulkan-shaders/flash_attn.comp
src/ggml-vulkan/vulkan-shaders/flash_attn_base.comp [deleted file]
src/ggml-vulkan/vulkan-shaders/flash_attn_base.glsl [new file with mode: 0644]
src/ggml-vulkan/vulkan-shaders/flash_attn_cm1.comp
src/ggml-vulkan/vulkan-shaders/flash_attn_cm2.comp
src/ggml-vulkan/vulkan-shaders/geglu.comp
src/ggml-vulkan/vulkan-shaders/geglu_erf.comp
src/ggml-vulkan/vulkan-shaders/geglu_quick.comp
src/ggml-vulkan/vulkan-shaders/gelu.comp
src/ggml-vulkan/vulkan-shaders/gelu_erf.comp
src/ggml-vulkan/vulkan-shaders/gelu_quick.comp
src/ggml-vulkan/vulkan-shaders/generic_binary_head.comp [deleted file]
src/ggml-vulkan/vulkan-shaders/generic_binary_head.glsl [new file with mode: 0644]
src/ggml-vulkan/vulkan-shaders/generic_head.comp [deleted file]
src/ggml-vulkan/vulkan-shaders/generic_head.glsl [new file with mode: 0644]
src/ggml-vulkan/vulkan-shaders/generic_unary_head.comp [deleted file]
src/ggml-vulkan/vulkan-shaders/generic_unary_head.glsl [new file with mode: 0644]
src/ggml-vulkan/vulkan-shaders/get_rows.comp
src/ggml-vulkan/vulkan-shaders/get_rows_quant.comp
src/ggml-vulkan/vulkan-shaders/glu_head.comp [deleted file]
src/ggml-vulkan/vulkan-shaders/glu_head.glsl [new file with mode: 0644]
src/ggml-vulkan/vulkan-shaders/glu_main.comp [deleted file]
src/ggml-vulkan/vulkan-shaders/glu_main.glsl [new file with mode: 0644]
src/ggml-vulkan/vulkan-shaders/group_norm.comp
src/ggml-vulkan/vulkan-shaders/hardsigmoid.comp
src/ggml-vulkan/vulkan-shaders/hardswish.comp
src/ggml-vulkan/vulkan-shaders/im2col.comp
src/ggml-vulkan/vulkan-shaders/im2col_3d.comp
src/ggml-vulkan/vulkan-shaders/l2_norm.comp
src/ggml-vulkan/vulkan-shaders/leaky_relu.comp
src/ggml-vulkan/vulkan-shaders/mul.comp
src/ggml-vulkan/vulkan-shaders/mul_mat_vec.comp
src/ggml-vulkan/vulkan-shaders/mul_mat_vec_base.comp [deleted file]
src/ggml-vulkan/vulkan-shaders/mul_mat_vec_base.glsl [new file with mode: 0644]
src/ggml-vulkan/vulkan-shaders/mul_mat_vec_iq1_m.comp
src/ggml-vulkan/vulkan-shaders/mul_mat_vec_iq1_s.comp
src/ggml-vulkan/vulkan-shaders/mul_mat_vec_iq2_s.comp
src/ggml-vulkan/vulkan-shaders/mul_mat_vec_iq2_xs.comp
src/ggml-vulkan/vulkan-shaders/mul_mat_vec_iq2_xxs.comp
src/ggml-vulkan/vulkan-shaders/mul_mat_vec_iq3_s.comp
src/ggml-vulkan/vulkan-shaders/mul_mat_vec_iq3_xxs.comp
src/ggml-vulkan/vulkan-shaders/mul_mat_vec_q2_k.comp
src/ggml-vulkan/vulkan-shaders/mul_mat_vec_q3_k.comp
src/ggml-vulkan/vulkan-shaders/mul_mat_vec_q4_k.comp
src/ggml-vulkan/vulkan-shaders/mul_mat_vec_q5_k.comp
src/ggml-vulkan/vulkan-shaders/mul_mat_vec_q6_k.comp
src/ggml-vulkan/vulkan-shaders/mul_mat_vecq.comp
src/ggml-vulkan/vulkan-shaders/mul_mm.comp
src/ggml-vulkan/vulkan-shaders/mul_mm_cm2.comp
src/ggml-vulkan/vulkan-shaders/mul_mm_funcs.comp [deleted file]
src/ggml-vulkan/vulkan-shaders/mul_mm_funcs.glsl [new file with mode: 0644]
src/ggml-vulkan/vulkan-shaders/mul_mmq.comp
src/ggml-vulkan/vulkan-shaders/mul_mmq_funcs.comp [deleted file]
src/ggml-vulkan/vulkan-shaders/mul_mmq_funcs.glsl [new file with mode: 0644]
src/ggml-vulkan/vulkan-shaders/multi_add.comp
src/ggml-vulkan/vulkan-shaders/norm.comp
src/ggml-vulkan/vulkan-shaders/opt_step_adamw.comp
src/ggml-vulkan/vulkan-shaders/opt_step_sgd.comp
src/ggml-vulkan/vulkan-shaders/pad.comp
src/ggml-vulkan/vulkan-shaders/pool2d.comp
src/ggml-vulkan/vulkan-shaders/quantize_q8_1.comp
src/ggml-vulkan/vulkan-shaders/reglu.comp
src/ggml-vulkan/vulkan-shaders/relu.comp
src/ggml-vulkan/vulkan-shaders/repeat.comp
src/ggml-vulkan/vulkan-shaders/repeat_back.comp
src/ggml-vulkan/vulkan-shaders/rms_norm.comp
src/ggml-vulkan/vulkan-shaders/rms_norm_back.comp
src/ggml-vulkan/vulkan-shaders/rms_norm_partials.comp
src/ggml-vulkan/vulkan-shaders/roll.comp
src/ggml-vulkan/vulkan-shaders/rope_head.comp [deleted file]
src/ggml-vulkan/vulkan-shaders/rope_head.glsl [new file with mode: 0644]
src/ggml-vulkan/vulkan-shaders/rope_multi.comp
src/ggml-vulkan/vulkan-shaders/rope_neox.comp
src/ggml-vulkan/vulkan-shaders/rope_norm.comp
src/ggml-vulkan/vulkan-shaders/rope_vision.comp
src/ggml-vulkan/vulkan-shaders/rte.comp [deleted file]
src/ggml-vulkan/vulkan-shaders/rte.glsl [new file with mode: 0644]
src/ggml-vulkan/vulkan-shaders/scale.comp
src/ggml-vulkan/vulkan-shaders/sigmoid.comp
src/ggml-vulkan/vulkan-shaders/silu.comp
src/ggml-vulkan/vulkan-shaders/silu_back.comp
src/ggml-vulkan/vulkan-shaders/sin.comp
src/ggml-vulkan/vulkan-shaders/soft_max.comp
src/ggml-vulkan/vulkan-shaders/soft_max_back.comp
src/ggml-vulkan/vulkan-shaders/sqrt.comp
src/ggml-vulkan/vulkan-shaders/square.comp
src/ggml-vulkan/vulkan-shaders/sub.comp
src/ggml-vulkan/vulkan-shaders/sum_rows.comp
src/ggml-vulkan/vulkan-shaders/swiglu.comp
src/ggml-vulkan/vulkan-shaders/swiglu_oai.comp
src/ggml-vulkan/vulkan-shaders/tanh.comp
src/ggml-vulkan/vulkan-shaders/test_bfloat16_support.comp [deleted file]
src/ggml-vulkan/vulkan-shaders/test_coopmat2_support.comp [deleted file]
src/ggml-vulkan/vulkan-shaders/test_coopmat_support.comp [deleted file]
src/ggml-vulkan/vulkan-shaders/test_integer_dot_support.comp [deleted file]
src/ggml-vulkan/vulkan-shaders/timestep_embedding.comp
src/ggml-vulkan/vulkan-shaders/types.comp [deleted file]
src/ggml-vulkan/vulkan-shaders/types.glsl [new file with mode: 0644]
src/ggml-vulkan/vulkan-shaders/upscale.comp
src/ggml-vulkan/vulkan-shaders/utils.comp [deleted file]
src/ggml-vulkan/vulkan-shaders/utils.glsl [new file with mode: 0644]
src/ggml-vulkan/vulkan-shaders/vulkan-shaders-gen.cpp