@@ -1981,7 +1981,7 @@ struct test_mul_mat : public test_case {
19811981 const std::array<int64_t , 2 > bs; // dims 3 and 4
19821982 const std::array<int64_t , 2 > nr; // repeat in dims 3 and 4
19831983 const std::array<int64_t , 4 > per; // permutation of dimensions
1984- const bool v; // whether a is a non-contiguous view
1984+ const bool v; // whether a and b are non-contiguous views
19851985
19861986 std::string vars () override {
19871987 return VARS_TO_STR9 (type_a, type_b, m, n, k, bs, nr, per, v);
@@ -2042,12 +2042,15 @@ struct test_mul_mat : public test_case {
20422042 } else {
20432043
20442044 if (v) {
2045- a = ggml_new_tensor_4d (ctx, type_a, k*2 , m, bs[0 ], bs[1 ]);
2046- a = ggml_view_4d (ctx, a, k, m, bs[0 ], bs[1 ], a->nb [1 ], a->nb [2 ], a->nb [3 ], 0 );
2045+ a = ggml_new_tensor_4d (ctx, type_a, k*2 , m, bs[0 ], bs[1 ]);
2046+ b = ggml_new_tensor_4d (ctx, type_b, k*2 , n, bs[0 ]*nr[0 ], bs[1 ]*nr[1 ]);
2047+
2048+ a = ggml_view_4d (ctx, a, k, m, bs[0 ], bs[1 ], a->nb [1 ], a->nb [2 ], a->nb [3 ], 0 );
2049+ b = ggml_view_4d (ctx, b, k, n, bs[0 ]*nr[0 ], bs[1 ]*nr[1 ], b->nb [1 ], b->nb [2 ], b->nb [3 ], 0 );
20472050 } else {
20482051 a = ggml_new_tensor_4d (ctx, type_a, k, m, bs[0 ], bs[1 ]);
2052+ b = ggml_new_tensor_4d (ctx, type_b, k, n, bs[0 ]*nr[0 ], bs[1 ]*nr[1 ]);
20492053 }
2050- b = ggml_new_tensor_4d (ctx, type_b, k, n, bs[0 ]*nr[0 ], bs[1 ]*nr[1 ]);
20512054 if (!ggml_is_quantized (type_a)) {
20522055 if (bs[1 ] == 1 && nr[1 ] == 1 ) {
20532056 ggml_set_param (ctx, a);
0 commit comments