|
|
@@ -3658,6 +3658,10 @@ static void ggml_sycl_mul_mat(ggml_backend_sycl_context & ctx, const ggml_tensor
|
|
|
use_mul_mat_q = use_mul_mat_q && (src1->ne[1] <= MMQ_MAX_BATCH_SIZE);
|
|
|
#endif // SYCL_USE_XMX
|
|
|
|
|
|
+ // mmvq path is faster in the CUDA backend.
|
|
|
+ if (ctx.stream()->get_backend() == sycl::backend::ext_oneapi_cuda)
|
|
|
+ use_dequantize_mul_mat_vec = use_dequantize_mul_mat_vec && !use_mul_mat_vec_q;
|
|
|
+
|
|
|
if (!split && src0->type == GGML_TYPE_F16 && ggml_is_permuted(src0) && ggml_is_permuted(src1) && src1->ne[1] == 1) {
|
|
|
// KQ single-batch
|
|
|
ggml_sycl_mul_mat_vec_p021(ctx, src0, src1, dst);
|