diff options
Diffstat (limited to 'src/core/cpu')
-rw-r--r-- | src/core/cpu/kernels/CpuAddKernel.cpp | 9 | ||||
-rw-r--r-- | src/core/cpu/kernels/CpuElementwiseKernel.cpp | 6 | ||||
-rw-r--r-- | src/core/cpu/kernels/CpuElementwiseUnaryKernel.cpp | 6 | ||||
-rw-r--r-- | src/core/cpu/kernels/CpuSubKernel.cpp | 9 |
4 files changed, 8 insertions, 22 deletions
diff --git a/src/core/cpu/kernels/CpuAddKernel.cpp b/src/core/cpu/kernels/CpuAddKernel.cpp index 31c7b2af60..fc88a7e22d 100644 --- a/src/core/cpu/kernels/CpuAddKernel.cpp +++ b/src/core/cpu/kernels/CpuAddKernel.cpp @@ -249,9 +249,7 @@ Status validate_arguments(const ITensorInfo &src0, const ITensorInfo &src1, cons std::pair<Status, Window> validate_and_configure_window(const ITensorInfo &src0, const ITensorInfo &src1, ITensorInfo &dst) { - const std::pair<TensorShape, ValidRegion> broadcast_pair = ITensorInfo::broadcast_shape_and_valid_region(src0, src1); - const TensorShape &out_shape = broadcast_pair.first; - const ValidRegion &valid_region = broadcast_pair.second; + const TensorShape &out_shape = TensorShape::broadcast_shape(src0.tensor_shape(), src1.tensor_shape()); // Auto initialize dst if not initialized { @@ -287,12 +285,9 @@ std::pair<Status, Window> validate_and_configure_window(const ITensorInfo &src0, } } - Window win = calculate_max_window(valid_region, Steps()); + Window win = calculate_max_window(out_shape, Steps()); // CpuAddKernel doesn't need padding so update_window_and_padding() can be skipped - Coordinates coord; - coord.set_num_dimensions(dst.num_dimensions()); - dst.set_valid_region(valid_region); return std::make_pair(Status{}, win); } } // namespace diff --git a/src/core/cpu/kernels/CpuElementwiseKernel.cpp b/src/core/cpu/kernels/CpuElementwiseKernel.cpp index ab915b9d72..1ac21acbc0 100644 --- a/src/core/cpu/kernels/CpuElementwiseKernel.cpp +++ b/src/core/cpu/kernels/CpuElementwiseKernel.cpp @@ -182,14 +182,12 @@ void CpuElementwiseKernel::configure_common(const ITensorInfo *input1, const ITe ARM_COMPUTE_ERROR_ON_NULLPTR(input1, input2, output); // Configure kernel window - const std::pair<TensorShape, ValidRegion> broadcast_pair = ITensorInfo::broadcast_shape_and_valid_region(*input1, *input2); - const TensorShape &out_shape = broadcast_pair.first; - const ValidRegion &valid_region = broadcast_pair.second; + const TensorShape &out_shape = TensorShape::broadcast_shape(input1->tensor_shape(), input2->tensor_shape()); // Auto initialize output if not initialized auto_init_if_empty(*output, out_shape, 1, input1->data_type()); - Window win = calculate_max_window(valid_region); + Window win = calculate_max_window(out_shape); ICpuKernel::configure(win); } diff --git a/src/core/cpu/kernels/CpuElementwiseUnaryKernel.cpp b/src/core/cpu/kernels/CpuElementwiseUnaryKernel.cpp index d2681bb060..2b5c11f8e1 100644 --- a/src/core/cpu/kernels/CpuElementwiseUnaryKernel.cpp +++ b/src/core/cpu/kernels/CpuElementwiseUnaryKernel.cpp @@ -113,14 +113,12 @@ void CpuElementwiseUnaryKernel::configure(ElementWiseUnary op, const ITensorInfo ARM_COMPUTE_ERROR_THROW_ON(validate(op, input, output)); // Configure kernel window - const std::pair<TensorShape, ValidRegion> broadcast_pair = ITensorInfo::broadcast_shape_and_valid_region(input); - const TensorShape &out_shape = broadcast_pair.first; - const ValidRegion &valid_region = broadcast_pair.second; + const TensorShape &out_shape = TensorShape::broadcast_shape(input.tensor_shape()); // Auto initialize output if not initialized auto_init_if_empty(output, out_shape, 1, input.data_type()); - Window win = calculate_max_window(valid_region); + Window win = calculate_max_window(out_shape); _op = op; diff --git a/src/core/cpu/kernels/CpuSubKernel.cpp b/src/core/cpu/kernels/CpuSubKernel.cpp index a03dcf2353..d7057bbe2b 100644 --- a/src/core/cpu/kernels/CpuSubKernel.cpp +++ b/src/core/cpu/kernels/CpuSubKernel.cpp @@ -201,9 +201,7 @@ void CpuSubKernel::configure(const ITensorInfo *src0, const ITensorInfo *src1, I ARM_COMPUTE_ERROR_ON_NULLPTR(src0, src1, dst); ARM_COMPUTE_ERROR_THROW_ON(validate_arguments(*src0, *src1, *dst, policy)); - const std::pair<TensorShape, ValidRegion> broadcast_pair = ITensorInfo::broadcast_shape_and_valid_region(*src0, *src1); - const TensorShape &out_shape = broadcast_pair.first; - const ValidRegion &valid_region = broadcast_pair.second; + const TensorShape &out_shape = TensorShape::broadcast_shape(src0->tensor_shape(), src1->tensor_shape()); // Auto initialize dst if not initialized set_shape_if_empty(*dst, out_shape); @@ -211,10 +209,7 @@ void CpuSubKernel::configure(const ITensorInfo *src0, const ITensorInfo *src1, I _policy = policy; // CpuSubKernel doesn't need padding so update_window_and_padding() can be skipped - Coordinates coord; - coord.set_num_dimensions(dst->num_dimensions()); - dst->set_valid_region(valid_region); - Window win = calculate_max_window(valid_region, Steps()); + Window win = calculate_max_window(out_shape, Steps()); ICpuKernel::configure(win); } |