Skip to content

Commit e7bfaab

Browse files
notaJiminLeeclaude
andcommitted
Fix qd8_f16_qb4w GEMM config getter always returning NULL on Arm
xnn_init_qd8_f16_qb4w_gemm_config() gates its return on qd8_f16_qb4w_gemm_config.arch, but init_qd8_f16_qb4w_gemm_config() never assigns .arch on any Arm branch (only mr/nr/log2_kr/planes/dqgemm). So on Arm64 the getter always returns NULL, and every QD8/F16/QB4W fully-connected op fails at runtime creation with xnn_status_unsupported_hardware. This surfaces once the convert->FC packed-LHS path sets INLINE_LHS_PACKING and setup_variant_and_gemm_config gets a NULL gemm config. Align with the qd8_f16_qc4w sibling getter, which returns the config unconditionally (its init likewise does not set .arch). Verified on Apple M4: a QD8/F16/QB4W linear .pte that previously aborted with unsupported_hardware now runs (Model executed successfully). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent f0b3a29 commit e7bfaab

1 file changed

Lines changed: 1 addition & 1 deletion

File tree

‎src/configs/gemm-config.c‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6275,7 +6275,7 @@ const struct xnn_gemm_config* xnn_init_qd8_f16_qb4w_gemm_config() {
62756275
return NULL;
62766276
}
62776277
XNN_INIT_ONCE(qd8_f16_qb4w_gemm);
6278-
return qd8_f16_qb4w_gemm_config.arch ? &qd8_f16_qb4w_gemm_config : NULL;
6278+
return &qd8_f16_qb4w_gemm_config;
62796279
}
62806280

62816281
const struct xnn_gemm_config* xnn_init_qd8_f32_qc4w_gemm_config() {

0 commit comments

Comments
 (0)