MCPcopy Create free account
hub / github.com/MegEngine/MegEngine / TEST_F

Function TEST_F

dnn/test/naive/resize.cpp:9–63  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

7using namespace test;
8
9TEST_F(NAIVE, RESIZE_NCHW4) {
10 Checker<Resize> checker(handle());
11
12 auto args = resize::get_nchw4_args();
13 auto convert_true_format = [](const TensorLayout& layout) {
14 return layout.reshape({layout[0], layout[1] / 4, layout[2], layout[3], 4})
15 .dimshuffle({0, 1, 4, 2, 3});
16 };
17
18 for (auto&& arg : args) {
19 auto extra_impl = [this, param = arg.param,
20 convert_true_format](const TensorNDArray& tensors) {
21 auto resize = handle()->create_operator<Resize>();
22 resize->param().imode = param.imode;
23 resize->param().format = Resize::Param::Format::NCHW;
24
25 TensorNDArray nchw_tensors;
26 for (size_t i = 0; i < tensors.size(); ++i) {
27 auto layout = tensors[i].layout;
28 layout = layout.reshape(
29 {layout[0], layout[1] * 4, layout[2], layout[3]});
30 layout.dtype = dtype::Int8();
31 nchw_tensors.emplace_back(malloc(layout.span().dist_byte()), layout);
32 }
33 TensorNDArray nchw4_tensors;
34 for (size_t i = 0; i < tensors.size(); ++i) {
35 auto layout = convert_true_format(nchw_tensors[i].layout);
36 nchw4_tensors.emplace_back(tensors[i].raw_ptr(), std::move(layout));
37 }
38
39 auto relayout = handle()->create_operator<RelayoutForward>();
40 relayout->exec(nchw4_tensors[0], nchw_tensors[0]);
41
42 auto workspace_size = resize->get_workspace_in_bytes(
43 nchw_tensors[0].layout, nchw_tensors[1].layout);
44 dt_byte* workspace_ptr = static_cast<dt_byte*>(malloc(workspace_size));
45 Workspace workspace{workspace_ptr, workspace_size};
46
47 resize->exec(nchw_tensors[0], nchw_tensors[1], workspace);
48
49 relayout->exec(nchw_tensors[1], nchw4_tensors[1]);
50
51 free(workspace_ptr);
52 for (auto&& tensor : nchw_tensors) {
53 free(tensor.raw_ptr());
54 }
55 };
56 checker.set_extra_opr_impl(extra_impl);
57 checker.set_param(arg.param)
58 .set_dtype(0, dtype::QuantizedS8(0.1f))
59 .set_dtype(1, dtype::QuantizedS8(0.1f))
60 .set_epsilon(1 + 1e-3)
61 .execs({arg.src, arg.dst});
62 }
63}
64
65TEST_F(NAIVE, RESIZE3D_NCDHW) {
66 using IMode = param::Resize3D::InterpolationMode;

Callers

nothing calls this directly

Calls 15

get_nchw4_argsFunction · 0.85
freeFunction · 0.85
TensorValueFunction · 0.85
dimshuffleMethod · 0.80
emplace_backMethod · 0.80
dist_byteMethod · 0.80
spanMethod · 0.80
set_dtypeMethod · 0.80
exectMethod · 0.80
reshapeMethod · 0.45
paramMethod · 0.45
sizeMethod · 0.45

Tested by

no test coverage detected