Eltwise forward execute src_data: input data buffer of src dst_data: output data buffer of dst
| 77 | // src_data: input data buffer of src |
| 78 | // dst_data: output data buffer of dst |
| 79 | void Execute(const T* src_data, T* dst_data, |
| 80 | std::shared_ptr<stream> fwd_stream) { |
| 81 | #ifdef DNNL_AARCH64_USE_ACL |
| 82 | mutex_lock lock(primitive_execution_mu_); |
| 83 | #endif |
| 84 | #ifdef ENABLE_DNNL_THREADPOOL |
| 85 | context_.src_mem->set_data_handle( |
| 86 | static_cast<void*>(const_cast<T*>(src_data)), *fwd_stream); |
| 87 | context_.dst_mem->set_data_handle(static_cast<void*>(dst_data), |
| 88 | *fwd_stream); |
| 89 | #else |
| 90 | context_.src_mem->set_data_handle( |
| 91 | static_cast<void*>(const_cast<T*>(src_data))); |
| 92 | context_.dst_mem->set_data_handle(static_cast<void*>(dst_data)); |
| 93 | #endif // ENABLE_DNNL_THREADPOOL |
| 94 | DCHECK_EQ(context_.fwd_primitives.size(), |
| 95 | context_.fwd_primitives_args.size()); |
| 96 | execute_primitives(context_.fwd_primitives, fwd_stream, |
| 97 | context_.fwd_primitives_args); |
| 98 | |
| 99 | // After execution, set data handle back. |
| 100 | context_.src_mem->set_data_handle(DummyData); |
| 101 | context_.dst_mem->set_data_handle(DummyData); |
| 102 | } |
| 103 | |
| 104 | std::shared_ptr<EltwiseFwdPd> GetEltwiseFwdPd() { return context_.fwd_pd; } |
| 105 |
no test coverage detected