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

Function TEST_F

dnn/test/arm_common/convolution.cpp:14–66  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

12
13#if MGB_ENABLE_DOT
14TEST_F(ARM_COMMON, CONVOLUTION_BACKWARD_DATA_INT8_INT8_INT32) {
15 Checker<ConvolutionBackwardData> checker(handle());
16 using Param = ConvolutionBackwardData::Param;
17 Param param;
18 auto run = [&](size_t n, size_t ic, size_t oh, size_t ow, size_t oc, size_t fh,
19 size_t fw, size_t stride, size_t ph, size_t pw, size_t group = 1) {
20 param.pad_h = ph;
21 param.pad_w = pw;
22 param.stride_h = param.stride_w = stride;
23
24 TensorLayout diff = TensorLayout{{n, oc * group, oh, ow}, dtype::Int8()};
25 TensorLayout grad;
26 TensorLayout filter;
27 if (group == 1) {
28 param.sparse = Param::Sparse::DENSE;
29 filter = {{oc, ic, fh, fw}, dtype::Int8()};
30 } else {
31 param.sparse = Param::Sparse::GROUP;
32 filter = {{group, oc, ic, fh, fw}, dtype::Int8()};
33 }
34 // TensorLayout grad;
35 {
36 auto opr = handle()->create_operator<ConvolutionBackwardData>();
37 opr->param() = param;
38 opr->deduce_layout(filter, diff, grad);
39 }
40 if (stride == 1) {
41 checker.set_before_exec_callback(AlgoChecker<ConvolutionBackwardData>(
42 "AARCH32_I8x8x32_DECONV_STRIDE1"));
43 } else {
44 checker.set_before_exec_callback(AlgoChecker<ConvolutionBackwardData>(
45 "AARCH32_I8x8x32_DECONV_STRIDE2"));
46 }
47 checker.set_param(param)
48 .set_dtype(0, dtype::Int8())
49 .set_dtype(1, dtype::Int8())
50 .set_dtype(2, dtype::Int32());
51 checker.exec(TensorLayoutArray{filter, diff, grad});
52 };
53
54 // clang-format off
55 for (size_t f : {2, 3, 5, 7})
56 for (size_t ih = 1; ih < f+1; ++ih)
57 for (size_t iw = 1; iw < 8*f+1; ++iw)
58 for (size_t s : {1, 2})
59 for (size_t ph : {f/2, f-1})
60 for (size_t pw : {f / 2, f - 1})
61 if (f >= ph + 1 && f >= pw + 1 && (ih - 1) * s + f > 2 * ph &&
62 (iw - 1) * s + f > 2 * pw) {
63 run(2, 3, ih, iw, 2, f, f, s, ph, pw, 1);
64 }
65 // clang-format on
66}
67
68TEST_F(ARM_COMMON, CONVOLUTION_BACKWARD_DATA_QUINT8) {
69 Checker<ConvolutionBackwardData> checker(handle());

Callers

nothing calls this directly

Calls 11

profileFunction · 0.85
set_dtypeMethod · 0.80
emplace_backMethod · 0.80
runFunction · 0.50
paramMethod · 0.45
deduce_layoutMethod · 0.45
execMethod · 0.45
total_nr_elemsMethod · 0.45
to_stringMethod · 0.45
getMethod · 0.45
execlMethod · 0.45

Tested by

no test coverage detected