| 7 | namespace cuda { |
| 8 | |
| 9 | void WhereForwardImpl::exec( |
| 10 | _megdnn_tensor_in mask, _megdnn_tensor_in data1, _megdnn_tensor_in data2, |
| 11 | _megdnn_tensor_out dst, _megdnn_workspace workspace) { |
| 12 | check_exec(mask.layout, data1.layout, data2.layout, dst.layout, workspace.size); |
| 13 | auto stream = cuda_stream(this->handle()); |
| 14 | auto n = data1.layout.total_nr_elems(); |
| 15 | #define cb(DType) \ |
| 16 | if (data1.layout.dtype == DType()) { \ |
| 17 | using ctype = typename DTypeTrait<DType>::ctype; \ |
| 18 | where::forward_proxy<ctype>( \ |
| 19 | mask.ptr<dt_bool>(), data1.ptr<ctype>(), data2.ptr<ctype>(), \ |
| 20 | dst.ptr<ctype>(), n, stream); \ |
| 21 | } |
| 22 | MEGDNN_FOREACH_COMPUTING_DTYPE(cb) |
| 23 | cb(::megdnn::dtype::Bool) |
| 24 | #undef cb |
| 25 | } |
| 26 | |
| 27 | } // namespace cuda |
| 28 | } // namespace megdnn |
nothing calls this directly
no test coverage detected