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

Method exec

dnn/src/rocm/reduce/opr_impl.cpp:122–144  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

120namespace rocm {
121
122void ReduceForwardImpl::exec(
123 _megdnn_tensor_in src, _megdnn_tensor_out dst, _megdnn_workspace workspace) {
124 using namespace device_reduce;
125 check_exec(src.layout, dst.layout, workspace.size);
126 size_t A, B, C;
127 reduce::get_ABC(src.layout, A, B, C, param().axis);
128 auto stream = hip_stream(this->handle());
129#define CASE(_mode, _op) \
130 case _mode: \
131 return dispatch_dtype<_op>( \
132 stream, src, dst, workspace, A, B, C, param().data_type);
133 switch (param().mode) {
134 CASE(Mode::SUM, SumOp)
135 CASE(Mode::SUM_SQR, SumSqrOp)
136 CASE(Mode::PRODUCT, ProdOp)
137 CASE(Mode::MIN, MinOp)
138 CASE(Mode::MAX, MaxOp)
139 CASE(Mode::MEAN, MeanOp)
140 default:
141 megdnn_assert_internal(false);
142#undef CASE
143 }
144}
145
146size_t ReduceForwardImpl::get_workspace_in_bytes(
147 const TensorLayout& src, const TensorLayout& dst) {

Callers

nothing calls this directly

Calls 4

get_ABCFunction · 0.85
hip_streamFunction · 0.85
paramFunction · 0.50
handleMethod · 0.45

Tested by

no test coverage detected