aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/core/cpu/kernels/CpuElementwiseKernel.cpp2
-rw-r--r--src/core/cpu/kernels/CpuElementwiseUnaryKernel.cpp2
-rw-r--r--src/core/helpers/WindowHelpers.h11
-rw-r--r--src/runtime/cpu/operators/CpuElementwise.cpp2
-rw-r--r--src/runtime/cpu/operators/CpuElementwiseUnary.cpp2
5 files changed, 8 insertions, 11 deletions
diff --git a/src/core/cpu/kernels/CpuElementwiseKernel.cpp b/src/core/cpu/kernels/CpuElementwiseKernel.cpp
index 23e95f72d7..4ab62440f3 100644
--- a/src/core/cpu/kernels/CpuElementwiseKernel.cpp
+++ b/src/core/cpu/kernels/CpuElementwiseKernel.cpp
@@ -187,7 +187,7 @@ void CpuElementwiseKernel::configure_common(const ITensorInfo *src0, const ITens
return;
}
- auto shape_and_window = compute_output_shape_and_window(*src0, *src1);
+ auto shape_and_window = compute_output_shape_and_window(src0->tensor_shape(), src1->tensor_shape());
auto_init_if_empty(*dst, shape_and_window.first, 1, src0->data_type());
ICpuKernel::configure(shape_and_window.second);
}
diff --git a/src/core/cpu/kernels/CpuElementwiseUnaryKernel.cpp b/src/core/cpu/kernels/CpuElementwiseUnaryKernel.cpp
index ff2d080c95..3a96d93c03 100644
--- a/src/core/cpu/kernels/CpuElementwiseUnaryKernel.cpp
+++ b/src/core/cpu/kernels/CpuElementwiseUnaryKernel.cpp
@@ -120,7 +120,7 @@ void CpuElementwiseUnaryKernel::configure(ElementWiseUnary op, const ITensorInfo
return;
}
- auto shape_and_window = compute_output_shape_and_window(src);
+ auto shape_and_window = compute_output_shape_and_window(src.tensor_shape());
auto_init_if_empty(dst, shape_and_window.first, 1, src.data_type());
ICpuKernel::configure(shape_and_window.second);
}
diff --git a/src/core/helpers/WindowHelpers.h b/src/core/helpers/WindowHelpers.h
index 637e9323ab..dad5da62d3 100644
--- a/src/core/helpers/WindowHelpers.h
+++ b/src/core/helpers/WindowHelpers.h
@@ -184,14 +184,11 @@ inline Window calculate_max_enlarged_window(const ITensorInfo &info, const Steps
*
* @return A pair of the shape and window
*/
-template <typename... Infos>
-std::pair<TensorShape, Window> compute_output_shape_and_window(const Infos &... infos)
+template <typename... Shapes>
+std::pair<TensorShape, Window> compute_output_shape_and_window(const Shapes &... shapes)
{
- const std::pair<TensorShape, ValidRegion> broadcast_pair = ITensorInfo::broadcast_shape_and_valid_region(infos...);
- const TensorShape &out_shape = broadcast_pair.first;
- const ValidRegion &valid_region = broadcast_pair.second;
-
- return std::make_pair(out_shape, calculate_max_window(valid_region));
+ const TensorShape out_shape = TensorShape::broadcast_shape(shapes...);
+ return std::make_pair(out_shape, calculate_max_window(out_shape));
}
#endif /* DOXYGEN_SKIP_THIS */
} // namespace arm_compute
diff --git a/src/runtime/cpu/operators/CpuElementwise.cpp b/src/runtime/cpu/operators/CpuElementwise.cpp
index b5c8dde925..5457825bd5 100644
--- a/src/runtime/cpu/operators/CpuElementwise.cpp
+++ b/src/runtime/cpu/operators/CpuElementwise.cpp
@@ -40,7 +40,7 @@ void CpuElementwiseBase::run(ITensorPack &tensors)
auto src0_info = tensors.get_const_tensor(TensorType::ACL_SRC_0)->info();
auto src1_info = tensors.get_const_tensor(TensorType::ACL_SRC_1)->info();
- auto shape_and_window = compute_output_shape_and_window(*src0_info, *src1_info);
+ auto shape_and_window = compute_output_shape_and_window(src0_info->tensor_shape(), src1_info->tensor_shape());
ICpuOperator::run(tensors, shape_and_window.second);
}
diff --git a/src/runtime/cpu/operators/CpuElementwiseUnary.cpp b/src/runtime/cpu/operators/CpuElementwiseUnary.cpp
index 2140c5cf78..c79e6e9acf 100644
--- a/src/runtime/cpu/operators/CpuElementwiseUnary.cpp
+++ b/src/runtime/cpu/operators/CpuElementwiseUnary.cpp
@@ -52,7 +52,7 @@ void CpuElementwiseUnary::run(ITensorPack &tensors)
}
auto src_info = tensors.get_const_tensor(TensorType::ACL_SRC)->info();
- ICpuOperator::run(tensors, compute_output_shape_and_window(*src_info).second);
+ ICpuOperator::run(tensors, compute_output_shape_and_window(src_info->tensor_shape()).second);
}
} // namespace cpu
} // namespace arm_compute \ No newline at end of file