aboutsummaryrefslogtreecommitdiff
path: root/src/runtime/GLES_COMPUTE/functions/GCFullyConnectedLayer.cpp
diff options
context:
space:
mode:
authorJoel Liang <joel.liang@arm.com>2017-12-27 13:16:00 +0800
committerAnthony Barbier <anthony.barbier@arm.com>2018-11-02 16:42:33 +0000
commiteb8f71eecbc44e64cd7814f53b27b42c43dd660b (patch)
tree9a101eac3cd0e265c38511f94da24fda4f42e013 /src/runtime/GLES_COMPUTE/functions/GCFullyConnectedLayer.cpp
parentb59eb0b031e1dc73fa0a67ee08b468a135cec835 (diff)
downloadComputeLibrary-eb8f71eecbc44e64cd7814f53b27b42c43dd660b.tar.gz
APPBROWSER-230, APPBROWSER-300: Rename GCScheduler enqueue to dispatch, sync to memory_barrier
Also fix the synchronisation issues between different kernels. Change-Id: Ib59d83ae8d5cc8b0bdf13e6f4958edccdab91ca4 Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/114594 Reviewed-by: Anthony Barbier <anthony.barbier@arm.com> Tested-by: Jenkins <bsgcomp@arm.com>
Diffstat (limited to 'src/runtime/GLES_COMPUTE/functions/GCFullyConnectedLayer.cpp')
-rw-r--r--src/runtime/GLES_COMPUTE/functions/GCFullyConnectedLayer.cpp13
1 files changed, 8 insertions, 5 deletions
diff --git a/src/runtime/GLES_COMPUTE/functions/GCFullyConnectedLayer.cpp b/src/runtime/GLES_COMPUTE/functions/GCFullyConnectedLayer.cpp
index 63cb40e616..041622d255 100644
--- a/src/runtime/GLES_COMPUTE/functions/GCFullyConnectedLayer.cpp
+++ b/src/runtime/GLES_COMPUTE/functions/GCFullyConnectedLayer.cpp
@@ -159,19 +159,22 @@ void GCFullyConnectedLayer::run()
// Linearize input if it comes from a convolutional layer
if(_is_fc_after_conv)
{
- GCScheduler::get().enqueue(_im2col_kernel, false);
+ GCScheduler::get().dispatch(_im2col_kernel, false);
}
- GCScheduler::get().sync();
+ if(!_are_weights_reshaped || _is_fc_after_conv)
+ {
+ GCScheduler::get().memory_barrier();
+ }
// Run matrix multiply
- GCScheduler::get().enqueue(_mm_kernel, !_accumulate_biases);
+ GCScheduler::get().dispatch(_mm_kernel, !_accumulate_biases);
// Accumulate biases if provided
if(_accumulate_biases)
{
- GCScheduler::get().sync();
+ GCScheduler::get().memory_barrier();
- GCScheduler::get().enqueue(_accumulate_biases_kernel);
+ GCScheduler::get().dispatch(_accumulate_biases_kernel);
}
}