]> git.djapps.eu Git - pkg/ggml/sources/ggml/commit
Vulkan: Add Integer Dot Product mul_mat_vec shader for legacy quants (llama/14903)
authorRuben Ortlam <redacted>
Mon, 1 Sep 2025 14:19:07 +0000 (16:19 +0200)
committerGeorgi Gerganov <redacted>
Fri, 5 Sep 2025 09:54:10 +0000 (12:54 +0300)
commit68fd8cc33b86a53975a96fd16f30eb5354453788
tree48ec1ce6f2624d5b2f1bc3f7a513723fb1c664ad
parenteb50f30e2d4d115081528fa5715f7e1919b87ea9
Vulkan: Add Integer Dot Product mul_mat_vec shader for legacy quants (llama/14903)

* vulkan: Add Integer Dot Product mul_mat_vec shader for legacy quants

* vulkan: use subgroup operations for quantize_q8_1 shader

* vulkan: add q8_1_x4 type with 128-bit alignment, use in mul_mat_vecq shader

* vulkan: use q8_1_x4 blocks in mul_mmq shader

* vulkan: do 8 calculations per invocation instead of 32 in mul_mat_vecq, similar to mul_mat_vec

* vulkan: tune mul_mat_vecq performance for Intel

* vulkan: fix quantizing issue when tensor is not divisible by 128

* vulkan: adapt integer dot mmv to mmv small m optimization (llama/15355)

* vulkan: allow all subgroup modes for mmv and mmvq

* vulkan: use prealloc intermediate reuse for mmvq path

* vulkan: tune mmvq for Intel, AMD GCN and Nvidia RTX 3090

* vulkan: adapt mmv quantize_y path to conditional sync logic

* vulkan: disable q8_0 mmvq on Nvidia

* vulkan: enable q8_0 on Nvidia pre-turing

* fix prealloc sync condition

* fix llvmpipe subgroup 8 issue
src/ggml-vulkan/ggml-vulkan.cpp
src/ggml-vulkan/vulkan-shaders/mul_mat_vec_base.comp
src/ggml-vulkan/vulkan-shaders/mul_mat_vecq.comp [new file with mode: 0644]
src/ggml-vulkan/vulkan-shaders/mul_mmq.comp
src/ggml-vulkan/vulkan-shaders/mul_mmq_funcs.comp
src/ggml-vulkan/vulkan-shaders/quantize_q8_1.comp
src/ggml-vulkan/vulkan-shaders/types.comp
src/ggml-vulkan/vulkan-shaders/vulkan-shaders-gen.cpp