MCPcopy Create free account
hub / github.com/alibaba/MNN / onExecute

Method onExecute

source/core/WrapExecution.cpp:90–109  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

88 return NO_ERROR;
89 }
90 virtual ErrorCode onExecute(const std::vector<Tensor *> &inputs, const std::vector<Tensor *> &outputs) override {
91 auto inputBn = TensorUtils::getDescribeOrigin(inputs[0])->getBackend();
92 auto outputBn = TensorUtils::getDescribeOrigin(outputs[0])->getBackend();
93 auto outputForwardtype = MNN_FORWARD_CPU;
94 if (nullptr != mMidCPUTensor.get()) {
95 inputBn->onCopyBuffer(inputs[0], mMidCPUTensor.get());
96 outputBn->onCopyBuffer(mMidCPUTensor.get(), outputs[0]);
97 return NO_ERROR;
98 }
99 if (nullptr != outputBn) {
100 outputForwardtype = outputBn->type();
101 }
102 if (outputForwardtype == MNN_FORWARD_CPU) {
103 MNN_ASSERT(nullptr != inputBn);
104 inputBn->onCopyBuffer(inputs[0], outputs[0]);
105 } else {
106 outputBn->onCopyBuffer(inputs[0], outputs[0]);
107 }
108 return NO_ERROR;
109 }
110private:
111 std::shared_ptr<Tensor> mMidCPUTensor;
112 Backend* mBackupBackend;

Callers 2

executeMethod · 0.45
executeCallBackMethod · 0.45

Calls 4

getBackendMethod · 0.45
getMethod · 0.45
onCopyBufferMethod · 0.45
typeMethod · 0.45

Tested by

no test coverage detected