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

Function rep

dnn/src/arm_common/convolution/quint8/conv_backdata_stride1.cpp:1285–1312  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1283 uint8_t* sptr = nullptr;
1284
1285 rep(oc, OC) {
1286 if (need_src_copy_var) {
1287 // copy sptr_ori to sptr_copied
1288 std::memset(sptr_copied, src_zp, sizeof(uint8_t) * IH2 * IW2);
1289 copy_plane_in_bytes(
1290 sptr_copied + padding_h * IW2 + padding_w,
1291 sptr_ori + oc * IH * IW, IH, IW * sizeof(uint8_t),
1292 IW2 * sizeof(uint8_t), IW * sizeof(uint8_t));
1293 sptr = sptr_copied;
1294 } else {
1295 sptr = sptr_ori + oc * IH * IW;
1296 }
1297
1298 int32_t* dst_ptr = dptr;
1299 const uint8_t* filter = fptr + oc * IC * FH * FW;
1300 for (size_t ic = 0; ic < IC; ic++) {
1301 if (oc != OC - 1) {
1302 deconv(sptr, filter, dst_ptr, IH2, IW2, OH, OW_real, IC, src_zp,
1303 filter_zp, src_filter_zp);
1304 } else {
1305 deconv_last_oc(
1306 sptr, filter, dst_ptr, IH2, IW2, OH, OW_real, IC, src_zp,
1307 filter_zp, src_filter_zp);
1308 }
1309 dst_ptr += OH * OW_real;
1310 filter += FH * FH;
1311 }
1312 }
1313 if (need_dst_copy_var) {
1314 for (size_t ic = 0; ic < IC; ++ic) {
1315 copy_plane_in_bytes(

Callers

nothing calls this directly

Calls 1

copy_plane_in_bytesFunction · 0.85

Tested by

no test coverage detected