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

Function sub_opr_config

dnn/src/cuda/convolution/backward_data/matmul.cpp:12–31  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

10
11namespace {
12std::pair<TensorLayoutArray, MatrixMulForward::Param> sub_opr_config(
13 const ConvolutionBackwardDataImpl::CanonizedFilterMeta& fm,
14 const TensorLayout& filter_layout, const TensorLayout& diff_layout,
15 const TensorLayout& grad_layout, const ConvolutionBackwardDataImpl* opr) {
16 size_t N = grad_layout.shape[0], IC = fm.icpg, OC = fm.ocpg,
17 OH = diff_layout.shape[2], OW = diff_layout.shape[3], FH = fm.spatial[0],
18 FW = fm.spatial[1];
19
20 megdnn_assert(filter_layout.dtype.enumv() == diff_layout.dtype.enumv());
21 TensorLayout Al({OC, IC * FH * FW}, filter_layout.dtype),
22 Bl({IC * FH * FW, OH * OW * N}, filter_layout.dtype),
23 Cl({OC, OH * OW * N}, filter_layout.dtype);
24 MatrixMulForward::Param param;
25 if (opr->param().compute_mode == param::Convolution::ComputeMode::FLOAT32) {
26 param.compute_mode = param::MatrixMul::ComputeMode::FLOAT32;
27 }
28
29 param.transposeA = true;
30 return {{Al, Cl, Bl}, param};
31}
32
33std::pair<TensorLayoutArray, std::unique_ptr<MatrixMulForward>> prepare_sub_opr(
34 const ConvolutionBackwardDataImpl::AlgoBase::SizeArgs& args) {

Callers 2

prepare_sub_oprFunction · 0.70
get_subopr_listMethod · 0.70

Calls 2

enumvMethod · 0.45
paramMethod · 0.45

Tested by

no test coverage detected