summaryrefslogtreecommitdiff
path: root/source
AgeCommit message (Collapse)Author
8 daysMLECO-4935: Refactoring user optionsKshitij Sisodia
Refactoring for CMake configuration options to allow target platform to drive their own defaults for certain dependent options. For example, the MPS3 target platform defaults to SSE-300 sub-system while native target doesn't need to worry about sub-system and CMSIS options which it will never use. This allows MPS4 target to default to SSE-315 and set the NPU arch to Arm Ethos-U65 as it should, which otherwise would have had to be explictly specified by the user. A welcome by-product of this is also that the options summary at the end of a successful CMake configuration stage would only include the settings that are actually used by the given target. Change-Id: Ibb7f8233d427cd33f39eeb4c71d88193aa998ebd Signed-off-by: Kshitij Sisodia <kshitij.sisodia@arm.com> Tested-by: mlecosys <mlecosys@arm.com> Reviewed-by: Alex Tawse <alex.tawse@arm.com> Reviewed-by: Conor Kennedy <conor.kennedy@arm.com> Signed-off-by: Kshitij Sisodia <kshitij.sisodia@arm.com>
12 daysMLECO-4825: Adding Arm Corstone-315 supportKshitij Sisodia
This patch adds initial support for MPS4 based Arm Corstone-315 FVPs. The applications will execute on the FVP but with INITSVTOR set to `0x12000000` explicitly. The default value is the 64kiB code region at `0x11000000`. The linker scripts will be changed for the initial boot logic and vector table to be moved to the code region. This patch adds `source/hal/source/platform/mps4` directory. There is considerable overlap with MPS3 platform and this is expected to be the case until the support for MPS4 matures. Refactoring to pull in common bits from these targets will follow. Same goes for the CMake build support added under `scripts/cmake/platforms/mps4`. Change-Id: I981be9e1ec57cfedcf7d340b4f19e5eb40b5cbd3 Signed-off-by: Kshitij Sisodia <kshitij.sisodia@arm.com> Tested-by: mlecosys <mlecosys@arm.com> Reviewed-by: Conor Kennedy <conor.kennedy@arm.com> Reviewed-by: Alex Tawse <alex.tawse@arm.com> Signed-off-by: Kshitij Sisodia <kshitij.sisodia@arm.com>
2024-02-20Removing unused device_mps3.h headerKshitij Sisodia
Stray header file for MPS3 platform left over from refactoring in commit c22e80 has been removed. Change-Id: I197756e7183654fff0b0c97e7647ab72b62d96f9 Signed-off-by: Kshitij Sisodia <kshitij.sisodia@arm.com>
2024-02-06Fix: Remove S/NS aliases of non-existent DMA_0 interfaceLiam Barry
Correction for misprint in AN547 application note which proliferated to AN552. There are only 3 DMA interfaces. Signed-off-by: Liam Barry <liam.barry@arm.com> Change-Id: I53dab9cbc41f80d7a2818ce6c5b8372ecbdfbd1a
2024-01-18Cleanup: Timing adapter definitionsKshitij Sisodia
The NPU timing adapter base addresses had been defined in mutiple places, making it difficult to determine which one is actually being used. This patch cleans up unused definitions from memory-map header files for different targets and the CMake template files. The expectation is for component base addresses to be set by platform specific CMake files that include/wrap the component directories. Change-Id: Ic39794ffbdb872b4b0c900cbcec8e386bb32c4eb Signed-off-by: Kshitij Sisodia <kshitij.sisodia@arm.com>
2023-11-13Modifications to linker scriptsRichard Burton
* Change reference to all ops resolver * Added our own 'all ops resolver' * Move Labels objects out of BRAM for simple_platform * Minor fixes to documentation Signed-off-by: Richard Burton <richard.burton@arm.com> Change-Id: I8b0d66ce83287f2bc027cfc36a1f378c97755481
2023-11-03MLECO-3640 MLECO-3678: Adding support for M85 in GCCRichard Burton
Signed-off-by: Richard Burton <richard.burton@arm.com> Change-Id: I087e23f43b41fa0ef97ec7dcaeba807f6cba17e7
2023-10-04MLECO-4365: Add CI Test for insufficient tensor arena and update common tests.Liam Barry
Previously, execution path following failed tensor allocation was not covered by tests. Minor amendment added to make ~Model virtual. During testing it was noticed that intentional errors simulated in certain common tests would result in misleading output for subsequent tests as the error messages appear in the console output of the next failing test. Documentation and print statements added until a solution is found. Change-Id: Iaf3e0f32ce9e0505921251cd41f73030108d2cb1 Signed-off-by: Liam Barry <liam.barry@arm.com>
2023-08-31MLECO-4072: Minor bug fix23.08-rc1Richard Burton
* Adding call to the new ops resolver in inference runner usecase * Change variable names to match code style Signed-off-by: Richard Burton<richard.burton@arm.com> Change-Id: I0537cc18296294ac9d778434c257ad4f4e479310
2023-08-31MLECO-4072: update MLEK dependencies to 23.08Nina Drozd
* version updates in cmakelists file * update submodules to 23.08 versions * updates to documentation - vela 3.9.0 Change-Id: I5e24d5729ecbd2289b04fcc845fb44f455ab38d5 Signed-off-by: Nina Drozd <nina.drozd@arm.com>
2023-08-29MLECO-4260: Replace raw C++ pointers with smart variantsLiam Barry
Model: Added std::unique_ptr qualifier to Model.cc member and used make_unique when creating interpreter object Removed custom destructor and un-necessary memory cleanup following failed allocation DataStructures: Refactored array 2d to use a std::vector under the hood. This should preserve desired attributes including contiguous memory while removing the need for custom destructor. Original size function renamed to dimSize to avoid confusion with vector.size() Accompanying changes made to preprocessing and ASR tests. AppContext: Replaced use of raw pointers in AppContext.hpp. Previously a std::map including IAttribute pointers required individual deallocation as they were allocated using new. Signed-off-by: Liam Barry <liam.barry@arm.com> Change-Id: I1a34dce5dea6ecf4883a9ada3a20f827eb6e6d6b
2023-07-28MLECO-4246: Bug fix MLEK hardfault when SRAM exceededLiam Barry
GCC builds of inference runner hardfault when tensor allocation fails. Traced to duplicated delete calls on interpreter member variable in app code and ~Model() which has undefined behaviour Signed-off-by: Liam Barry <liam.barry@arm.com> Change-Id: I3872338b4fdc3c25aa26a5cd55991cd575da5a3c
2023-05-30MLECO-4065 MLECO-4066: Updating to 23.05 dependenciesRichard Burton
* Update dependencies to 23.05 versions * Fix for a break caused by changes in TensorFlow Lite Micro * Update release notes Signed-off-by: Richard Burton <richard.burton@arm.com> Change-Id: Id2f60ea574aab982911125bdcb513adb8edc723d
2023-03-21MLECO-3802: [Maintenance] Remove Pillow warning23.02Isabella Gottardi
- Image.Resampling.BILINEAR replace deprecated Image.BILINEAR - Trivial documentation fixes Change-Id: Ia75af2d2bf171085d4a0a2c472f0e3f94dbdc5b9 Signed-off-by: Isabella Gottardi <isabella.gottardi@arm.com>
2023-03-17MLECO-3842, MLECO-3801, MLECO-3899: Minor improvementsKshitij Sisodia
Some minor improvements in this patch: * Added notes on troubleshooting WSL2 build issues. * Fixed a stray guard for MPS3_PLATFORM from noise reduction use-case. * The default build script `build_default.py` will now return an error code to the calling process if it fails. Change-Id: I4557a402646fdf903b2cb043bf68d5d0b0d12972 Signed-off-by: Kshitij Sisodia <kshitij.sisodia@arm.com>
2023-03-15MLECO-3666: Updating to 23.02 dependencies.23.02-rc1Kshitij Sisodia
Updating dependency submodules to 23.02 versions. See https://review.mlplatform.org/plugins/gitiles/ml/ethos-u/ethos-u/+/refs/tags/23.02/23.02.json Change-Id: If0e396decadc1b4e3c6b263c65f75ccf0dafed28 Signed-off-by: Kshitij Sisodia <kshitij.sisodia@arm.com>
2023-02-13MLECO-2709: Inclusive language updateConor Kennedy
* Update various files to use inclusive language Signed-off-by: Conor Kennedy <conor.kennedy@arm.com> Change-Id: I538f61a400e1d58acb6397bb5e2ba3d912196314
2022-12-23MLECO-3748: Documentation updatesKshitij Sisodia
Added documentation around known issue with Arm GNU toolchain version 12.2.1. Minor change for MLECO-3731 also included. Link-time warnings for Arm GNU toolchain 11.3.1 also fixed. Change-Id: Ia8215e9f71327eeb59868aea91729d7b19dd6d34 Signed-off-by: Kshitij Sisodia <kshitij.sisodia@arm.com>
2022-12-21MLECO-3659: Improvement for NPU PMU countersKshitij Sisodia
The NPU idle count could have been erraneously high as the counters were always running. This change utilises callback functions to start/stop the counters only when the inferences start/stop executing on the NPU. Changes have been made to cache maintenance functions called from within the NPU driver's pipeline to reduce the overhead caused by these. Change-Id: I69db0d3b3f3fe5b2847e15b5c3096cb1e0484176 Signed-off-by: Kshitij Sisodia <kshitij.sisodia@arm.com>
2022-12-19MLECO-3611: Formatting fixes for generated files.Kshitij Sisodia
Template files updated for generated files to adhere to coding guidelines and clang format configuration. There will still be unavoidable violations, but most of the others have been fixed. Change-Id: Ia03db40f8c62a369f2b07fe02eea65e41993a523 Signed-off-by: Kshitij Sisodia <kshitij.sisodia@arm.com>
2022-12-06MLECO-3710: Fix for freshly updated submodule build issue.Kshitij Sisodia
TensorFlow Lite Micro can have stale third party components downloaded by an older version. On a submodule update, our recommendation to users would be to use `-DTENSORFLOW_LITE_MICRO_CLEAN_DOWNLOADS=ON` to clean the older downloads. Moving the triggered cleaning and refresh to CMake configuration stage (with no parallel build option). This should have a better chance of success with the subsequent build step. Change-Id: I305439c09658f49765ecc15eb1ce0c8b914dd30a
2022-12-01MLECO-3620 MLECO-3619: Update to 22.11 dependencies22.11-rc122.11Richard Burton
* CMSIS-NN is now a seperate dependency * Added inclusive language commitment * TensorFlow Lite Micro dependency is moved ahead of 22.11 to fix compilation issue Change-Id: I60e3311ff7da2ce064cbcdca054a86bdd1f620d8
2022-11-17MLECO-3583: Update copyright notice according to new guidelinesRichard Burton
Change-Id: I0f057b33993e5196a60e52f4fb0c60e09693dcfe
2022-11-02MLECO-3238: Fix for cache clean/invalidationKshitij Sisodia
Small fix for the issue of weakly defined "clean" and "invalidation" functions for D-cache in use. Change-Id: I452768ef216393834f20395a56cde6ff5f52d29a Signed-off-by: Kshitij Sisodia <kshitij.sisodia@arm.com>
2022-10-31MLECO-3578: Adding support for Arm Compiler 6.19Kshitij Sisodia
Minor update to retarget.c for system function `tmpnam`. Change-Id: I08cced273e517d00644167f8f5520b09f3c9d10c Signed-off-by: Kshitij Sisodia <kshitij.sisodia@arm.com>
2022-10-12MLECO-3100: Added summary document of use-casesKshitij Sisodia
Update for use-case API and CMSIS pack. Change-Id: Ic730a80fa43ba2a6e3eaa05333b61d3e1677b04e Signed-off-by: Kshitij Sisodia <kshitij.sisodia@arm.com>
2022-10-06MLECO-3164: Additional refactoring of KWS APIRichard Burton
Part 1 * Add KwsClassifier * KwsPostProcess can now be told to average results * Averaging is handlded by KwsClassifier * Current sliding window index is now an argument of DoPreProcess Change-Id: I07626da595ad1cbd982e8366f0d1bb56d1040459
2022-09-28MLECO-3518: Separates CMakePrestsMaksims Svecovs
Separates CMakePresets to respective. Adds options preset file with log-level and single-input for use-cases. Adds use-case file with base build preset with all the targets. Adds a configurable targets to all build presets. Adds additional config/build preset to show-off options-presets. Signed-off-by: Maksims Svecovs <maksims.svecovs@arm.com> Change-Id: Id82ce9c5b8d7cc48b80d784141dc22efa2690222
2022-09-26MLECO-3254 Default to using only one file per UCEanna O Cathain
Signed-off-by: Eanna O Cathain <eanna.ocathain@arm.com> Change-Id: I4a1cd2b5746cb479ae0d81ed973961cec2f3046e
2022-09-01MLECO-3395: Fix high coverity issueMaksims Svecovs
Most of the issues identified by coverity scan as high are false-positives revolving around intrinsics of lambda-function in C++. This patch fixes high risk reports about function pointer not being initialized. Signed-off-by: Maksims Svecovs <maksims.svecovs@arm.com> Change-Id: I52998ed4603ca943568f7bec5cb0d6a77731b02f
2022-08-25MLECO-3252: Minor documentation additionsKshitij Sisodia
Documentation md files added under source tree with links to the main docs. Minor updates to FAQs for MLECO-3251 as well. Change-Id: Ifdcc587f2fcf77228fd46e211d3f9c3963bc9b97 Signed-off-by: Kshitij Sisodia <kshitij.sisodia@arm.com>
2022-08-16MLECO-3319: Documentation updates for Arm® Corstone™-310.Kshitij Sisodia
Documentation updates around use of Arm® Corstone™-310 AVH, especially in terms of use of timing adapters (TA). Also, use of TA's is forced off for SSE-310 subsystem's CMake configuration. Signed-off-by: Kshitij Sisodia <kshitij.sisodia@arm.com> Signed-off-by: Maksims Svecovs <maksims.svecovs@arm.com> Change-Id: I66a87060d8d47ce2580aa15f3908be20162eab54
2022-07-08MLECO-3296 Override the AXI Burst Length for Ethos-U65Eanna O Cathain
Signed-off-by: Eanna O Cathain <eanna.ocathain@arm.com> Change-Id: Ia0d349ea0014ee10f275731f3c1de4f9287839e1
2022-06-10MLCE-864: Enabling I-Cache and D-Cache for MPS322.05Kshitij Sisodia
Both supported implementation on MPS3 (Arm Corstone-300 and Arm Corstone-310) will now have caches enabled. Also including a minor change left over from refactoring of code for HAL components. Change-Id: Ie5768cd26eef9083a817bca7c87ff691dae67fca
2022-06-09MLCE-864: Removing redundant warningKshitij Sisodia
MPS3 clock is logged in the output, removing the warning as profiling would be impacted by this additional logging over UART. Change-Id: I1f941a75752bed0c871240aee664f8191916ab1d
2022-06-01MLECO-2968 Create a docker image with all requirementsKshitij Sisodia
Added a Dockerfile to setup and install requirements for the ml-embedded-evaluation-kit repository. Also included minor change (MLCE-859) for NPU components' source file. Signed-off-by: Matthew Sloyan <matthew.sloyan@arm.com> Change-Id: I621fb2991218a451a0e8c33e14032b9c9e36709e
2022-05-23MLECO-3225: Using official support for Arm Cortex-M85 CPU.Kshitij Sisodia
* CMake version requirement bumped up to 3.21.0 * CMake 3.22.4 installed in the local Python virtualenv * CPU flags updated in toolchain files. * Using __ARM_FEATURE_DSP instead of potentially defining ARM_MATH_DSP wrongly. * CMake project version bumped up to 22.05.0 Changes also made for MLECO-3107 (pack generation): * TensorFlow Lite Micro CMSIS-pack version updated to 1.22.02. * Change to using __ARM_FEATURE_DSP will also help the generated pack. Partial changes for MLECO-3095: * CMSIS updated to version post 5.9.0 * TensorFlow Lite Micro updated to latest available * Ethos-U driver and core-platform repositories updated to 20.05_rc2 tags. Change-Id: I012c9e65897aed8ce589cff9bfe3a19efc3edeb9 Signed-off-by: Kshitij Sisodia <kshitij.sisodia@arm.com>
2022-05-20Remove dependency on extern defined constants from OD use caseRichard Burton
OD API now takes in these paramaters as part of the constructor Change-Id: I4cce25e364b2a99847b4540440db059997f6a81b
2022-05-17MLECO-2985 Adding Corstone-310 supportKshitij Sisodia
Change-Id: Ifa4b11154478355c10cb3e747b9938a74afd242b Signed-off-by: Eanna O Cathain <eanna.ocathain@arm.com>
2022-05-13MLECO-3101: Minor changes for CMSIS packKshitij Sisodia
Improvements based on feedback from initial tests done with the generated pack. Change-Id: Ia769dd6264c53e6b9337473e1c50bdfa6469a216 Signed-off-by: Kshitij Sisodia <kshitij.sisodia@arm.com>
2022-05-13MLECO-3202: Reduce Profiler's heap usageRichard Burton
* Profiler now only maintains a running average of profiling stats * Memory now constant for use cases with multiple inferences like Noise Reduction Signed-off-by: Richard Burton <richard.burton@arm.com> Change-Id: I50e0ca802edb637d363c1d61671d48a6885880f7
2022-05-12MLECO-3186: Each use case should same namespace convention as KWS and ASRLiam Barry
Certain UCs required additional work due to case context variables which also became part of a namespace in generated files. Solution was to declare these extra variables as part of the UC namespace in the respective model.hpp files. Additional changes to standardise use of namespaces may be required - proposing new task. Minor typo and rewording of customizing.md in relevant sections included. Signed-off-by: Liam Barry <liam.barry@arm.com> Change-Id: Ie78f82a30be252cb841136ea5115f21fc8d762cb
2022-05-11MLECO-3187: Remove NPU op inclusion checksMatthew Sloyan
* If an optimized model is accidentally supplied with Ethos-U support disabled it will return from the model.Init() function before it gets to these checks so they are redundant. Signed-off-by: Matthew Sloyan <matthew.sloyan@arm.com> Change-Id: Ibe25531347ce29cb0866a9cc087c7267673ab4da
2022-05-10MLECO-3189: Object detection keeps all detectionsMatthew Sloyan
* Clear vector before each inference to make sure there are no leftover results when running all inferences. Signed-off-by: Matthew Sloyan <matthew.sloyan@arm.com> Change-Id: If2417364151d7f380c3311447b10f971a5475f9e
2022-05-06MLECO-3183: Refactoring application sourcesKshitij Sisodia
Platform agnostic application sources are moved into application api module with their own independent CMake projects. Changes for MLECO-3080 also included - they create CMake projects individial API's (again, platform agnostic) that dependent on the common logic. The API for KWS_API "joint" API has been removed and now the use case relies on individual KWS, and ASR API libraries. Change-Id: I1f7748dc767abb3904634a04e0991b74ac7b756d Signed-off-by: Kshitij Sisodia <kshitij.sisodia@arm.com>
2022-05-05MLECO-3171: Add flag to make VWW grayscale conversion optionalRichard Burton
Signed-off-by: Richard Burton <richard.burton@arm.com> Change-Id: I4ae40a60efc0c09f27b02f739769238e95bb112c
2022-05-04MLECO-3173: Add AD, KWS_ASR and Noise reduction use case API'sRichard Burton
Signed-off-by: Richard Burton <richard.burton@arm.com> Change-Id: I36f61ce74bf17f7b327cdae9704a22ca54144f37
2022-05-03MLECO-3178: Fix for error reportingKshitij Sisodia
TensorFlow Lite Micro's error reporting fix with some minor wiring changes. Change-Id: Ib011ab132c82db5809b75a7c4b983a3db2a808d6
2022-04-27MLECO-3076: Add use case API for object detectionRichard Burton
* Removed unused prototype for box drawing Signed-off-by: Richard Burton <richard.burton@arm.com> Change-Id: I1b03b88e710a5efb1ff8e107859d2245b1fead26
2022-04-22MLECO-3174: Minor refactoring to implemented use case APISRichard Burton
Looks large but it is mainly just many small adjustments Removed the inference runner code as it wasn't used Fixes to doc strings Consistent naming e.g. Asr/Kws instead of ASR/KWS Signed-off-by: Richard Burton <richard.burton@arm.com> Change-Id: I43b620b5c51d7910a29a63b509ac4d8a82c3a8fc