Skip to content

Commit 139a5cc

Browse files
Address PR review feedback: Improve repack() error handling while keeping GGML_ASSERTs in compute functions
1 parent 3fb0a8d commit 139a5cc

File tree

1 file changed

+4
-19
lines changed

1 file changed

+4
-19
lines changed

ggml/src/ggml-cpu/kleidiai/kleidiai.cpp

Lines changed: 4 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -103,11 +103,7 @@ static void transpose_f32kxn_f16nxk(size_t n, size_t k, float * dst, const uint1
103103
class tensor_traits : public ggml::cpu::tensor_traits {
104104
bool work_size(int /* n_threads */, const struct ggml_tensor * op, size_t & size) override {
105105
ggml_kleidiai_kernels *kernels = ggml_kleidiai_select_kernels(ctx.features, op);
106-
if (!kernels) {
107-
// No suitable KleidiAI kernel available, fallback to standard CPU implementation
108-
GGML_LOG_DEBUG("%s: No suitable KleidiAI kernel available for operation, falling back to standard CPU implementation\n", __func__);
109-
return false; // Let the system fallback to standard CPU implementation
110-
}
106+
GGML_ASSERT(kernels);
111107
kernel_info * kernel = op->src[1]->ne[1] == 1 ? &kernels->gemv : &kernels->gemm;
112108

113109
size_t k = op->src[0]->ne[0];
@@ -152,11 +148,7 @@ class tensor_traits : public ggml::cpu::tensor_traits {
152148
GGML_TENSOR_BINARY_OP_LOCALS
153149

154150
ggml_kleidiai_kernels *kernels = ggml_kleidiai_select_kernels(ctx.features, dst);
155-
if (!kernels) {
156-
// No suitable KleidiAI kernel available, fallback to standard CPU implementation
157-
GGML_LOG_DEBUG("%s: No suitable KleidiAI kernel available for KV cache operation, falling back to standard CPU implementation\n", __func__);
158-
return false; // Let the system fallback to standard CPU implementation
159-
}
151+
GGML_ASSERT(kernels);
160152

161153
kernel_info * kernel = src1->ne[1] == 1 ? &kernels->gemv : &kernels->gemm;
162154
GGML_ASSERT(kernel);
@@ -284,11 +276,7 @@ class tensor_traits : public ggml::cpu::tensor_traits {
284276
GGML_TENSOR_BINARY_OP_LOCALS
285277

286278
ggml_kleidiai_kernels *kernels = ggml_kleidiai_select_kernels(ctx.features, dst);
287-
if (!kernels) {
288-
// No suitable KleidiAI kernel available, fallback to standard CPU implementation
289-
GGML_LOG_DEBUG("%s: No suitable KleidiAI kernel available for Q4_0 operation, falling back to standard CPU implementation\n", __func__);
290-
return false; // Let the system fallback to standard CPU implementation
291-
}
279+
GGML_ASSERT(kernels);
292280

293281
kernel_info * kernel = src1->ne[1] == 1 ? &kernels->gemv : &kernels->gemm;
294282
lhs_packing_info * lhs_info = &kernels->lhs_info;
@@ -356,10 +344,7 @@ class tensor_traits : public ggml::cpu::tensor_traits {
356344

357345
public:
358346
int repack(struct ggml_tensor * tensor, const void * data, size_t data_size) {
359-
if (!ctx.kernels) {
360-
GGML_LOG_DEBUG("%s: No suitable KleidiAI kernel available, falling back to standard CPU implementation\n", __func__);
361-
return -1; // No suitable kernel available
362-
}
347+
GGML_ASSERT(ctx.kernels);
363348
const size_t n = tensor->ne[1];
364349
const size_t k = tensor->ne[0];
365350
size_t nr = ctx.kernels->gemm.get_nr();

0 commit comments

Comments
 (0)