]> git.djapps.eu Git - pkg/ggml/sources/whisper.cpp/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>
Sat, 20 Sep 2025 10:42:46 +0000 (13:42 +0300)
commit5e70d901b082a0834c19caf935a67b652ec5747c
treed88398aa17514313fdd3c4aa9a85c2578f053fa9
parentc5f511e697c6c6c6f8ed88c1968d915b53b3c59f
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
ggml/src/ggml-vulkan/ggml-vulkan.cpp
ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_base.comp
ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vecq.comp [new file with mode: 0644]
ggml/src/ggml-vulkan/vulkan-shaders/mul_mmq.comp
ggml/src/ggml-vulkan/vulkan-shaders/mul_mmq_funcs.comp
ggml/src/ggml-vulkan/vulkan-shaders/quantize_q8_1.comp
ggml/src/ggml-vulkan/vulkan-shaders/types.comp
ggml/src/ggml-vulkan/vulkan-shaders/vulkan-shaders-gen.cpp