|
@@ -3296,28 +3296,28 @@ struct test_upscale : public test_case {
|
|
|
}
|
|
}
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
-// GGML_OP_UPSCALE (ext)
|
|
|
|
|
-struct test_upscale_ext : public test_case {
|
|
|
|
|
|
|
+// GGML_OP_UPSCALE (via ggml_interpolate)
|
|
|
|
|
+struct test_interpolate : public test_case {
|
|
|
const ggml_type type;
|
|
const ggml_type type;
|
|
|
const std::array<int64_t, 4> ne;
|
|
const std::array<int64_t, 4> ne;
|
|
|
const std::array<int64_t, 4> ne_tgt;
|
|
const std::array<int64_t, 4> ne_tgt;
|
|
|
- const ggml_scale_mode mode = GGML_SCALE_MODE_NEAREST;
|
|
|
|
|
|
|
+ const uint32_t mode = GGML_SCALE_MODE_NEAREST;
|
|
|
|
|
|
|
|
std::string vars() override {
|
|
std::string vars() override {
|
|
|
return VARS_TO_STR4(type, ne, ne_tgt, mode);
|
|
return VARS_TO_STR4(type, ne, ne_tgt, mode);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- test_upscale_ext(ggml_type type = GGML_TYPE_F32,
|
|
|
|
|
|
|
+ test_interpolate(ggml_type type = GGML_TYPE_F32,
|
|
|
std::array<int64_t, 4> ne = {2, 5, 7, 11},
|
|
std::array<int64_t, 4> ne = {2, 5, 7, 11},
|
|
|
std::array<int64_t, 4> ne_tgt = {5, 7, 11, 13},
|
|
std::array<int64_t, 4> ne_tgt = {5, 7, 11, 13},
|
|
|
- ggml_scale_mode mode = GGML_SCALE_MODE_NEAREST)
|
|
|
|
|
|
|
+ uint32_t mode = GGML_SCALE_MODE_NEAREST)
|
|
|
: type(type), ne(ne), ne_tgt(ne_tgt), mode(mode) {}
|
|
: type(type), ne(ne), ne_tgt(ne_tgt), mode(mode) {}
|
|
|
|
|
|
|
|
ggml_tensor * build_graph(ggml_context * ctx) override {
|
|
ggml_tensor * build_graph(ggml_context * ctx) override {
|
|
|
ggml_tensor * a = ggml_new_tensor(ctx, type, 4, ne.data());
|
|
ggml_tensor * a = ggml_new_tensor(ctx, type, 4, ne.data());
|
|
|
ggml_set_name(a, "a");
|
|
ggml_set_name(a, "a");
|
|
|
|
|
|
|
|
- ggml_tensor * out = ggml_upscale_ext(ctx, a, ne_tgt[0], ne_tgt[1],ne_tgt[2], ne_tgt[3], mode);
|
|
|
|
|
|
|
+ ggml_tensor * out = ggml_interpolate(ctx, a, ne_tgt[0], ne_tgt[1],ne_tgt[2], ne_tgt[3], mode);
|
|
|
ggml_set_name(out, "out");
|
|
ggml_set_name(out, "out");
|
|
|
|
|
|
|
|
return out;
|
|
return out;
|
|
@@ -4799,8 +4799,10 @@ static std::vector<std::unique_ptr<test_case>> make_test_cases_eval() {
|
|
|
for (ggml_scale_mode mode : {GGML_SCALE_MODE_NEAREST, GGML_SCALE_MODE_BILINEAR}) {
|
|
for (ggml_scale_mode mode : {GGML_SCALE_MODE_NEAREST, GGML_SCALE_MODE_BILINEAR}) {
|
|
|
test_cases.emplace_back(new test_upscale(GGML_TYPE_F32, {512, 512, 3, 2}, 2, mode));
|
|
test_cases.emplace_back(new test_upscale(GGML_TYPE_F32, {512, 512, 3, 2}, 2, mode));
|
|
|
test_cases.emplace_back(new test_upscale(GGML_TYPE_F32, {512, 512, 3, 2}, 2, mode, true));
|
|
test_cases.emplace_back(new test_upscale(GGML_TYPE_F32, {512, 512, 3, 2}, 2, mode, true));
|
|
|
- test_cases.emplace_back(new test_upscale_ext(GGML_TYPE_F32, {2, 5, 7, 11}, {5, 7, 11, 13}, mode));
|
|
|
|
|
|
|
+ test_cases.emplace_back(new test_interpolate(GGML_TYPE_F32, {2, 5, 7, 11}, {5, 7, 11, 13}, mode));
|
|
|
|
|
+ test_cases.emplace_back(new test_interpolate(GGML_TYPE_F32, {5, 7, 11, 13}, {2, 5, 7, 11}, mode));
|
|
|
}
|
|
}
|
|
|
|
|
+ test_cases.emplace_back(new test_interpolate(GGML_TYPE_F32, {2, 5, 7, 11}, {5, 7, 11, 13}, GGML_SCALE_MODE_BILINEAR | GGML_SCALE_FLAG_ALIGN_CORNERS));
|
|
|
|
|
|
|
|
test_cases.emplace_back(new test_sum());
|
|
test_cases.emplace_back(new test_sum());
|
|
|
test_cases.emplace_back(new test_sum_rows());
|
|
test_cases.emplace_back(new test_sum_rows());
|