opencl: refine condition for kqv mm (#17392)

This commit is contained in:
lhez 2025-11-21 14:34:48 -08:00 committed by GitHub
parent 23bc779a6e
commit 8e9ddba610
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 17 additions and 3 deletions

View File

@ -6896,9 +6896,23 @@ static void ggml_cl_mul_mat(ggml_backend_t backend, const ggml_tensor * src0, co
if(src0t == GGML_TYPE_F16 && src1t == GGML_TYPE_F32){ if(src0t == GGML_TYPE_F16 && src1t == GGML_TYPE_F32){
if (ne01 >= 64 && ne1 >= 32 && ne00 >= 16 && (ne12 % ne02) == 0) { if (ne01 >= 64 && ne1 >= 32 && ne00 >= 16 && (ne12 % ne02) == 0) {
// For KQ
if (ggml_is_permuted(src0) && ggml_is_permuted(src1) &&
nb00 <= nb02 &&
nb02 <= nb01 &&
nb01 <= nb03 &&
nb10 <= nb12 &&
nb12 <= nb11 &&
nb11 <= nb13) {
ggml_cl_mul_mat_kq_kqv_adreno(backend, src0, src1, dst); ggml_cl_mul_mat_kq_kqv_adreno(backend, src0, src1, dst);
return; return;
} }
// For KQV
if (!ggml_is_contiguous(src0) && ggml_is_contiguous(src1)) {
ggml_cl_mul_mat_kq_kqv_adreno(backend, src0, src1, dst);
return;
}
}
} }
if (ne01 && ne1 && use_adreno_kernels(backend_ctx, src0)) { if (ne01 && ne1 && use_adreno_kernels(backend_ctx, src0)) {