diff options
author | Pablo Tello <pablo.tello@arm.com> | 2019-12-19 15:27:34 +0000 |
---|---|---|
committer | Georgios Pinitas <georgios.pinitas@arm.com> | 2019-12-19 16:27:36 +0000 |
commit | 62bdd8c4d605d75214ac3ca674cd647911ea9bbc (patch) | |
tree | 386ca25b7e20e52f45e8d72bbf5fa07c67ebb4f0 /src/core | |
parent | 14d9d986c63eb8f07acec2f075383f9f4843ae1c (diff) | |
download | ComputeLibrary-62bdd8c4d605d75214ac3ca674cd647911ea9bbc.tar.gz |
COMPMID-2819: Retain configuration step data layout to avoid side-effects.
Configuring functions serially can lead to side-effects in tensor attributes.
One of them is the data layout changing in case functions share same IO tensors.
Retain DataLayout used during configuration.
Change-Id: Ic8594300dc428282f4f9b9196f0d64842b6c1868
Signed-off-by: Pablo Tello <pablo.tello@arm.com>
Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/c/VisualCompute/ComputeLibrary/+/217277
Tested-by: bsgcomp <bsgcomp@arm.com>
Reviewed-by: Michalis Spyrou <michalis.spyrou@arm.com>
Reviewed-by: Gian Marco Iodice <gianmarco.iodice@arm.com>
Comments-Addressed: bsgcomp <bsgcomp@arm.com>
Reviewed-on: https://review.mlplatform.org/c/2505
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Diffstat (limited to 'src/core')
-rw-r--r-- | src/core/NEON/kernels/NESpaceToDepthLayerKernel.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/core/NEON/kernels/NESpaceToDepthLayerKernel.cpp b/src/core/NEON/kernels/NESpaceToDepthLayerKernel.cpp index b2ce63e549..bc27a3c76a 100644 --- a/src/core/NEON/kernels/NESpaceToDepthLayerKernel.cpp +++ b/src/core/NEON/kernels/NESpaceToDepthLayerKernel.cpp @@ -67,7 +67,7 @@ Status validate_arguments(const ITensorInfo *input, const ITensorInfo *output, i } // namespace NESpaceToDepthLayerKernel::NESpaceToDepthLayerKernel() - : _input(nullptr), _output(nullptr), _block_shape() + : _input(nullptr), _output(nullptr), _block_shape(),_data_layout(DataLayout::UNKNOWN) { } @@ -83,6 +83,7 @@ void NESpaceToDepthLayerKernel::configure(const ITensor *input, ITensor *output, _input = input; _block_shape = block_shape; _output = output; + _data_layout = input->info()->data_layout(); // Configure kernel window Window win = calculate_max_window(*output->info(), Steps()); @@ -101,8 +102,7 @@ void NESpaceToDepthLayerKernel::run(const Window &window, const ThreadInfo &info ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL(this); ARM_COMPUTE_ERROR_ON_INVALID_SUBWINDOW(ICPPKernel::window(), window); - const DataLayout data_layout = _input->info()->data_layout(); - const int channel_idx = get_data_layout_dimension_index(data_layout, DataLayoutDimension::CHANNEL); + const int channel_idx = get_data_layout_dimension_index(_data_layout, DataLayoutDimension::CHANNEL); const int element_size = _input->info()->element_size(); const size_t channel_size = _input->info()->dimension(channel_idx); |