| 108 | } |
| 109 | |
| 110 | void CpuDepthwiseConv2dAssemblyDispatch::run(ITensorPack &tensors) |
| 111 | { |
| 112 | ARM_COMPUTE_TRACE_EVENT(ARM_COMPUTE_PROF_CAT_CPU, ARM_COMPUTE_PROF_LVL_CPU, |
| 113 | "CpuDepthwiseConv2dAssemblyDispatch::run"); |
| 114 | ARM_COMPUTE_ERROR_ON_MSG(tensors.empty(), "No inputs provided"); |
| 115 | |
| 116 | prepare(tensors); |
| 117 | |
| 118 | // Split over rows (z) if there's more than 1, otherwise batches (w). This logic |
| 119 | // corresponds to the threading strategy in DepthFirstDriver::execute_internal |
| 120 | auto split_dimension = _pImpl->asm_kernel->window().num_iterations(Window::DimZ) != 1 ? Window::DimZ : Window::DimW; |
| 121 | |
| 122 | NEScheduler::get().schedule_op(_pImpl->asm_kernel.get(), split_dimension, _pImpl->asm_kernel->window(), tensors); |
| 123 | } |
| 124 | |
| 125 | void CpuDepthwiseConv2dAssemblyDispatch::prepare(ITensorPack &tensors) |
| 126 | { |
nothing calls this directly
no test coverage detected