| 117 | // ----------------------------------------------------------------------------------------------- |
| 118 | |
| 119 | PreConcatConvCHW::PreConcatConvCHW(Engine* engine, const ConcatConvDesc& desc) |
| 120 | : ConcatConv(desc) |
| 121 | { |
| 122 | if (src0Desc.layout == TensorLayout::hwc) |
| 123 | throw std::invalid_argument("unsupported concat+conv source layout"); |
| 124 | if (fusion != Fusion::None && fusion != Fusion::PoolDst) // only post-ops supported |
| 125 | throw std::invalid_argument("unsupported concat+conv fusion"); |
| 126 | |
| 127 | TensorDims srcDims{src0Desc.getC() + src1Desc.getC(), src0Desc.getH(), src0Desc.getW()}; |
| 128 | TensorDims srcPaddedDims{src0Desc.getPaddedC() + src1Desc.getPaddedC(), src0Desc.getH(), src0Desc.getW()}; |
| 129 | srcDesc = {srcDims, srcPaddedDims, src0Desc.layout, src0Desc.dataType}; |
| 130 | |
| 131 | conv = engine->newConv({srcDesc, weightDesc, biasDesc, activation, fusion, fastMath}); |
| 132 | } |
| 133 | |
| 134 | void PreConcatConvCHW::updateSrc() |
| 135 | { |
nothing calls this directly
no test coverage detected