From: slaren Date: Tue, 5 Dec 2023 15:12:15 +0000 (+0100) Subject: test-backend-ops : initialize ggml_argsort test with unique values to avoid ties... X-Git-Tag: upstream/0.0.1642~1181 X-Git-Url: https://git.djapps.eu/?a=commitdiff_plain;h=3f669426fdf2fdc64c999c1768ef8b9fc0823c7b;p=pkg%2Fggml%2Fsources%2Fggml test-backend-ops : initialize ggml_argsort test with unique values to avoid ties (#634) ggml-ci --- diff --git a/tests/test-backend-ops.cpp b/tests/test-backend-ops.cpp index d30523a2..22ed469e 100644 --- a/tests/test-backend-ops.cpp +++ b/tests/test-backend-ops.cpp @@ -824,22 +824,34 @@ struct test_argsort : public test_case { } void initialize_tensors(ggml_context * ctx) override { + std::random_device rd; + std::default_random_engine rng(rd()); for (ggml_tensor * t = ggml_get_first_tensor(ctx); t != NULL; t = ggml_get_next_tensor(ctx, t)) { if (t->type == GGML_TYPE_I32) { + // indices std::vector data(ggml_nelements(t)); for (int i = 0; i < ggml_nelements(t); i++) { data[i] = rand(); } - std::shuffle(data.begin(), data.end(), std::default_random_engine(std::random_device()())); + std::shuffle(data.begin(), data.end(), rng); ggml_backend_tensor_set(t, data.data(), 0, ne[0]*ne[1]*ne[2]*ne[3] * sizeof(int)); + } else if (t->type == GGML_TYPE_F32) { + // initialize with unique values to avoid ties + for (int64_t r = 0; r < ggml_nrows(t); r++) { + std::vector data(t->ne[0]); + for (int i = 0; i < t->ne[0]; i++) { + data[i] = i; + } + std::shuffle(data.begin(), data.end(), rng); + ggml_backend_tensor_set(t, data.data(), r * t->nb[1], t->ne[0] * sizeof(float)); + } } else { - init_tensor_uniform(t); + GGML_ASSERT(false); } } } }; - // GGML_OP_MUL_MAT_ID struct test_mul_mat_id : public test_case { const ggml_type type_a;