From da953f2e17b401ff595ac88008cd5e90440ebf74 Mon Sep 17 00:00:00 2001 From: Georgios Pinitas Date: Tue, 2 Apr 2019 17:27:03 +0100 Subject: COMPMID-2098: Scope handling of memory group resources. Change-Id: Ie945526bd7845301458039edf3129253c1808505 Signed-off-by: Georgios Pinitas Reviewed-on: https://review.mlplatform.org/c/938 Comments-Addressed: Arm Jenkins Reviewed-by: Michele Di Giorgio Tested-by: Arm Jenkins --- src/runtime/GLES_COMPUTE/functions/GCConvolutionLayer.cpp | 4 +--- src/runtime/GLES_COMPUTE/functions/GCFullyConnectedLayer.cpp | 6 ++---- src/runtime/GLES_COMPUTE/functions/GCGEMM.cpp | 6 ++---- src/runtime/GLES_COMPUTE/functions/GCNormalizationLayer.cpp | 4 +--- src/runtime/GLES_COMPUTE/functions/GCSoftmaxLayer.cpp | 6 ++---- 5 files changed, 8 insertions(+), 18 deletions(-) (limited to 'src/runtime/GLES_COMPUTE/functions') diff --git a/src/runtime/GLES_COMPUTE/functions/GCConvolutionLayer.cpp b/src/runtime/GLES_COMPUTE/functions/GCConvolutionLayer.cpp index a35a18a3d4..61c0740937 100644 --- a/src/runtime/GLES_COMPUTE/functions/GCConvolutionLayer.cpp +++ b/src/runtime/GLES_COMPUTE/functions/GCConvolutionLayer.cpp @@ -201,7 +201,7 @@ void GCConvolutionLayer::run() { prepare(); - _memory_group.acquire(); + MemoryGroupResourceScope scope_mg(_memory_group); // Run im2col GCScheduler::get().dispatch(_fill_border); @@ -216,8 +216,6 @@ void GCConvolutionLayer::run() GCScheduler::get().dispatch(_output_col2im_kernel, false); GCScheduler::get().memory_barrier(); - _memory_group.release(); - // Run Activation Layer if(_is_activationlayer_enabled) { diff --git a/src/runtime/GLES_COMPUTE/functions/GCFullyConnectedLayer.cpp b/src/runtime/GLES_COMPUTE/functions/GCFullyConnectedLayer.cpp index 6b8e341b14..a208545a99 100644 --- a/src/runtime/GLES_COMPUTE/functions/GCFullyConnectedLayer.cpp +++ b/src/runtime/GLES_COMPUTE/functions/GCFullyConnectedLayer.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017-2018 ARM Limited. + * Copyright (c) 2017-2019 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -150,7 +150,7 @@ void GCFullyConnectedLayer::run() { prepare(); - _memory_group.acquire(); + MemoryGroupResourceScope scope_mg(_memory_group); // Linearize input if it comes from a convolutional layer if(_is_fc_after_conv) @@ -173,8 +173,6 @@ void GCFullyConnectedLayer::run() GCScheduler::get().dispatch(_accumulate_biases_kernel); } - - _memory_group.release(); } void GCFullyConnectedLayer::prepare() diff --git a/src/runtime/GLES_COMPUTE/functions/GCGEMM.cpp b/src/runtime/GLES_COMPUTE/functions/GCGEMM.cpp index 8ae91ee82c..ddfe590ee1 100644 --- a/src/runtime/GLES_COMPUTE/functions/GCGEMM.cpp +++ b/src/runtime/GLES_COMPUTE/functions/GCGEMM.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017-2018 ARM Limited. + * Copyright (c) 2017-2019 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -162,7 +162,7 @@ void GCGEMM::run() { prepare(); - _memory_group.acquire(); + MemoryGroupResourceScope scope_mg(_memory_group); if(_is_interleaved_transposed) { @@ -187,8 +187,6 @@ void GCGEMM::run() GCScheduler::get().memory_barrier(); GCScheduler::get().dispatch(_ma_kernel); } - - _memory_group.release(); } void GCGEMM::prepare() diff --git a/src/runtime/GLES_COMPUTE/functions/GCNormalizationLayer.cpp b/src/runtime/GLES_COMPUTE/functions/GCNormalizationLayer.cpp index 2569365dce..8f602792a8 100644 --- a/src/runtime/GLES_COMPUTE/functions/GCNormalizationLayer.cpp +++ b/src/runtime/GLES_COMPUTE/functions/GCNormalizationLayer.cpp @@ -56,13 +56,11 @@ void GCNormalizationLayer::configure(const IGCTensor *input, IGCTensor *output, void GCNormalizationLayer::run() { - _memory_group.acquire(); + MemoryGroupResourceScope scope_mg(_memory_group); GCScheduler::get().dispatch(_multiply_kernel, false); GCScheduler::get().memory_barrier(); GCScheduler::get().dispatch(_border_handler, false); GCScheduler::get().memory_barrier(); GCScheduler::get().dispatch(_norm_kernel, true); - - _memory_group.release(); } diff --git a/src/runtime/GLES_COMPUTE/functions/GCSoftmaxLayer.cpp b/src/runtime/GLES_COMPUTE/functions/GCSoftmaxLayer.cpp index dad42cd7e3..0645ae7f8f 100644 --- a/src/runtime/GLES_COMPUTE/functions/GCSoftmaxLayer.cpp +++ b/src/runtime/GLES_COMPUTE/functions/GCSoftmaxLayer.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017-2018 ARM Limited. + * Copyright (c) 2017-2019 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -69,13 +69,11 @@ void GCSoftmaxLayer::configure(const IGCTensor *input, IGCTensor *output, float void GCSoftmaxLayer::run() { - _memory_group.acquire(); + MemoryGroupResourceScope scope_mg(_memory_group); GCScheduler::get().dispatch(_max_kernel, false); GCScheduler::get().memory_barrier(); GCScheduler::get().dispatch(_shift_exp_sum_kernel, false); GCScheduler::get().memory_barrier(); GCScheduler::get().dispatch(_norm_kernel); - - _memory_group.release(); } -- cgit v1.2.1