aboutsummaryrefslogtreecommitdiff
path: root/tests
AgeCommit message (Collapse)Author
2023-02-13MLIA-709 Update compatibility data for Cortex-A0.6.0-rc.1Annie Tallund
- Add operator compatibility data for Cortex-A via for ArmNN TensorFlow Lite delegate 22.11 - Extend the Cortex-A target profile to include the version of the ArmNN TensorFlow Lite delegate to be used. - Some re-factoring work to support multiple versions and the new target profile parameter. Change-Id: Iae91bb0757ea3909be975af68b34d0ca2be47c43
2023-02-13MLIA-775 Refactor metadata related classesRuomei Yan
- define Metadata base class with dictionary data and abstract method - mlia, tosa, model and metadatadisplay classes are all inherited from base class - update unit tests - update function report_metadata into more generalized format Change-Id: Id49e15283eebdca705045eda81db637d82f85453
2023-02-10MLIA-769 Add "pretty names" for targets / backendsBenjamin Klimczak
- Provide "pretty names" to print information for targets and backends. - Use 'target_config' instead of 'target' if a target profile is used. - Fix minor issue in output regarding the output directory. Change-Id: Ib38231f30b4d609a0d1e8f9c52b2fb547c69cb6a
2023-02-10MLIA-769 Replace use of 'device' with 'target'Benjamin Klimczak
Term 'device' can be ambiguous and is replaced with 'target'. Change-Id: I5e5108d033a13b98e4c2997713e1c32bce63ae62
2023-02-10MLIA-769 Expand use of target/backend registriesBenjamin Klimczak
- Use the target/backend registries to avoid hard-coded names. - Cache target profiles to avoid re-loading them Change-Id: I474b7c9ef23894e1d8a3ea06d13a37652054c62e
2023-02-10MLIA-594 Save target profile configurationAnnie Tallund
Save the target profile file in the output directory. Change-Id: I886e52cb922c5425e749b154bd67a5d294ce0201
2023-02-08MLIA-595 Remove old backend configuration mechanismDmitrii Agibov
- Remove old backend configuration code - Install backends into directory ~/.mlia - Rename targets/backends in registry to make it consistent across codebase. Change-Id: I9c8b012fe863280f1c692940c0dcad3ef638aaae
2023-02-08MLIA-770 List all available backendsAnnie Tallund
- Rely on target and backend registry for support information - Make above information less Ethos(TM)-U specific Change-Id: I8dbfb84401016412a3d719a84eb592f21d79c46b
2023-02-08MLIA-591 Create interface for target profilesBenjamin Klimczak
New class 'TargetProfile' is used to load and verify target profiles. Change-Id: I76373a923e2e5f55c4e95860635afe9fc5627a5d
2023-02-08MLIA-590 Support path to custom target profilesAnnie Tallund
- Start using TOML format for target profile - Add support for loading custom target profile files Change-Id: I6be019d4341e93115440ccdbdb6dafdc1c85b966
2023-02-08MLIA-737 Show connection between target / backendBenjamin Klimczak
- The help text of MLIA now shows a table of supported targets, backends and advice. - The table is only shown with the help message and not when MLIA is run normally. Change-Id: I3234ce91e943de4b08b9471bd95a474df34755f7
2023-02-06MLIA-461 Add parameter for the output directoryDmitrii Agibov
- Add CLI parameter --output-dir - Rename ExecutionContext property working_dir into output_dir - Remove logic for default command as it is no longer needed Change-Id: I6387f6b688520ba1fc69a80167587297353620f6
2023-02-03MLIA-782 Remove --output parameterDiego Russo
* Remove --output parameter from argument parser * Remove FormattedFilePath class and its presence across the codebase * Move logging module from cli to core * The output format is now injected in the execution context and used across MLIA * Depending on the output format, TextReporter and JSONReporter have been created and used accordingly. * The whole output to standard output and/or logfile is driven via the logging module: the only case where the print is used is when the --json parameter is specified. This is needed becase all output (including third party application as well) needs to be disabled otherwise it might corrupt the json output in the standard output. * Debug information is logged into the log file and printed to stdout when the output format is plain_text. * Update E2E test and config to cope with the new mechanism of outputting json data to standard output. Change-Id: I4395800b0b1af4d24406a828d780bdeef98cd413
2023-01-31MLIA-785 Enable export into json for enumsDmitrii Agibov
Change-Id: I8e4d5d04f6b1b252dae872ea76d2bd8c41f4b376
2023-01-16MLIA-741/2 Report test resultsRuomei Yan
- add version extraction function in compat.py - create Metadata, MLIAMetadata, TOSAMetadata and MetadataDisplay classes - update the reporting functions so tosa and mlia version will be displayed in output json - update unit test test_configure_and_get_tosa_advisor to mock the get_events function - update the copyright information of all changed/added files - handle exception and report to json when program crashes - write new context managers for capturing stderr and stdout - support reporting stderr to json output - support reporting model checksum and model name to json output - made changes in test_e2e.py handling {model_name} replacement in --output - add unit tests Change-Id: I6629fd1c5754378e6accd488217c83d87c7eb6f1
2023-01-10MLIA-650 Implement new CLI changesRaul Farkas
Breaking change in the CLI and API: Sub-commands "optimization", "operators", and "performance" were replaced by "check", which incorporates compatibility and performance checks, and "optimize" which is used for optimization. "get_advice" API was adapted to these CLI changes. API changes: * Remove previous advice category "all" that would perform all three operations (when possible). Replace them with the ability to pass a set of the advice categories. * Update api.get_advice method docstring to reflect new changes. * Set default advice category to COMPATIBILITY * Update core.common.AdviceCategory by changing the "OPERATORS" advice category to "COMPATIBILITY" and removing "ALL" enum type. Update all subsequent methods that previously used "OPERATORS" to use "COMPATIBILITY". * Update core.context.ExecutionContext to have "COMPATIBILITY" as default advice_category instead of "ALL". * Remove api.generate_supported_operators_report and all related functions from cli.commands, cli.helpers, cli.main, cli.options, core.helpers * Update tests to reflect new API changes. CLI changes: * Update README.md to contain information on the new CLI * Remove the ability to generate supported operators support from MLIA CLI * Replace `mlia ops` and `mlia perf` with the new `mlia check` command that can be used to perform both operations. * Replace `mlia opt` with the new `mlia optimize` command. * Replace `--evaluate-on` flag with `--backend` flag * Replace `--verbose` flag with `--debug` flag (no behaviour change). * Remove the ability for the user to select MLIA working directory. Create and use a temporary directory in /temp instead. * Change behaviour of `--output` flag to not format the content automatically based on file extension anymore. Instead it will simply redirect to a file. * Add the `--json` flag to specfy that the format of the output should be json. * Add command validators that are used to validate inter-dependent flags (e.g. backend validation based on target_profile). * Add support for selecting built-in backends for both `check` and `optimize` commands. * Add new unit tests and update old ones to test the new CLI changes. * Update RELEASES.md * Update copyright notice Change-Id: Ia6340797c7bee3acbbd26601950e5a16ad5602db
2023-01-04MLIA-589 Create an API to get target informationBenjamin Klimczak
Change-Id: Ieeaa9188ea1e29e2ccaad7475d457bce71e3140d
2022-12-16MLIA-460 Revisit backend managementDmitrii Agibov
- Provide command for backend installation in case if backend is not available - Fix issue with connection timeout during downloading - Show installation tools output only in verbose mode Change-Id: Ic0e495ba19879cc2cda4fd0bce20b57ba896cfeb
2022-12-06MLIA-669 Upgrade dependencies with Vela 3.6Benjamin Klimczak
With Vela 3.6 we are able to remove the special treatment of aarch64 in our dependencies, i.e. - upgrade Vela to version 3.6 that resolves a compatibility issue for aarch64 in 3.4 and 3.5. - upgrade to TensorFlow 2.10 which now supports aarch64 (therefore making it obsolete to use 'tensorflow-aarch64'). Change-Id: I86508b667b5ccb55bfd11dcae9defc54e5ef74de
2022-11-29Rename modulesDmitrii Agibov
- Rename module "mlia.devices" into "mlia.target" - Rename module "mlia.target.ethosu" into "mlia.target.ethos_u" - Rename module "mlia.target.cortexa" into "mlia.target.cortex_a" - Rename and update tests Change-Id: I6dca7c8646d881f739fb6b5914d1cc7e45e63dc2
2022-11-29Move TOSA checker functions into separate moduleDmitrii Agibov
- Create module "compat" for tosa_checker backend - Move TOSA checker functions into new module - Update tests Change-Id: Ia07034515fe43b2061b8892535067d21315cc721
2022-11-29Move backends functionality into separate modulesDmitrii Agibov
- Move backend management/executor code into module backend_core - Create separate module for each backend in "backend" module - Move each backend into corresponding module - Split Vela wrapper into several submodules Change-Id: If01b6774aab6501951212541cc5d7f5aa7c97e95
2022-11-21Improve the CLI outputBenjamin Klimczak
Resolves: MLIA-719, MLIA-720 Change-Id: Ib697046f5090260437f3b1ab5fe8c5b4975abae2
2022-11-17MLIA-136, MLIA-193 Enable test for model clusteringDmitrii Agibov
- Enable previously disabled test for clustering - Remove fix made in the test for the previous TFMOT version Change-Id: I46b87ce5bcccccca3c9703741dcde7f1ba9fa192
2022-11-16MLIA-649 Support tosa-checker as a backendDmitrii Agibov
- Add new type of the backend based on python packages - Add installation class for TOSA checker - Update documentation - Extend support of the parameter "force" in the "install" command Change-Id: I95567b75e1cfe85daa1f1c3d359975bb67b2504e
2022-11-15MLIA-649 Strip mlia backend management into a new commandRuomei Yan
* add entry point for mlia-backend in setup.cfg and main.py * add --force option for install from path: uninstall existing backend in ML Inference Advisor and install from given path * add uninstall and list program parameters: uninstall has backend_name as input arg, install has backend_name as a mandatory argument * add unit tests in test_cli_commands.py, test_cli_main.py, test_tools_metadata_common.py, test_tools_metadata_corstone.py * updated README.md * remove --download option for installing backend * add new lines for the display section when we do mlia-backen list * add case insensitive support for backend names in command line argument Change-Id: Icb89d8957fa6be4b767710e24fa074f26472674b
2022-11-15MLIA-685 Warn about custom operators in SavedModel/Keras modelsDmitrii Agibov
- Add new error types for the TensorFlow Lite compatibility check - Try to detect custom operators in SavedModel/Keras models - Add warning to the advice about models with custom operators Change-Id: I2f65474eecf2788110acc43585fa300eda80e21b
2022-11-11MLIA-701 Update dependenciesBenjamin Klimczak
- Update TensorFlow dependencies for x86_64 - Adapt unit tests to new TensorFlow version - Update linters (including pre-commit hooks) and fix issues - Use conditional import to fix tflite compat code for aarch64 Change-Id: I1a9b080b900ab65e38f7f2552562822bbfdcd259
2022-11-10MLIA-411 Report Cortex-A operator compatibilityBenjamin Klimczak
Check input model for Arm NN TensorFlow Lite Delegate 22.08 support. Change-Id: I1253c4c0b294c5283e08f0a39561b922ef0f62e6
2022-11-09MLIA-275 Remove support for CSV outputBenjamin Klimczak
Change-Id: I212c9cad5f2ac28b75b1d9e2fb8f1f8b444b8397
2022-11-08MLIA-630 Fix links to other files in README.mdRaul Farkas
* Update setup.py to replace relative paths in README.md with links to files on review.mlplatform.org * Add a mechanism that replaces relative paths to images with the link to the plain image on review.mlplatform.org Change-Id: Ifeb17e3c03e8366bd12665eb9f4a630fc9933e26
2022-11-07MLIA-688 Fix --supported-ops-report flagRaul Farkas
* Add `api.generate_supported_operators_report` that calls a report generator based on given target profile. * Update `--supported-ops-report` cli flag help section and README.md info by specifying that it is currently only supported for Ethos-U. * Add tests for `generate_supported_operators_report` method. * Add stub methods `report` for Cortex-A and Tosa operators.py module that throw a "Not supported" exception. Change-Id: Iaf373fe48299d807e48fd6a0e6c029ce32203f4f
2022-10-26MLIA-433 Add TensorFlow Lite compatibility checkDmitrii Agibov
- Add ability to intercept low level TensorFlow output - Produce advice for the models that could not be converted to the TensorFlow Lite format - Refactor utility functions for TensorFlow Lite conversion - Add TensorFlow Lite compatibility checker Change-Id: I47d120d2619ced7b143bc92c5184515b81c0220d
2022-10-21MLIA-671 Update generic inference runner to 22.08Diego Russo
Due to the new version of Corstone-310, the generic inference runner has been updated to 22.08: * The inference runner 22.08 doesn't have timing adapters because incompatible with new version of Corstone-310 * Remove some memory mode logic which is not needed anymore * Corstone-310 allows to run Ethos-U65 simulation hence adding the binary for enabling this case * Delete the inference runner 22.05 * Fix codebase and tests to cope with changes above Change-Id: I3dc894d7cb49b09102a19b0d7f588694a0f3b99f
2022-10-18MLIA-409 Create new Cortex-A device skeletonRaul Farkas
* Add Cortex-A device skeleton * Add unit tests for the Cortex-A device skeleton * Update profiles.json by adding the new "cortex-a" profile * Add new cortex-a factory to the get_advisor method in api.py * Disable performance and optimization commands for the cortex-a profile. * Update trademarks section in README.md * Update pyproject.toml to not run similarity check in imports Change-Id: I2e228aaada1e2d3c5cc329d70572b51962ff517f
2022-10-07MLIA-607 Update documentation and commentsDmitrii Agibov
Use "TensorFlow Lite" instead of "TFLite" in documentation and comments Change-Id: Ie4450d72fb2e5261d152d72ab8bd94c3da914c46
2022-10-04MLIA-673 Use inclusive language in the source code and filenamesDmitrii Agibov
- Update configuration for inclusive language linter - Fix reported issues Change-Id: If0f8b6e20c17d8ee1c6179c61040fc351437f036
2022-10-04MLIA-580 Fix test that produces untracked filesDmitrii Agibov
- Create separate test for the application execution, update test application configuration file - Use simple mock object in the test for the backend manager Change-Id: Ia0f7f29d43a55223d7b2fb47348b0779a26e2268
2022-09-30MLIA-647 Fix backend install for Corstone-300 on AVH/VHTGergely Nagy
- Remove the extra 's' character which broke the path detection mechanism when installed from /opt/VHT location on AVH instances - Add unit tests to make sure we fixed the problem Change-Id: Ic33a3c6c4d2b33181268d0efbc0324962e741dd4
2022-09-21MLIA-618 MLIA performance for Ethos-U65-256Ruomei Yan
- added the target profile for ethos-u65-256 - modified the unit tests regarding target profiles - updated the README.md Change-Id: I0f6b50199e735a18f0b436d291c871e1fa0460dd
2022-09-20Make python syntax consistent across codebaseDmitrii Agibov
- Use pyupgrade tool for the syntax upgrade Change-Id: I3b9ae6cc5da193329e37028cde967ae049388361
2022-09-09MLIA-386 Simplify typing in the source codeDmitrii Agibov
- Enable deferred annotations evaluation - Use builtin types for type hints whenever possible - Use | syntax for union types - Rename mlia.core._typing into mlia.core.typing Change-Id: I3f6ffc02fa069c589bdd9e8bddbccd504285427a
2022-08-19MLIA-549 Integrate TOSA checker into MLIADmitrii Agibov
- Add new module for TOSA - Add advisor workflow components - Use TOSA checker for getting operators compatibility information Change-Id: I769e5e2a84e15779658f0895b4a347384def63bf
2022-08-19MLIA-549 Refactor API module to support several target profilesDmitrii Agibov
- Move target specific details out of API module - Move common logic for workflow event handler into a separate class Change-Id: Ic4a22657b722af1c1fead1d478f606ac57325788
2022-08-03MLIA-389 Enable bandit check in pre-commitDiego Russo
Add bandit to pre-commit and fix some bandit errors. We use the default security level (low) with few exceptions: * B101 assert_use: apart of tests, we use assert in our codebase hence we globally ignore error B101. * B404/B603: these are errors related to subprocesse and they are being ignored locally when used. * B604 Test for any function with shell equals true: we have disabled this locally because of its safe use in the tests. Change-Id: If654e5e92285f7c86ac210a6f1373dbab6be17c9
2022-07-26MLIA-551 Rework remains of AIET architectureBenjamin Klimczak
Re-factoring the code base to further merge the old AIET code into MLIA. - Remove last traces of the backend type 'tool' - Controlled systems removed, including SSH protocol, controller, RunningCommand, locks etc. - Build command / build dir and deploy functionality removed from Applications and Systems - Moving working_dir() - Replace module 'output_parser' with new module 'output_consumer' and merge Base64 parsing into it - Change the output consumption to optionally remove (i.e. actually consume) lines - Use Base64 parsing in GenericInferenceOutputParser, replacing the regex-based parsing and remove the now unused regex parsing - Remove AIET reporting - Pre-install applications by moving them to src/mlia/resources/backends - Rename aiet-config.json to backend-config.json - Move tests from tests/mlia/ to tests/ - Adapt unit tests to code changes - Dependencies removed: paramiko, filelock, psutil - Fix bug in corstone.py: The wrong resource directory was used which broke the functionality to download backends. - Use f-string formatting. - Use logging instead of print. Change-Id: I768bc3bb6b2eda57d219ad01be4a8e0a74167d76
2022-07-22MLIA-507 Upgrade Vela versionRaul Farkas
Upgrade Vela version from 3.3.0 to 3.4.0. - Adapt code to use new typing notation by replacing `numpy.array` with `numpy.ndarray` where necessary. Change-Id: I035e9564d448652aa09a52d79c71ef09663ea776
2022-07-08MLIA-546 Merge AIET into MLIABenjamin Klimczak
Merge the deprecated AIET interface for backend execution into MLIA: - Execute backends directly (without subprocess and the aiet CLI) - Fix issues with the unit tests - Remove src/aiet and tests/aiet - Re-factor code to replace 'aiet' with 'backend' - Adapt and improve unit tests after re-factoring - Remove dependencies that are not needed anymore (click and cloup) Change-Id: I450734c6a3f705ba9afde41862b29e797e511f7c
2022-07-04MLIA-316 Specify cache arena size in the Vela memory profilesRuomei Yan
When running the e2e test of Wav2Letter, the tensor allocation failed. To resolve this, we changed the arena cache size to 2096768. This is due to the requirement in Vela. We need to make it aware of the memory limitation on the target we are deploying for. Change-Id: I192790033954058fa5db249452d998764df52663
2022-06-27MLIA-522 No 'perf' in mode 'all' for TFLite filesBenjamin Klimczak
Fix the issue that no performance information is shown for TFLite files when the mode 'all_tests' is used. Change-Id: I8b4df4ab84ba9783b582ad449a34bf6177037e14