aboutsummaryrefslogtreecommitdiff
path: root/src/runtime/cpu/operators/CpuWinogradConv2d.h
diff options
context:
space:
mode:
authorGeorgios Pinitas <georgios.pinitas@arm.com>2021-08-20 17:26:45 +0100
committerSiCong Li <sicong.li@arm.com>2021-08-24 09:00:23 +0000
commit87a74effff65f6fa1b0e565818e02c3b414ae1cf (patch)
tree0c5d63bbbcc285232959a5a4134f282a980ab4bf /src/runtime/cpu/operators/CpuWinogradConv2d.h
parent511771fbe0a74e6d9dfd37ba9b4926a8315ec7aa (diff)
downloadComputeLibrary-87a74effff65f6fa1b0e565818e02c3b414ae1cf.tar.gz
Re-use auxiliary memory withing CpuWinogradConv2d operators
Input/Output transformation operations are independent and done in different time-steps of the algorithm, this memory can be re-used between this transformation stages. Moreover, reduce the allocation when extracting workspace sizes for Winograd trasformations. There is a mix return of sizes in bytes and elements, thus ensure the correct is in place. storage_size() member functions return elements while working_space() function bytes. Resolves: COMPMID-4781 Signed-off-by: Georgios Pinitas <georgios.pinitas@arm.com> Change-Id: I705445ba7ca818cead48369db3cacd49684c7192 Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/6145 Tested-by: Arm Jenkins <bsgcomp@arm.com> Comments-Addressed: Arm Jenkins <bsgcomp@arm.com> Reviewed-by: Michele Di Giorgio <michele.digiorgio@arm.com>
Diffstat (limited to 'src/runtime/cpu/operators/CpuWinogradConv2d.h')
-rw-r--r--src/runtime/cpu/operators/CpuWinogradConv2d.h27
1 files changed, 13 insertions, 14 deletions
diff --git a/src/runtime/cpu/operators/CpuWinogradConv2d.h b/src/runtime/cpu/operators/CpuWinogradConv2d.h
index ae705ac86b..b5b9c3f2e3 100644
--- a/src/runtime/cpu/operators/CpuWinogradConv2d.h
+++ b/src/runtime/cpu/operators/CpuWinogradConv2d.h
@@ -93,20 +93,19 @@ public:
private:
enum AuxTensorIdx
{
- GemmWorkspace = 0,
- Pretranspose,
- InterleavedLHS,
- TransposedRHS,
- TempResult,
- PermutedInput,
- InputTransformed,
- InputWorkspace,
- PermutedOutput,
- PermutedWeights,
- WeightsTransformed,
- OutputTransformed,
- OutputWorkspace,
- Count
+ GemmWorkspace = 0,
+ Pretranspose = 1,
+ InterleavedLHS = 2,
+ TransposedRHS = 3,
+ TempResult = 4,
+ TransformedInput = 5,
+ TransformedOutput = 6,
+ WorkspaceIO = 7,
+ TransformedWeights = 8,
+ PermutedWeights = 9,
+ PermutedInput = TransformedOutput,
+ PermutedOutput = TransformedInput,
+ Count = 10
};
std::unique_ptr<CpuGemm> _gemm_function;