From: Jeff Bolz Date: Sat, 20 Dec 2025 19:46:46 +0000 (-0600) Subject: tests: Avoid floating point precision false positives in SUM (#17471) X-Git-Tag: upstream/0.0.7599~108 X-Git-Url: https://git.djapps.eu/?a=commitdiff_plain;h=52ab19df633f3de5d4db171a16f2d9edd2342fec;p=pkg%2Fggml%2Fsources%2Fllama.cpp tests: Avoid floating point precision false positives in SUM (#17471) * tests: Avoid floating point precision false positives in SUM * also apply to test_mean --- diff --git a/tests/test-backend-ops.cpp b/tests/test-backend-ops.cpp index dd011e52..b9a73bea 100644 --- a/tests/test-backend-ops.cpp +++ b/tests/test-backend-ops.cpp @@ -5344,6 +5344,13 @@ struct test_sum : public test_case { float grad_eps() override { return 0.1f * sqrtf(ne[0]*ne[1]*ne[2]*ne[3]); } + + // Don't center the distribution around zero. Helps to avoid catastrophic cancellation. + void initialize_tensors(ggml_context * ctx) override { + for (ggml_tensor * t = ggml_get_first_tensor(ctx); t != nullptr; t = ggml_get_next_tensor(ctx, t)) { + init_tensor_uniform(t, -0.9f, 1.1f); + } + } }; // GGML_OP_SUM_ROWS @@ -5410,6 +5417,13 @@ struct test_mean : public test_case { float grad_eps() override { return 0.1f * ne[0]*ne[1]*ne[2]*ne[3]; } + + // Don't center the distribution around zero. Helps to avoid catastrophic cancellation. + void initialize_tensors(ggml_context * ctx) override { + for (ggml_tensor * t = ggml_get_first_tensor(ctx); t != nullptr; t = ggml_get_next_tensor(ctx, t)) { + init_tensor_uniform(t, -0.9f, 1.1f); + } + } }; // GGML_OP_UPSCALE