diff options
author | Jakub Sujak <jakub.sujak@arm.com> | 2023-10-05 10:20:59 +0100 |
---|---|---|
committer | Jakub Sujak <jakub.sujak@arm.com> | 2023-10-05 20:38:57 +0000 |
commit | a23b4686a091a7960a4b336d0fe53f15db4ae538 (patch) | |
tree | 1ad99168638177ccbf4f7c991ac539b5dd270eca /src/cpu | |
parent | 3831111db26d791cade87fd2d7fe2663e2ceb4a6 (diff) | |
download | ComputeLibrary-a23b4686a091a7960a4b336d0fe53f15db4ae538.tar.gz |
Optimize CLTranspose operator
* Transpose higher dimensional tensors (>2D) by collapsing higher
dimensions into the third dimension thus avoiding multiple dispatches
of the CL kernel
* Maximize tile size without register spilling
Resolves: COMPMID-6448
Change-Id: Iac094b8c428bdf319d9c28a8334cb55d58e2d14b
Signed-off-by: Jakub Sujak <jakub.sujak@arm.com>
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/10443
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: Viet-Hoa Do <viet-hoa.do@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
Benchmark: Arm Jenkins <bsgcomp@arm.com>
Diffstat (limited to 'src/cpu')
-rw-r--r-- | src/cpu/kernels/CpuTransposeKernel.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/cpu/kernels/CpuTransposeKernel.cpp b/src/cpu/kernels/CpuTransposeKernel.cpp index 615bc6ce1e..0f762ba041 100644 --- a/src/cpu/kernels/CpuTransposeKernel.cpp +++ b/src/cpu/kernels/CpuTransposeKernel.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021 Arm Limited. + * Copyright (c) 2021, 2023 Arm Limited. * * SPDX-License-Identifier: MIT * @@ -737,6 +737,9 @@ void CpuTransposeKernel::configure(const ITensorInfo *src, ITensorInfo *dst) const TensorShape dst_shape = misc::shape_calculator::compute_transposed_shape(*src); auto_init_if_empty(*dst, src->clone()->set_tensor_shape(dst_shape)); + // Explicitly set the tensor shape to preserve dimensions + dst->set_tensor_shape(dst_shape); + // Perform validation step ARM_COMPUTE_ERROR_THROW_ON(validate(src, dst)); |