diff options
author | Anthony Barbier <anthony.barbier@arm.com> | 2018-07-03 16:22:02 +0100 |
---|---|---|
committer | Anthony Barbier <anthony.barbier@arm.com> | 2018-11-02 16:54:10 +0000 |
commit | 5f707736413aeac77818c42838296966f8dc6761 (patch) | |
tree | b829ed3243ea5f3085f288836132416c78bc2e72 /src/core/NEON/kernels/arm_gemm/profiler.hpp | |
parent | 7485d5a62685cb745ab50e970adb722cb71557ac (diff) | |
download | ComputeLibrary-5f707736413aeac77818c42838296966f8dc6761.tar.gz |
COMPMID-1369: Revert accidental formatting of RSH's repo
Pulled latest fixes from David's repo:
commit f43ebe932c84083332b0b1a0348241b69dda63a7
Author: David Mansell <David.Mansell@arm.com>
Date: Tue Jul 3 18:09:01 2018 +0100
Whitespace tidying, fixed comment in gemv_batched imported from ACL.
Change-Id: Ie37a623f44e90d88072236cb853ac55ac82d5f51
Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/138530
Tested-by: Jenkins <bsgcomp@arm.com>
Reviewed-by: Georgios Pinitas <georgios.pinitas@arm.com>
Reviewed-by: Gian Marco Iodice <gianmarco.iodice@arm.com>
Reviewed-by: David Mansell <david.mansell@arm.com>
Reviewed-by: Anthony Barbier <anthony.barbier@arm.com>
Diffstat (limited to 'src/core/NEON/kernels/arm_gemm/profiler.hpp')
-rw-r--r-- | src/core/NEON/kernels/arm_gemm/profiler.hpp | 91 |
1 files changed, 38 insertions, 53 deletions
diff --git a/src/core/NEON/kernels/arm_gemm/profiler.hpp b/src/core/NEON/kernels/arm_gemm/profiler.hpp index ada0c95e26..1b944c4ccd 100644 --- a/src/core/NEON/kernels/arm_gemm/profiler.hpp +++ b/src/core/NEON/kernels/arm_gemm/profiler.hpp @@ -31,75 +31,65 @@ #include <mutex> #endif -namespace arm_gemm -{ +namespace arm_gemm { + #ifndef NO_MULTI_THREADING extern std::mutex report_mutex; #endif -class profiler -{ +class profiler { private: - static const int maxevents = 100000; - unsigned long times[maxevents] = {}; - unsigned long units[maxevents] = {}; - int events[maxevents] = {}; - int currentevent = 0; - int countfd = 0; - - class ScopedProfilerClass - { + static const int maxevents = 100000; + unsigned long times[maxevents] = { }; + unsigned long units[maxevents] = { }; + int events[maxevents] = { }; + int currentevent=0; + int countfd=0; + + class ScopedProfilerClass { private: profiler &_parent; - bool legal = false; + bool legal=false; public: - ScopedProfilerClass(profiler &prof, int i, unsigned long u) - : _parent(prof) - { - if(prof.currentevent == maxevents) + ScopedProfilerClass(profiler &prof, int i, unsigned long u) : _parent(prof) { + if (prof.currentevent==maxevents) return; - prof.events[prof.currentevent] = i; - prof.units[prof.currentevent] = u; - legal = true; + prof.events[prof.currentevent]=i; + prof.units[prof.currentevent]=u; + legal=true; start_counter(prof.countfd); } - ~ScopedProfilerClass() - { - if(!legal) - return; + ~ScopedProfilerClass() { + if (!legal) return; - long long cycs = stop_counter(_parent.countfd); + long long cycs = stop_counter(_parent.countfd); _parent.times[_parent.currentevent++] = cycs; } }; public: - profiler() - { - countfd = open_cycle_counter(); + profiler() { + countfd=open_cycle_counter(); } - ~profiler() - { + ~profiler() { close(countfd); - int tots[5]; + int tots[5]; unsigned long counts[5]; unsigned long tunits[5]; - const char *descs[] = { "Prepare A", "Prepare B", "Kernel", "Merge" }; + const char * descs[] = { "Prepare A", "Prepare B", "Kernel", "Merge" }; - for(int i = 1; i < 5; i++) - { - tots[i] = 0; + for (int i=1; i<5; i++) { + tots[i] = 0; counts[i] = 0; tunits[i] = 0; } - for(int i = 0; i < currentevent; i++) - { - // printf("%10s: %ld\n", descs[events[i]-1], times[i]); + for (int i=0; i<currentevent; i++) { +// printf("%10s: %ld\n", descs[events[i]-1], times[i]); tots[events[i]]++; counts[events[i]] += times[i]; tunits[events[i]] += units[i]; @@ -113,31 +103,26 @@ public: #endif printf("%20s %9s %9s %9s %12s %9s\n", "", "Events", "Total", "Average", "Bytes/MACs", "Per cycle"); - for(int i = 1; i < 5; i++) - { - printf("%20s: %9d %9ld %9ld %12lu %9.2f\n", descs[i - 1], tots[i], counts[i], counts[i] / tots[i], tunits[i], (float)tunits[i] / counts[i]); + for (int i=1; i<5; i++) { + printf("%20s: %9d %9ld %9ld %12lu %9.2f\n",descs[i-1],tots[i],counts[i],counts[i]/tots[i],tunits[i],(float)tunits[i]/counts[i]); } } template <typename T> - void operator()(int i, unsigned long u, T func) - { - if(currentevent == maxevents) - { + void operator() (int i, unsigned long u, T func) { + if (currentevent==maxevents) { func(); - } - else - { + } else { events[currentevent] = i; - units[currentevent] = u; + units[currentevent] = u; start_counter(countfd); func(); - long long cycs = stop_counter(countfd); + long long cycs = stop_counter(countfd); times[currentevent++] = cycs; } } - ScopedProfilerClass ScopedProfiler(int i, unsigned long u) - { + + ScopedProfilerClass ScopedProfiler(int i, unsigned long u) { return ScopedProfilerClass(*this, i, u); } }; |