aboutsummaryrefslogtreecommitdiff
path: root/src/profiling
AgeCommit message (Collapse)Author
2020-04-02IVGCVSW-4455 Add an Activate and Deactivate control packet to the protocolKeith Davis
* Add Activate/Deactivate command handlers * Add IReportStructure, INotifyBackends single function interfaces * Add overrided mechanism to report structure in Runtime.cpp * Add overrided mechanism to notify backends in ProfilingService.cpp * Add optional IReportStructure argument to ProfilingService constructor for use in ActivateTimelineReportingCommandHandler * Refactoring and tidying up indentation * Removal of unused code in ProfilingUtils.cpp and ProfilingService.cpp * Added GatordMock end to end test * Fixed an issue with SendCounterPacket sending duplicate packets * Fixed an issue with DirectoryCaptureCommandHandler handling of Optional Signed-off-by: Keith Davis <keith.davis@arm.com> Signed-off-by: Finn Williams <Finn.Williams@arm.com> Change-Id: I5ef1b74171459bfc649861dedf99921d22c9e63f
2020-03-26IVGCVSW-4526 Fix UnitTest errors when running on raspberry piJan Eilers
* The std::thread::id is included in some timeline packages of the profiler. But the size of thread::id is platform dependent. That's why some tests expected a wrong package size Signed-off-by: Jan Eilers <jan.eilers@arm.com> Change-Id: I4794ebbdda2d75ed5be7112f6a3bf2e5f14f221b
2020-03-24IVGCVSW-4596 Fix BufferManager's packet orderFinn Williams
Signed-off-by: Finn Williams <Finn.Williams@arm.com> Change-Id: I35e0a891cd69f2c130b8886460089c441d8e666d
2020-03-20IVGCVSW-4589 Add call to SendWellKnownLabelsAndEventClassesFinn Williams
Signed-off-by: Finn Williams <Finn.Williams@arm.com> Change-Id: Ia42f962ba53d7684f5ad75f5b1b91e2d9f3a2f9c
2020-03-20IVGCVSW-4587 ArmNN failing to build in the Internal OOBSadik Armagan
* ProfilingService reference field not required in TimelineUtilityMethods Signed-off-by: Sadik Armagan <sadik.armagan@arm.com> Change-Id: I83ca13e577d35fb9497d7df1535607ec66c201bf
2020-03-20IVGCVSW-4582 Undefined reference to GetProfilingService causes failure in ↵Sadik Armagan
the Backends CI job * Enable the GetProfilingService() function to BackendProfilingTests and ProfilingTestUtils Signed-off-by: Sadik Armagan <sadik.armagan@arm.com> Change-Id: I32e3625db0f465883f2ec27fb7c2fad4e91b6306
2020-03-19MLECO-755: ArmNN: Add file format external profiling optionIsabella Gottardi
* Added new m_FileFormat variable in ExternalProfilingOptions * Added new profiling option to ExecuteNetwork * Added check for file format in ProfilingConnectionFactory * Added test in profiling tests Change-Id: I0e9cb8ecac919dc0ed03dcf77324a65621f07ae7 Signed-off-by: Isabella Gottardi <isabella.gottardi@arm.com>
2020-03-18IVGCVSW-4463 Change ProfilingService to a member of runtime from a singletonSadik Armagan
Signed-off-by: Sadik Armagan <sadik.armagan@arm.com> Change-Id: I345c39a10a4693a500aa1687d9a5cee76da791c3
2020-03-11IVGCVSW-4542 Refactor TimelineDecoder parsing of TimelinePacketsKeith Davis
* Added test to add multiple SwTraceMessages to the buffer * Updated TimelineCaptureCommandHandler to iterate until there are no more read functions in the packet * Further commenting Change-Id: I41d5acf4f7288ce5a51ffd10a5eea335ac3026ec Signed-off-by: Keith Davis <keith.davis@arm.com>
2020-03-10IVGCVSW-4482 Remove boost::ignore_unusedJan Eilers
!referencetests:229377 Signed-off-by: Jan Eilers <jan.eilers@arm.com> Change-Id: Ia9b360b4a057fe7bbce5b268092627c09a0dba82
2020-03-09IVGCVSW-4541 Modify Timeline Packet constructionKeith Davis
* Changed TimelinePacket encoding so that there is only one header for multiple timeline swtrace messages * Refactored function names to have more suitable description * Refactored CodeStyle to coincide with ArmNN coding standards * Refactored profiling test names to be descriptive * Refactored ErrorCode name to TimelineStatus * Updated existing unit tests Signed-off-by: Keith Davis <keith.davis@arm.com> Change-Id: I83bd4bb9e7393617bca97eba96a6e1388916e5b0
2020-03-04IVGCVSW-4163 Enhance the error handling in the ReadPacket functionSadik Armagan
* Introduced armnn::SocketConnectionException with fields error no and socket info. Signed-off-by: Sadik Armagan <sadik.armagan@arm.com> Change-Id: Ideb85b00771864e332226635aeff3096fbea8e5f
2020-02-28IVGCVSW-4454 Remove the CounterSet and Device fields from CategorySadik Armagan
Signed-off-by: Sadik Armagan <sadik.armagan@arm.com> Change-Id: I721f59cd1f6d068e02dabd62c42871a43be9d934
2020-02-17IVGCVSW-4320 Implement the bulk reporting of counter values from backendsSadik Armagan
* Implemented unit test for ReportCounters function in BackendProfiling Signed-off-by: Jim Flynn <jim.flynn@arm.com> Signed-off-by: Sadik Armagan <sadik.armagan@arm.com> Change-Id: Iec342a96060c8ef6090e6cc67bda8a7a3e890c50
2020-02-16IVGCVSW-4320 Implement ReportCounters in BackendProfilingJim Flynn
Change-Id: Idd545079f6331bb4241709fa1534635f3fdf610b Signed-off-by: Jim Flynn <jim.flynn@arm.com>
2020-02-14IVGCVSW-4338 Implement the Activation of Counters in backendsFinn Williams
Signed-off-by: Finn Williams <Finn.Williams@arm.com> Change-Id: I4a2465f06e046f78242ff0a246c651638b205498
2020-02-13IVGCVSW-4400 Backend Counter Registry FunctionalityDavid Monahan
* Adding BackendProfilingContext to the MockBackend * Made IBackendProfilingContext pure Virtual * Added UnitTest using MockBackend for testing Backend Counter Registration * Moved Registry of backend counters from Initialize() to AddBackendProfilingContext() * Added m_MaxGlobalCounterId to ProfilingService * Removed automatic registration of MockBack in BackendRegistry() Signed-off-by: David Monahan <david.monahan@arm.com> Change-Id: Ie1c6c31e56d1ac7079d6116ecad041961014aedc
2020-02-10IVGCVSW-4424 Set minimum timeout for SendThread in WaitingForAck stateFinn Williams
Signed-off-by: Finn Williams <Finn.Williams@arm.com> Change-Id: Iee7de5040e355933b7e14a39d44e9d51b30427c8
2020-02-10IVGCVSW-4328 BufferManager running out of buffers crashes applicationSadik Armagan
* Refactored SendCounterPacket classes, separated SendCounterPacket from Send thread * Created ISendThread.hpp, IConsumer, SendThread.hpp and SendThread.cpp * Injected IConsumer to BufferManager to notify SendThread when packet is ready to read Signed-off-by: Sadik Armagan <sadik.armagan@arm.com> Change-Id: I80f0bb8b8401c6bfd1611f7760217c6fe35d7ad8
2020-02-10IVGCVSW-4400 Adding invocation of the back to Profiling Service initialisationDavid Monahan
Signed-off-by: David Monahan <david.monahan@arm.com> Change-Id: I5f3bb4c9cde1cca11b8f6201ab559c2960eb32c0
2020-02-10IVGCVSW-4319 Implement Counter Status QueryingJames Conroy
* Adds implementations for GetCounterStatus and GetActiveCounters. * Adds CheckCounterStatusQuery in ProfilingTests. * Modifies Holder and ProfilingService to open up access to CaptureData for use by BackendProfiling. Signed-off-by: James Conroy <james.conroy@arm.com> Signed-off-by: Colm Donelan <Colm.Donelan@arm.com> Change-Id: Iec47952545c0072a71088b12ca3dc31673fa9c51
2020-02-07IVGCVSW-4317 Implement the Profiling Context InitialisationColm Donelan
* Call CreateBackendProfilingContext on each backend from Runtime passing an instance of the BackendProfiling interface. * Modify the signature of CreateBackendProfilingContext to remove const and return a shared_ptr to BackendProfilingContext * Add concrete BackendProfiling class. * Store BackendProfilingContexts in Profiling service. Signed-off-by: Colm Donelan <Colm.Donelan@arm.com> Change-Id: I975eaa2093ae91fa623835f65f9e5b25eb65117a
2020-02-03IVGCVSW-4393 Register backend countersJim Flynn
Signed-off-by: David Monahan <david.monahan@arm.com> Change-Id: I419ecc2fce4b7e0fcaeb6d1f9cb687c0b660125d Signed-off-by: Jim Flynn <jim.flynn@arm.com>
2020-02-02IVGCVSW-4394 Add CounterIdMap to Profiling ServiceJim Flynn
Change-Id: I416397a7855fe45319b4801252e141b78f0325f0 Signed-off-by: Jim Flynn <jim.flynn@arm.com>
2020-01-30IVGCVSW-4171 Temporarily disable DumpOutgoingValidFileEndToEnd unit testJan Eilers
* Test causes intermittent failures on CI system * Temporarily disabled until fix is found Signed-off-by: Jan Eilers <jan.eilers@arm.com> Change-Id: I689a4688d64040d557c63829a765d2c07c4fac3a
2020-01-30IVGCVSW-4391 Add Global/Backend Counter ID mapDavid Monahan
Signed-off-by: David Monahan <david.monahan@arm.com> Change-Id: I943e02bc2026564e3a19d03e81ba75850d204497
2020-01-28IVGCVSW-4316 Promote ISendTimelinePacket and IProfilingGuidGeneratorColm Donelan
As part of IVGCVSW-4316 we need to expose ISendTimelinePacket and IProfilingGuidGenerator to enable them to be used by backends for profiling. This also required moving ProfilingRelationshipType from ProfilingUtils. Signed-off-by: Colm Donelan <Colm.Donelan@arm.com> Change-Id: I58cc64e32ecfffa5231c9d2028522ed58d0ddf31
2020-01-24Add ARMNN_DLLEXPORT macro to import/export static data symbols on WindowsRob Hughes
Armnn has several static data symbols that are needed by the unit tests. These are now explicitly marked for import when that header is included from the unit test code. See also https://cmake.org/cmake/help/v3.4/prop_tgt/WINDOWS_EXPORT_ALL_SYMBOLS.html. Change-Id: I4e71ba659b6321659a1396125b5a9c271578040f Signed-off-by: Robert Hughes <robert.hughes@arm.com>
2020-01-21Add thin abstraction layer for processes and filesystemRob Hughes
This is used instead of some hardcoded Unix calls and means this code now works on Windows (This is a rework of a previous patch which used boost, now that I have been informed that we are trying to move towards removing boost). Change-Id: Ib0d11055279bbd7b710f086e9890369e3ecbfe9a Signed-off-by: Robert Hughes <robert.hughes@arm.com>
2020-01-21Add thin abstraction layer for network socketsRob Hughes
This makes SocketProfilingConnection and GatordMock work on Windows as well as Linux Change-Id: I4b10c079b653a1c3f61eb20694e5b5f8a6f5fdfb Signed-off-by: Robert Hughes <robert.hughes@arm.com>
2020-01-14IVGCVSW-4229 Fix Intermittent failures in ExternalProfilingFinn Williams
* Added a BufferManager.Reset() method to prevent packets being retained after a test * Fixed a bug causing the send thread to wait needlessly before moving to active state * Refactored SendCoundPacketTests and ProfilingTests test helper classes * Fixed issue where WaitForPacketSent could miss a notification and timeout Signed-off-by: Finn Williams <Finn.Williams@arm.com> Change-Id: I353a652260c2f7dd465baa9e979e22f50f3ca6a7
2020-01-09Fix build error on gcc 7+ for implicit switch statement fallthroughsRob Hughes
Change-Id: I48632a42892d8e9a616255fe106e40161b0ee55f Signed-off-by: Robert Hughes <robert.hughes@arm.com>
2020-01-03IVGCVSW-4246 Clean build of profiling with -Wextra Pt2Derek Lamberti
Change-Id: Iae306546e7c009105712f177943ed76451bbe8e7 Signed-off-by: Derek Lamberti <derek.lamberti@arm.com>
2019-12-31IVGCVSW-4246 Clean build profiling with -WextraDerek Lamberti
Change-Id: Ieab870fa2194075433a0a26abdb13f69e1fbaaae Signed-off-by: Derek Lamberti <derek.lamberti@arm.com>
2019-12-13IVGCVSW-4178 Add code to increment the 3 ArmNN countersKeith Davis
* Increment at Runtime.cpp | BackendRegistry.cpp | LoadedNetwork.cpp * Update unit tests * UID generation is now handled by backends Signed-off-by: Keith Davis <keith.davis@arm.com> Change-Id: Ifa53763409078c14839675206d8b260cdc36a8df
2019-12-09IVGCVSW-4228 Fix SendThreadSendStreamMetadataPacketFinn Williams
Signed-off-by: Finn Williams <Finn.Williams@arm.com> Change-Id: Ib095718bee36434cc9a60e8e472040b12f1b9f20
2019-12-05Replace boost logging with simple loggerDerek Lamberti
!referencetests:214319 * Reduces arm nn binary size ~15% * Also fixed test logging black hole issues Change-Id: Iba27db304d9a8088fa46aeb0b52225d93bb56bc8 Signed-off-by: Derek Lamberti <derek.lamberti@arm.com>
2019-12-04IVGCVSW-4223 Change PeriodicCounterCapture Packet Family to 3Jim Flynn
Change-Id: Ibc166c25d8d5fd09f407c0c697217a57b84d8cdc Signed-off-by: Jim Flynn <jim.flynn@arm.com>
2019-12-04IVGCVSW-4016 Add the Inference timeline trace and unit testsDavid Monahan
Signed-off-by: David Monahan <david.monahan@arm.com> Signed-off-by: Narumol Prangnawarat <narumol.prangnawarat@arm.com> Change-Id: I0cfbc2e1ed8f1eded1841866ebf9f39a066e91af
2019-12-04IVGCVSW-4118 Change the SendCounterPacket send thread to use do whileFinn Williams
Signed-off-by: Finn Williams <Finn.Williams@arm.com> Change-Id: I702fdc941e29ddcb31f54513e0a7dc642f0f4685
2019-12-04IVGCVSW-4221 Fix SendCounterPacket hanging for indefinite timeFinn Williams
Signed-off-by: Finn Williams <Finn.Williams@arm.com> Change-Id: I612f4d0162e7f35296f7d484350a937f6344fcfb
2019-12-03IVGCVSW-4171 Fix intermittent failure on FileOnlyProfilingDecoratorTestsjaneil01
* Added destructor to prevent hanging after raising an error * Enhanced timeouts to prevent test from failing Signed-off-by: janeil01 <jan.eilers@arm.com> Change-Id: Ibf137835040edc51348d70ff67d27ef3fffac15b
2019-12-02IVGCVSW-4015 Add input and output workload to post-optimisation structureNarumol Prangnawarat
Signed-off-by: Narumol Prangnawarat <narumol.prangnawarat@arm.com> Change-Id: Ic9fbe1300cf8c4b8a78bad5934f0b2d18b205090
2019-11-29IVGCVSW-4070 Implement "send post-optimized network structure"Narumol Prangnawarat
* Send post-optimisation network structure if profiling service is enabled * Refactor TimelineUtilityMethods * Fix RecordEvent to link eventGuid with eventClassGuid * Add common types and guid to LabelsAndEventClasses * Add CreateRelationship to TimelineUtilityMethods * Add CreateTypedEntity to TimelineUtilityMethods * Add MarkEntityWithType to TimelineUtilityMethods * Move VerifyTimeline functions to ProfilingTestUtils * Post-optimisation network structure unit tests to Ref, Cl, Neon Signed-off-by: Narumol Prangnawarat <narumol.prangnawarat@arm.com> Change-Id: I0194f2037c236450c912f4c3cb11e46b80c0f512
2019-11-29IVGCVSW-4118 Fix long unit test executionColm Donelan
* Reduced sleep_for timings * Removed duplicate SendStreamMetaDataPacket. * Modified SendCounterPacket::WaitForPacketSent to use wait_for * Modified SendCounterPacket::Send WaitingForAck to use wait_for * Added destructor to StreamRedirector. * Added method SendCounterPacketTests::HasWrittenData * Restructured many tests in ProfilingTests. Signed-off-by: Keith Davis <keith.davis@arm.com> Change-Id: I55c59cac6674ac40a1056a5302a997d5da9e9d91 Signed-off-by: Colm Donelan <Colm.Donelan@arm.com>
2019-11-28Make the profiling GUID test independent from random eventsMatteo Martincigh
* Removed the random generation of strings * Actually generating a million unique strings for the test * Code cleanup Signed-off-by: Matteo Martincigh <matteo.martincigh@arm.com> Change-Id: I4486c06df7e546d717f72d609bd9218d6bb6cc0a
2019-11-28Remove const type qualifiers with no effectMatteo Martincigh
Signed-off-by: Matteo Martincigh <matteo.martincigh@arm.com> Change-Id: I3ddd98864eef41c0548ab907a48b025b9154a5a8
2019-11-21IVGCVSW-4124 Replacing the "sleep_for" loop from FileOnlyProfilingConnectionColm Donelan
* Replacing the "sleep_for" loop in FileOnlyProfilingConnection with a producer consumer conditional mutex. * Reducing the times sleep loop times in FileOnlyProfilingDecoratorTests. Signed-off-by: Colm Donelan <Colm.Donelan@arm.com> Change-Id: Ied2302b508b6e4e6b50809c77e3f19115449d0b6
2019-11-19IVGCVSW-4070 Add CreatedNamedTypeEntity and CreateNamedTypedChildEntityNarumol Prangnawarat
functions with Guid Signed-off-by: Narumol Prangnawarat <narumol.prangnawarat@arm.com> Change-Id: Ide3c3b0a05830af055b3a2c733af4c1c57c0dbaa
2019-11-19IVGCVSW-4068 Add Guid to WorkloadNarumol Prangnawarat
* Add Guid to Workload * Remove circular dependency Signed-off-by: Narumol Prangnawarat <narumol.prangnawarat@arm.com> Signed-off-by: janeil01 <jan.eilers@arm.com> Change-Id: I15342fa7481c6bdc050e057dce2d74bba07fe2dd