diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/core/cpu/kernels/CpuElementwiseKernel.cpp | 2 | ||||
-rw-r--r-- | src/core/cpu/kernels/CpuElementwiseUnaryKernel.cpp | 2 | ||||
-rw-r--r-- | src/core/helpers/WindowHelpers.h | 11 | ||||
-rw-r--r-- | src/runtime/cpu/operators/CpuElementwise.cpp | 2 | ||||
-rw-r--r-- | src/runtime/cpu/operators/CpuElementwiseUnary.cpp | 2 |
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 |