|
|
@@ -2209,6 +2209,26 @@ struct test_count_equal : public test_case {
|
|
|
double max_nmse_err() override {
|
|
|
return 0.0;
|
|
|
}
|
|
|
+
|
|
|
+ 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_F32) {
|
|
|
+ // initialize with unique values to avoid ties
|
|
|
+ for (int64_t r = 0; r < ggml_nrows(t); r++) {
|
|
|
+ std::vector<float> 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_OP_REPEAT
|