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

Method exec

dnn/src/rocm/add_update/opr_impl.cpp:11–34  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

9using namespace rocm;
10
11void AddUpdateForwardImpl::exec(_megdnn_tensor_inout dest, _megdnn_tensor_in delta) {
12 check_exec(dest.layout, delta.layout);
13 if (!dest.layout.is_contiguous()) {
14 return exec_noncontig(dest, delta);
15 }
16 ElemwiseOpParamN<1> param;
17 param[0] = delta;
18 param[0].layout = param[0].layout.broadcast(dest.layout);
19 param.init_from_given_tensor();
20 auto stream = hip_stream(handle());
21 switch (dest.layout.dtype.enumv()) {
22#define cb(_dt) \
23 case DTypeTrait<_dt>::enumv: { \
24 using ctype = DTypeTrait<_dt>::ctype; \
25 return run_elemwise<AddUpdateKernOp<ctype>, ctype, 1>( \
26 param, stream, {dest, m_param}); \
27 }
28 MEGDNN_FOREACH_COMPUTING_DTYPE(cb)
29#undef cb
30
31 default:
32 megdnn_throw("unsupported dtype for AddUpdate");
33 }
34}
35
36void AddUpdateForwardImpl::exec_noncontig(
37 _megdnn_tensor_inout dest, _megdnn_tensor_in delta) {

Callers

nothing calls this directly

Calls 5

hip_streamFunction · 0.85
is_contiguousMethod · 0.45
broadcastMethod · 0.45
enumvMethod · 0.45

Tested by

no test coverage detected