diff options
author | Gian Marco <gianmarco.iodice@arm.com> | 2018-01-12 10:21:40 +0000 |
---|---|---|
committer | Anthony Barbier <anthony.barbier@arm.com> | 2018-11-02 16:44:21 +0000 |
commit | 36a0a4608bf413fc1fd65eb335bfb736ef602149 (patch) | |
tree | 2ff0e35dc9e16fedd601b1f24bdc13d25d075b90 /examples/graph_googlenet.cpp | |
parent | 46edf63bd630f5e3f3eb31b7d4602caa317da075 (diff) | |
download | armcl-36a0a4608bf413fc1fd65eb335bfb736ef602149.tar.gz armcl-36a0a4608bf413fc1fd65eb335bfb736ef602149.tar.bz2 armcl-36a0a4608bf413fc1fd65eb335bfb736ef602149.zip |
COMPMID-748 - Integrating optimized SGEMM for bifrost
This patch introduces a new GEMM capable to improve the mac utilisation
of 10% compared to the GEMM without reshape. However this implementation
is not faster in all cases as we need to take into account the time for
reshaping the matrices. For this reason an heuristic solution to select
the optimal GEMM to use has been added to the function. More information
about the heuristic implementation can be found at COMPMID-852.
With this new patch, GoogleNet, MobileNet, VGG16 and SqueezeNet can
improved the performance of 1.5x.
More information about the performance uplift can be found here:
https://confluence.arm.com/display/MLENG/GEMM+FP32+performance%3A+ACL+18.02
Change-Id: I024563c06b9aed02a211a974e452bae5c233b04c
Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/117140
Reviewed-by: Pablo Tello <pablo.tello@arm.com>
Tested-by: Jenkins <bsgcomp@arm.com>
Reviewed-by: Anthony Barbier <anthony.barbier@arm.com>
Diffstat (limited to 'examples/graph_googlenet.cpp')
-rw-r--r-- | examples/graph_googlenet.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/examples/graph_googlenet.cpp b/examples/graph_googlenet.cpp index 1e9601b49..b2e2f1bf8 100644 --- a/examples/graph_googlenet.cpp +++ b/examples/graph_googlenet.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, 2018 ARM Limited. + * Copyright (c) 2017-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -55,7 +55,7 @@ public: // Set target. 0 (NEON), 1 (OpenCL). By default it is NEON TargetHint target_hint = set_target_hint(argc > 1 ? std::strtol(argv[1], nullptr, 10) : 0); - ConvolutionMethodHint convolution_hint = target_hint == TargetHint::NEON ? ConvolutionMethodHint::GEMM : ConvolutionMethodHint::DIRECT; + ConvolutionMethodHint convolution_hint = ConvolutionMethodHint::GEMM; // Parse arguments if(argc < 2) |