| 51 | NEMatMul::~NEMatMul() = default; |
| 52 | |
| 53 | void NEMatMul::configure(ITensor *lhs, |
| 54 | ITensor *rhs, |
| 55 | ITensor *output, |
| 56 | const MatMulInfo &info, |
| 57 | const CpuMatMulSettings &settings, |
| 58 | const ActivationLayerInfo &act_info) |
| 59 | { |
| 60 | ARM_COMPUTE_TRACE_EVENT(ARM_COMPUTE_PROF_CAT_CPU, ARM_COMPUTE_PROF_LVL_CPU, "NEMatMul::configure"); |
| 61 | _impl->lhs = lhs; |
| 62 | _impl->rhs = rhs; |
| 63 | _impl->output = output; |
| 64 | |
| 65 | ARM_COMPUTE_ERROR_ON_NULLPTR(_impl->lhs, _impl->rhs, _impl->output); |
| 66 | _impl->op = std::make_unique<cpu::CpuMatMul>(); |
| 67 | _impl->op->configure(lhs->info(), rhs->info(), output->info(), info, settings, act_info); |
| 68 | _impl->run_pack = {{ACL_SRC_0, lhs}, {ACL_SRC_1, rhs}, {ACL_DST, output}}; |
| 69 | _impl->workspace_tensors = manage_workspace<Tensor>(_impl->op->workspace(), _impl->memory_group, _impl->run_pack); |
| 70 | } |
| 71 | |
| 72 | Status NEMatMul::validate(const ITensorInfo *lhs, |
| 73 | const ITensorInfo *rhs, |