]> git.djapps.eu Git - pkg/ggml/sources/llama.cpp/commitdiff
vulkan: fix bug in coopmat1 mul_mat_id (#12316)
authorJeff Bolz <redacted>
Wed, 12 Mar 2025 05:59:19 +0000 (00:59 -0500)
committerGitHub <redacted>
Wed, 12 Mar 2025 05:59:19 +0000 (06:59 +0100)
* tests: run mul_mat_id with a larger N

* vulkan: fix bug in coopmat1 mul_mat_id

ggml/src/ggml-vulkan/vulkan-shaders/mul_mm.comp
tests/test-backend-ops.cpp

index a8fd93fdeadee861588812849e0eaed322a42868..0d03411f24ca4bf01c9661cb4408d25bae47f71e 100644 (file)
@@ -777,7 +777,7 @@ void main() {
         [[unroll]] for (uint cm_col = 0; cm_col < cms_per_col; cm_col++) {
             coopMatStore(sums[cm_col * cms_per_row + cm_row], coopmat_stage, warp_i * TM * TN, TM, gl_CooperativeMatrixLayoutColumnMajor);
 
-            [[unroll]] for (uint col = 0; col < BN; col += storestride) {
+            [[unroll]] for (uint col = 0; col < TN; col += storestride) {
                 const uint row_i = dc + cm_col * TN + col + store_c;
                 if (row_i >= _ne1) break;
 
index b4e3631ed081a062d92136fb1fc39444f305cdf3..c86ffb64e9e890063f899202b18faaa1fbbdc0f7 100644 (file)
@@ -4113,7 +4113,7 @@ static std::vector<std::unique_ptr<test_case>> make_test_cases_eval() {
             for (int n_mats : {4, 8}) {
                 for (int n_used : {1, 2, 4}) {
                     for (bool b : {false, true}) {
-                        for (int n : {1, 32}) {
+                        for (int n : {1, 32, 129}) {
                             int m = 512;
                             int k = 256;
                             test_cases.emplace_back(new test_mul_mat_id(type_a, type_b, n_mats, n_used, b, m, n, k));