| 188 | ~MklSlicePrimitive() {} |
| 189 | |
| 190 | void Execute(const MklSliceParams& sliceParams, |
| 191 | std::shared_ptr<stream> slice_stream) { |
| 192 | #ifdef DNNL_AARCH64_USE_ACL |
| 193 | mutex_lock lock(primitive_execution_mu_); |
| 194 | #endif |
| 195 | #ifdef ENABLE_DNNL_THREADPOOL |
| 196 | context_.src_mem->set_data_handle(sliceParams.from->get_data_handle(), |
| 197 | *slice_stream); |
| 198 | context_.dst_mem->set_data_handle(sliceParams.to->get_data_handle(), |
| 199 | *slice_stream); |
| 200 | #else |
| 201 | context_.src_mem->set_data_handle(sliceParams.from->get_data_handle()); |
| 202 | context_.dst_mem->set_data_handle(sliceParams.to->get_data_handle()); |
| 203 | #endif // ENABLE_DNNL_THREADPOOL |
| 204 | execute_primitives(context_.slice_primitives, slice_stream, |
| 205 | context_.slice_primitives_args); |
| 206 | |
| 207 | // We should set it back to DummyData so as to make the primitive |
| 208 | // in cache pool stateless. Otherwise, if the result for previous |
| 209 | // iteration is kept, problems of current iteration won't be |
| 210 | // thrown immediately, and wrong data would be reused. |
| 211 | context_.src_mem->set_data_handle(DummyData); |
| 212 | context_.dst_mem->set_data_handle(DummyData); |
| 213 | return; |
| 214 | } |
| 215 | |
| 216 | std::shared_ptr<primitive> GetPrimitive() { return context_.reorder_prim; } |
| 217 |
no test coverage detected