mirror of https://github.com/alibaba/MNN.git
Fix bug for sub swap error
This commit is contained in:
parent
a408209d38
commit
c99c4b7f16
|
|
@ -327,6 +327,15 @@ struct BinaryNotEqual : std::binary_function<_Arg1, _Arg2, _ErrorCode> {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static void callEleFunc(void(*proc)(float* C, const float* A, const float* B, size_t width, size_t cStride, size_t aStride, size_t bStride, size_t height),
|
||||||
|
float* C, const float* A, const float* B, size_t size, bool swap) {
|
||||||
|
if (swap) {
|
||||||
|
proc(C, B, A, size, 0, 0, 0, 1);
|
||||||
|
} else {
|
||||||
|
proc(C, A, B, size, 0, 0, 0, 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
ErrorCode CPUBinaryFloat::onExecute(const std::vector<Tensor*>& inputs, const std::vector<Tensor*>& outputs) {
|
ErrorCode CPUBinaryFloat::onExecute(const std::vector<Tensor*>& inputs, const std::vector<Tensor*>& outputs) {
|
||||||
auto input = inputs[0];
|
auto input = inputs[0];
|
||||||
auto input1 = inputs[1];
|
auto input1 = inputs[1];
|
||||||
|
|
@ -365,7 +374,7 @@ ErrorCode CPUBinaryFloat::onExecute(const std::vector<Tensor*>& inputs, const st
|
||||||
} else {
|
} else {
|
||||||
MNN_CONCURRENCY_BEGIN(tId, numberThread) {
|
MNN_CONCURRENCY_BEGIN(tId, numberThread) {
|
||||||
for (int y = tId; y < mOutside; y+=numberThread) {
|
for (int y = tId; y < mOutside; y+=numberThread) {
|
||||||
mElementProc(output->host<float>() + y * mAxis, input->host<float>() + y * mAxis, input1->host<float>(), mAxis, 0, 0, 0, 1);
|
callEleFunc(mElementProc, output->host<float>() + y * mAxis, input->host<float>() + y * mAxis, input1->host<float>(), mAxis, swap);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
MNN_CONCURRENCY_END();
|
MNN_CONCURRENCY_END();
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue