From 8a14b2ca62c43a2691066ce374949c2501ae8315 Mon Sep 17 00:00:00 2001 From: Georgios Pinitas Date: Fri, 4 Sep 2020 20:20:56 +0100 Subject: COMPMID-3748: Compiler issue with Bfloat16 on gcc8 Treat bf16 memory on memset as raw memory by casting to void*. This hides the class-memaccess warning and is safe for the current class layout of arm_compute::bfloat16 Signed-off-by: Georgios Pinitas Change-Id: I5e242827d3737b4491d29abe7570eefee5b6edc1 Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/3928 Reviewed-by: Michele Di Giorgio Comments-Addressed: Arm Jenkins Tested-by: Arm Jenkins --- src/core/CL/kernels/CLDepthToSpaceLayerKernel.cpp | 2 +- src/core/CL/kernels/CLSpaceToDepthLayerKernel.cpp | 2 +- src/core/NEON/kernels/NEDepthToSpaceLayerKernel.cpp | 4 ++-- src/core/NEON/kernels/NEIm2ColKernel.cpp | 6 +++--- src/graph/nodes/DepthToSpaceLayerNode.cpp | 2 +- 5 files changed, 8 insertions(+), 8 deletions(-) (limited to 'src') diff --git a/src/core/CL/kernels/CLDepthToSpaceLayerKernel.cpp b/src/core/CL/kernels/CLDepthToSpaceLayerKernel.cpp index b16c961547..e6f909e884 100644 --- a/src/core/CL/kernels/CLDepthToSpaceLayerKernel.cpp +++ b/src/core/CL/kernels/CLDepthToSpaceLayerKernel.cpp @@ -74,7 +74,7 @@ void CLDepthToSpaceLayerKernel::configure(const CLCompileContext &compile_contex { ARM_COMPUTE_ERROR_ON_NULLPTR(input, output); - TensorShape output_shape = compute_depth_to_space_shape(input->info(), block_shape); + TensorShape output_shape = compute_depth_to_space_shape(input->info()->tensor_shape(), input->info()->data_layout(), block_shape); auto_init_if_empty(*output->info(), output_shape, 1, input->info()->data_type()); ARM_COMPUTE_ERROR_THROW_ON(validate_arguments(input->info(), output->info(), block_shape)); diff --git a/src/core/CL/kernels/CLSpaceToDepthLayerKernel.cpp b/src/core/CL/kernels/CLSpaceToDepthLayerKernel.cpp index 877d42681f..4b6c1be8c2 100644 --- a/src/core/CL/kernels/CLSpaceToDepthLayerKernel.cpp +++ b/src/core/CL/kernels/CLSpaceToDepthLayerKernel.cpp @@ -75,7 +75,7 @@ void CLSpaceToDepthLayerKernel::configure(const CLCompileContext &compile_contex { ARM_COMPUTE_ERROR_ON_NULLPTR(input, output); - TensorShape output_shape = compute_depth_to_space_shape(input->info(), block_shape); + TensorShape output_shape = compute_space_to_depth_shape(input->info(), block_shape); auto_init_if_empty(*output->info(), output_shape, 1, input->info()->data_type()); ARM_COMPUTE_ERROR_THROW_ON(validate_arguments(input->info(), output->info(), block_shape)); diff --git a/src/core/NEON/kernels/NEDepthToSpaceLayerKernel.cpp b/src/core/NEON/kernels/NEDepthToSpaceLayerKernel.cpp index 618a1baf07..d012cbfded 100644 --- a/src/core/NEON/kernels/NEDepthToSpaceLayerKernel.cpp +++ b/src/core/NEON/kernels/NEDepthToSpaceLayerKernel.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019 Arm Limited. + * Copyright (c) 2019-2020 Arm Limited. * * SPDX-License-Identifier: MIT * @@ -71,7 +71,7 @@ NEDepthToSpaceLayerKernel::NEDepthToSpaceLayerKernel() void NEDepthToSpaceLayerKernel::configure(const ITensor *input, ITensor *output, int32_t block_shape) { ARM_COMPUTE_ERROR_ON_NULLPTR(input, output); - TensorShape output_shape = compute_depth_to_space_shape(input->info(), block_shape); + TensorShape output_shape = compute_depth_to_space_shape(input->info()->tensor_shape(), input->info()->data_layout(), block_shape); // Output auto inizialitation if not yet initialized auto_init_if_empty(*output->info(), input->info()->clone()->set_tensor_shape(output_shape)); diff --git a/src/core/NEON/kernels/NEIm2ColKernel.cpp b/src/core/NEON/kernels/NEIm2ColKernel.cpp index 1a2b95e8d6..6eae0541aa 100644 --- a/src/core/NEON/kernels/NEIm2ColKernel.cpp +++ b/src/core/NEON/kernels/NEIm2ColKernel.cpp @@ -161,7 +161,7 @@ inline void linearize_volume_nchw(const uint8_t *const in_ptr, if((y < 0 || y >= input_h) && has_pads) { // All the values will be the offset (will be zeros when not quantized) - memset(out_ptr, pad_value, kernel_width * sizeof(T)); + memset(static_cast(out_ptr), pad_value, kernel_width * sizeof(T)); out_ptr += kernel_width; } else @@ -224,7 +224,7 @@ inline void linearize_volume_nhwc(const uint8_t *const in_ptr, { if(y < 0 || y >= input_h) { - memset(out_ptr, pad_value, pad_quant * element_size); + memset(static_cast(out_ptr), pad_value, pad_quant * element_size); out_ptr += pad_quant; } else if(dilation_x > 1 || start_x < 0 || end_x >= input_w || input_stride_y != input_c * element_size) @@ -233,7 +233,7 @@ inline void linearize_volume_nhwc(const uint8_t *const in_ptr, { if(x < 0 || x >= input_w) { - memset(out_ptr, pad_value, input_c * element_size); + memset(static_cast(out_ptr), pad_value, input_c * element_size); out_ptr += input_c; } else diff --git a/src/graph/nodes/DepthToSpaceLayerNode.cpp b/src/graph/nodes/DepthToSpaceLayerNode.cpp index 785e850533..b70ac56a07 100644 --- a/src/graph/nodes/DepthToSpaceLayerNode.cpp +++ b/src/graph/nodes/DepthToSpaceLayerNode.cpp @@ -53,7 +53,7 @@ TensorDescriptor DepthToSpaceLayerNode::compute_output_descriptor(const TensorDe // Set descriptor shape TensorDescriptor output_descriptor = input_descriptor; - output_descriptor.shape = compute_depth_to_space_output_shape(input_shape, data_layout, block_shape); + output_descriptor.shape = misc::shape_calculator::compute_depth_to_space_shape(input_shape, data_layout, block_shape); return output_descriptor; } -- cgit v1.2.1