]> git.djapps.eu Git - pkg/ggml/sources/llama.cpp/commitdiff
vulkan: add missing clamps in new mul_mat_id paths (#15702)
authorJeff Bolz <redacted>
Mon, 1 Sep 2025 19:01:10 +0000 (14:01 -0500)
committerGitHub <redacted>
Mon, 1 Sep 2025 19:01:10 +0000 (21:01 +0200)
This is a missing interaction between #15546 and #15652

ggml/src/ggml-vulkan/vulkan-shaders/mul_mm_cm2.comp

index 654105a4916e51da3f9630b1782186a38930f76f..69ac38fd4196cf321e254f76c05f61d257776f69 100644 (file)
@@ -494,6 +494,9 @@ void main() {
                     sum = coopMatMulAdd(mat_a, mat_b, sum);
                 }
             }
+#if defined(ACC_TYPE_MAX)
+            [[unroll]] for (uint i = 0; i < sum.length(); ++i) { sum[i] = clamp(sum[i], -ACC_TYPE_MAX, ACC_TYPE_MAX); }
+#endif
 
             // Convert from ACC_TYPE to D_TYPE
             coopmat<D_TYPE, gl_ScopeWorkgroup, BM, BNover4, gl_MatrixUseAccumulator> mat_d;
@@ -535,6 +538,9 @@ void main() {
                     sum = coopMatMulAdd(mat_a, mat_b, sum);
                 }
             }
+#if defined(ACC_TYPE_MAX)
+            [[unroll]] for (uint i = 0; i < sum.length(); ++i) { sum[i] = clamp(sum[i], -ACC_TYPE_MAX, ACC_TYPE_MAX); }
+#endif
 
             // Convert from ACC_TYPE to D_TYPE
             coopmat<D_TYPE, gl_ScopeWorkgroup, BM, BNover2, gl_MatrixUseAccumulator> mat_d;