| 22 | } |
| 23 | |
| 24 | void ConvolutionBackwardDataImpl::AlgoChanwise::exec(const ExecArgs& args) const { |
| 25 | auto kparam = chanwise::Param::from_fwd_args(args.as_fwd_args()); |
| 26 | auto stream = hip_stream(args.handle); |
| 27 | switch (args.diff_layout->dtype.enumv()) { |
| 28 | #define cb(_dt) \ |
| 29 | case DTypeTrait<_dt>::enumv: { \ |
| 30 | using ctype = DTypeTrait<_dt>::ctype; \ |
| 31 | return chanwise::run_bwd_data( \ |
| 32 | args.grad_tensor->ptr<ctype>(), args.diff_tensor->ptr<ctype>(), \ |
| 33 | args.filter_tensor->ptr<ctype>(), kparam, stream); \ |
| 34 | } |
| 35 | MEGDNN_FOREACH_COMPUTING_DTYPE_FLOAT(cb) |
| 36 | #undef cb |
| 37 | default: |
| 38 | break; |
| 39 | } |
| 40 | megdnn_assert_internal(0); |
| 41 | } |
| 42 | |
| 43 | // vim: syntax=cpp.doxygen |
nothing calls this directly
no test coverage detected