Skip to content

Commit 852ce51

Browse files
ggerganovCopilot
andcommitted
ggml : fix conv2d_dw SVE path (ggml/1380)
* Fix test-conv2d-dw failure on ARM SVE by using runtime vector length The ggml_compute_forward_conv_2d_dw_cwhn function was using a hardcoded GGML_F32_EPR (8) for SIMD vectorization, but on ARM SVE the actual vector length varies by hardware. This caused incorrect computation when processing CWHN layout tensors on ARM machines. Fix by using svcntw() to get the runtime SVE vector length instead of the compile-time constant. Co-authored-by: ggerganov <[email protected]> * ci : reduce sam score threshold * ci : update bbox checks for sam test --------- Co-authored-by: copilot-swe-agent[bot] <[email protected]> Co-authored-by: ggerganov <[email protected]>
1 parent 9aa6337 commit 852ce51

File tree

1 file changed

+5
-1
lines changed

1 file changed

+5
-1
lines changed

ggml/src/ggml-cpu/ops.cpp

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7084,7 +7084,11 @@ static void ggml_compute_forward_conv_2d_dw_cwhn(
70847084
const int64_t row_end = MIN(row_start + rows_per_thread, rows_total);
70857085

70867086
#ifdef GGML_SIMD
7087-
const int64_t pkg_size = GGML_F32_EPR;
7087+
#if defined(__ARM_FEATURE_SVE)
7088+
const int64_t pkg_size = svcntw();
7089+
#else
7090+
const int64_t pkg_size = GGML_F32_EPR;
7091+
#endif
70887092
const int64_t pkg_count = c / pkg_size;
70897093
const int64_t c_pkg_end = pkg_count * pkg_size;
70907094
#else

0 commit comments

Comments
 (0)