]> git.djapps.eu Git - pkg/ggml/sources/llama.cpp/commit
vulkan : incremental shader builds (#16341)
authorAcly <redacted>
Sat, 4 Oct 2025 09:42:56 +0000 (11:42 +0200)
committerGitHub <redacted>
Sat, 4 Oct 2025 09:42:56 +0000 (11:42 +0200)
commite29acf74fea996014380d59d31aa504ae8964258
treec8b5d37b9a8391bb645e42baaa4aa61ccaf11e24
parent128d522c04286e019666bd6ee4d18e3fbf8772e2
vulkan : incremental shader builds (#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:
ggml/src/ggml-vulkan/CMakeLists.txt
ggml/src/ggml-vulkan/vulkan-shaders/acc.comp
ggml/src/ggml-vulkan/vulkan-shaders/add.comp
ggml/src/ggml-vulkan/vulkan-shaders/add_id.comp
ggml/src/ggml-vulkan/vulkan-shaders/argmax.comp
ggml/src/ggml-vulkan/vulkan-shaders/argsort.comp
ggml/src/ggml-vulkan/vulkan-shaders/clamp.comp
ggml/src/ggml-vulkan/vulkan-shaders/concat.comp
ggml/src/ggml-vulkan/vulkan-shaders/contig_copy.comp
ggml/src/ggml-vulkan/vulkan-shaders/conv2d_dw.comp
ggml/src/ggml-vulkan/vulkan-shaders/conv2d_mm.comp
ggml/src/ggml-vulkan/vulkan-shaders/conv_transpose_1d.comp
ggml/src/ggml-vulkan/vulkan-shaders/copy.comp
ggml/src/ggml-vulkan/vulkan-shaders/copy_from_quant.comp
ggml/src/ggml-vulkan/vulkan-shaders/copy_to_quant.comp
ggml/src/ggml-vulkan/vulkan-shaders/cos.comp
ggml/src/ggml-vulkan/vulkan-shaders/count_equal.comp
ggml/src/ggml-vulkan/vulkan-shaders/dequant_f32.comp
ggml/src/ggml-vulkan/vulkan-shaders/dequant_funcs.comp [deleted file]
ggml/src/ggml-vulkan/vulkan-shaders/dequant_funcs.glsl [new file with mode: 0644]
ggml/src/ggml-vulkan/vulkan-shaders/dequant_funcs_cm2.comp [deleted file]
ggml/src/ggml-vulkan/vulkan-shaders/dequant_funcs_cm2.glsl [new file with mode: 0644]
ggml/src/ggml-vulkan/vulkan-shaders/dequant_head.comp [deleted file]
ggml/src/ggml-vulkan/vulkan-shaders/dequant_head.glsl [new file with mode: 0644]
ggml/src/ggml-vulkan/vulkan-shaders/dequant_iq1_m.comp
ggml/src/ggml-vulkan/vulkan-shaders/dequant_iq1_s.comp
ggml/src/ggml-vulkan/vulkan-shaders/dequant_iq2_s.comp
ggml/src/ggml-vulkan/vulkan-shaders/dequant_iq2_xs.comp
ggml/src/ggml-vulkan/vulkan-shaders/dequant_iq2_xxs.comp
ggml/src/ggml-vulkan/vulkan-shaders/dequant_iq3_s.comp
ggml/src/ggml-vulkan/vulkan-shaders/dequant_iq3_xxs.comp
ggml/src/ggml-vulkan/vulkan-shaders/dequant_iq4_nl.comp
ggml/src/ggml-vulkan/vulkan-shaders/dequant_iq4_xs.comp
ggml/src/ggml-vulkan/vulkan-shaders/dequant_mxfp4.comp
ggml/src/ggml-vulkan/vulkan-shaders/dequant_q2_k.comp
ggml/src/ggml-vulkan/vulkan-shaders/dequant_q3_k.comp
ggml/src/ggml-vulkan/vulkan-shaders/dequant_q4_0.comp
ggml/src/ggml-vulkan/vulkan-shaders/dequant_q4_1.comp
ggml/src/ggml-vulkan/vulkan-shaders/dequant_q4_k.comp
ggml/src/ggml-vulkan/vulkan-shaders/dequant_q5_0.comp
ggml/src/ggml-vulkan/vulkan-shaders/dequant_q5_1.comp
ggml/src/ggml-vulkan/vulkan-shaders/dequant_q5_k.comp
ggml/src/ggml-vulkan/vulkan-shaders/dequant_q6_k.comp
ggml/src/ggml-vulkan/vulkan-shaders/dequant_q8_0.comp
ggml/src/ggml-vulkan/vulkan-shaders/diag_mask_inf.comp
ggml/src/ggml-vulkan/vulkan-shaders/div.comp
ggml/src/ggml-vulkan/vulkan-shaders/exp.comp
ggml/src/ggml-vulkan/vulkan-shaders/feature-tests/bfloat16.comp [new file with mode: 0644]
ggml/src/ggml-vulkan/vulkan-shaders/feature-tests/coopmat.comp [new file with mode: 0644]
ggml/src/ggml-vulkan/vulkan-shaders/feature-tests/coopmat2.comp [new file with mode: 0644]
ggml/src/ggml-vulkan/vulkan-shaders/feature-tests/integer_dot.comp [new file with mode: 0644]
ggml/src/ggml-vulkan/vulkan-shaders/flash_attn.comp
ggml/src/ggml-vulkan/vulkan-shaders/flash_attn_base.comp [deleted file]
ggml/src/ggml-vulkan/vulkan-shaders/flash_attn_base.glsl [new file with mode: 0644]
ggml/src/ggml-vulkan/vulkan-shaders/flash_attn_cm1.comp
ggml/src/ggml-vulkan/vulkan-shaders/flash_attn_cm2.comp
ggml/src/ggml-vulkan/vulkan-shaders/geglu.comp
ggml/src/ggml-vulkan/vulkan-shaders/geglu_erf.comp
ggml/src/ggml-vulkan/vulkan-shaders/geglu_quick.comp
ggml/src/ggml-vulkan/vulkan-shaders/gelu.comp
ggml/src/ggml-vulkan/vulkan-shaders/gelu_erf.comp
ggml/src/ggml-vulkan/vulkan-shaders/gelu_quick.comp
ggml/src/ggml-vulkan/vulkan-shaders/generic_binary_head.comp [deleted file]
ggml/src/ggml-vulkan/vulkan-shaders/generic_binary_head.glsl [new file with mode: 0644]
ggml/src/ggml-vulkan/vulkan-shaders/generic_head.comp [deleted file]
ggml/src/ggml-vulkan/vulkan-shaders/generic_head.glsl [new file with mode: 0644]
ggml/src/ggml-vulkan/vulkan-shaders/generic_unary_head.comp [deleted file]
ggml/src/ggml-vulkan/vulkan-shaders/generic_unary_head.glsl [new file with mode: 0644]
ggml/src/ggml-vulkan/vulkan-shaders/get_rows.comp
ggml/src/ggml-vulkan/vulkan-shaders/get_rows_quant.comp
ggml/src/ggml-vulkan/vulkan-shaders/glu_head.comp [deleted file]
ggml/src/ggml-vulkan/vulkan-shaders/glu_head.glsl [new file with mode: 0644]
ggml/src/ggml-vulkan/vulkan-shaders/glu_main.comp [deleted file]
ggml/src/ggml-vulkan/vulkan-shaders/glu_main.glsl [new file with mode: 0644]
ggml/src/ggml-vulkan/vulkan-shaders/group_norm.comp
ggml/src/ggml-vulkan/vulkan-shaders/hardsigmoid.comp
ggml/src/ggml-vulkan/vulkan-shaders/hardswish.comp
ggml/src/ggml-vulkan/vulkan-shaders/im2col.comp
ggml/src/ggml-vulkan/vulkan-shaders/im2col_3d.comp
ggml/src/ggml-vulkan/vulkan-shaders/l2_norm.comp
ggml/src/ggml-vulkan/vulkan-shaders/leaky_relu.comp
ggml/src/ggml-vulkan/vulkan-shaders/mul.comp
ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec.comp
ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_base.comp [deleted file]
ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_base.glsl [new file with mode: 0644]
ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_iq1_m.comp
ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_iq1_s.comp
ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_iq2_s.comp
ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_iq2_xs.comp
ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_iq2_xxs.comp
ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_iq3_s.comp
ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_iq3_xxs.comp
ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_q2_k.comp
ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_q3_k.comp
ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_q4_k.comp
ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_q5_k.comp
ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_q6_k.comp
ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vecq.comp
ggml/src/ggml-vulkan/vulkan-shaders/mul_mm.comp
ggml/src/ggml-vulkan/vulkan-shaders/mul_mm_cm2.comp
ggml/src/ggml-vulkan/vulkan-shaders/mul_mm_funcs.comp [deleted file]
ggml/src/ggml-vulkan/vulkan-shaders/mul_mm_funcs.glsl [new file with mode: 0644]
ggml/src/ggml-vulkan/vulkan-shaders/mul_mmq.comp
ggml/src/ggml-vulkan/vulkan-shaders/mul_mmq_funcs.comp [deleted file]
ggml/src/ggml-vulkan/vulkan-shaders/mul_mmq_funcs.glsl [new file with mode: 0644]
ggml/src/ggml-vulkan/vulkan-shaders/multi_add.comp
ggml/src/ggml-vulkan/vulkan-shaders/norm.comp
ggml/src/ggml-vulkan/vulkan-shaders/opt_step_adamw.comp
ggml/src/ggml-vulkan/vulkan-shaders/opt_step_sgd.comp
ggml/src/ggml-vulkan/vulkan-shaders/pad.comp
ggml/src/ggml-vulkan/vulkan-shaders/pool2d.comp
ggml/src/ggml-vulkan/vulkan-shaders/quantize_q8_1.comp
ggml/src/ggml-vulkan/vulkan-shaders/reglu.comp
ggml/src/ggml-vulkan/vulkan-shaders/relu.comp
ggml/src/ggml-vulkan/vulkan-shaders/repeat.comp
ggml/src/ggml-vulkan/vulkan-shaders/repeat_back.comp
ggml/src/ggml-vulkan/vulkan-shaders/rms_norm.comp
ggml/src/ggml-vulkan/vulkan-shaders/rms_norm_back.comp
ggml/src/ggml-vulkan/vulkan-shaders/rms_norm_partials.comp
ggml/src/ggml-vulkan/vulkan-shaders/roll.comp
ggml/src/ggml-vulkan/vulkan-shaders/rope_head.comp [deleted file]
ggml/src/ggml-vulkan/vulkan-shaders/rope_head.glsl [new file with mode: 0644]
ggml/src/ggml-vulkan/vulkan-shaders/rope_multi.comp
ggml/src/ggml-vulkan/vulkan-shaders/rope_neox.comp
ggml/src/ggml-vulkan/vulkan-shaders/rope_norm.comp
ggml/src/ggml-vulkan/vulkan-shaders/rope_vision.comp
ggml/src/ggml-vulkan/vulkan-shaders/rte.comp [deleted file]
ggml/src/ggml-vulkan/vulkan-shaders/rte.glsl [new file with mode: 0644]
ggml/src/ggml-vulkan/vulkan-shaders/scale.comp
ggml/src/ggml-vulkan/vulkan-shaders/sigmoid.comp
ggml/src/ggml-vulkan/vulkan-shaders/silu.comp
ggml/src/ggml-vulkan/vulkan-shaders/silu_back.comp
ggml/src/ggml-vulkan/vulkan-shaders/sin.comp
ggml/src/ggml-vulkan/vulkan-shaders/soft_max.comp
ggml/src/ggml-vulkan/vulkan-shaders/soft_max_back.comp
ggml/src/ggml-vulkan/vulkan-shaders/sqrt.comp
ggml/src/ggml-vulkan/vulkan-shaders/square.comp
ggml/src/ggml-vulkan/vulkan-shaders/sub.comp
ggml/src/ggml-vulkan/vulkan-shaders/sum_rows.comp
ggml/src/ggml-vulkan/vulkan-shaders/swiglu.comp
ggml/src/ggml-vulkan/vulkan-shaders/swiglu_oai.comp
ggml/src/ggml-vulkan/vulkan-shaders/tanh.comp
ggml/src/ggml-vulkan/vulkan-shaders/test_bfloat16_support.comp [deleted file]
ggml/src/ggml-vulkan/vulkan-shaders/test_coopmat2_support.comp [deleted file]
ggml/src/ggml-vulkan/vulkan-shaders/test_coopmat_support.comp [deleted file]
ggml/src/ggml-vulkan/vulkan-shaders/test_integer_dot_support.comp [deleted file]
ggml/src/ggml-vulkan/vulkan-shaders/timestep_embedding.comp
ggml/src/ggml-vulkan/vulkan-shaders/types.comp [deleted file]
ggml/src/ggml-vulkan/vulkan-shaders/types.glsl [new file with mode: 0644]
ggml/src/ggml-vulkan/vulkan-shaders/upscale.comp
ggml/src/ggml-vulkan/vulkan-shaders/utils.comp [deleted file]
ggml/src/ggml-vulkan/vulkan-shaders/utils.glsl [new file with mode: 0644]
ggml/src/ggml-vulkan/vulkan-shaders/vulkan-shaders-gen.cpp