| 20 | } |
| 21 | |
| 22 | void ConvolutionBackwardDataImpl::AlgoMatmul::exec(const ExecArgs& args) const { |
| 23 | #define cb(DType) \ |
| 24 | if (args.diff_layout->dtype == DType()) { \ |
| 25 | using ctype = typename DTypeTrait<DType>::ctype; \ |
| 26 | exec_internal<ctype>(args); \ |
| 27 | return; \ |
| 28 | } |
| 29 | MEGDNN_FOREACH_COMPUTING_DTYPE_FLOAT(cb) |
| 30 | #undef cb |
| 31 | |
| 32 | megdnn_assert_internal(0); |
| 33 | } |
| 34 | |
| 35 | template <typename T> |
| 36 | void ConvolutionBackwardDataImpl::AlgoMatmul::exec_internal(const ExecArgs& args) { |