diff options
author | Michael Tyler <michael.tyler@arm.com> | 2024-06-25 14:09:37 +0100 |
---|---|---|
committer | Michael Tyler <michael.tyler@arm.com> | 2024-06-26 15:50:40 +0000 |
commit | e6836523ed6672ee1d622f240038a1173d57923c (patch) | |
tree | e4158dfdc0884cd304f83907a5f63b65450512fb /src/cpu/operators/CpuGemm.cpp | |
parent | 5d6fff041ade7eb44af0945867212f3979be3d3e (diff) | |
download | ComputeLibrary-e6836523ed6672ee1d622f240038a1173d57923c.tar.gz |
Optimize memory management of CPU operators
Resolves COMPMID-7172
Change-Id: I0acac5e4cb24056a88b4356d9239b33721d65d13
Signed-off-by: Michael Tyler <michael.tyler@arm.com>
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/11762
Benchmark: Arm Jenkins <bsgcomp@arm.com>
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: Suhail M <MohammedSuhail.Munshi@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
Diffstat (limited to 'src/cpu/operators/CpuGemm.cpp')
-rw-r--r-- | src/cpu/operators/CpuGemm.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/cpu/operators/CpuGemm.cpp b/src/cpu/operators/CpuGemm.cpp index 905e86c185..c489b256b8 100644 --- a/src/cpu/operators/CpuGemm.cpp +++ b/src/cpu/operators/CpuGemm.cpp @@ -174,8 +174,8 @@ void CpuGemm::configure(const ITensorInfo *a, // Configure rhs transpose1xw kernel _transpose1xW_b_kernel = std::make_unique<cpu::kernels::CpuGemmTranspose1xWKernel>(); _transpose1xW_b_kernel->configure(b_to_use, &_tmp_b); - _aux_mem[Transposed1xWRHS] = - MemoryInfo(offset_int_vec(Transposed1xWRHS), MemoryLifetime::Persistent, _tmp_b.total_size()); + const auto lifetime = _reshape_b_only_on_first_run ? MemoryLifetime::Persistent : MemoryLifetime::Temporary; + _aux_mem[Transposed1xWRHS] = MemoryInfo(offset_int_vec(Transposed1xWRHS), lifetime, _tmp_b.total_size()); // Use a and b here instead of _tmp_a and _tmp_b because CpuGemmMatrixMultiplyKernel requires the original m,n,k in case of interleaved a and transposed1xw b const int m = a->dimension(1); |