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

Method exec

dnn/src/rocm/convolution/forward/1x1.cpp:46–61  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

44 return args.handle->matmul_opr()->get_workspace_in_bytes(A, B, C);
45}
46void ConvolutionForwardImpl::Algo1x1::exec(const ExecArgs& args) const {
47 TensorND A, B, C;
48 extract_matmul_layouts(args, A.layout, B.layout, C.layout);
49 A.reset_ptr(args.filter_tensor->raw_ptr());
50 B.reset_ptr(args.src_tensor->raw_ptr());
51 C.reset_ptr(args.dst_tensor->raw_ptr());
52 size_t batch = args.src_layout->shape[0];
53 auto mm = args.handle->matmul_opr();
54 auto strd_B = args.src_layout->stride[0] * args.src_layout->dtype.size(),
55 strd_C = args.dst_layout->stride[0] * args.dst_layout->dtype.size();
56 for (size_t i = 0; i < batch; ++i) {
57 mm->exec(A, B, C, args.workspace);
58 incr_refp(B.get_ref_ptr(), strd_B);
59 incr_refp(C.get_ref_ptr(), strd_C);
60 }
61}
62
63/*
64 * Funcitons to handle large batch

Callers

nothing calls this directly

Calls 7

incr_refpFunction · 0.85
reset_ptrMethod · 0.80
raw_ptrMethod · 0.45
matmul_oprMethod · 0.45
sizeMethod · 0.45
get_ref_ptrMethod · 0.45
batched_matrix_mulMethod · 0.45

Tested by

no test coverage detected