Uh oh!
There was an error while loading. Please reload this page.
[TVMC] Add support for the MLF to 'compile' command - #8086
Conversation
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
leandron
commented
May 20, 2021
Also just to report, I tested it locally and it works. |
| if output_format in ["so", "tar"]: | ||
| return self.export_classic_format(executor_factory, package_path, cross, output_format) | ||
| else: |
There was a problem hiding this comment.
could we be explicit here (elif output_format == "mlf") rather than as a fallback?
gromero
commented
May 21, 2021
Add support for the Model Library Format (MLF) to 'tvmc' so users can output compilation artifacts to a MLF archive passing the new flag '--output-format mlf'. For instance: $ python3 -m tvm.driver.tvmc compile ./sine_model.tflite --target="c" --output sine.tar --output-format mlf will generate a sine.tar archive that is serialized accordingly to the MLF. Since the MLF is currently meant to be used only on micro targets, an error is generated if one tries to run a MLF outside a micro context. The micro context does not exist yet but will be later introduced as part of the [RFC] "TVMC: Add support for µTVM". That commit also adds 3 pytest tests to test tvmc + MLF. Finally, it also fixes some missing periods in the 'compile' command help sections and renames export_format to output_format so there is no confusion with flag '--dump-code', which contains "formats to export" in its help section. Signed-off-by: Gustavo Romero <gustavo.romero@linaro.org>
gromero
commented
May 24, 2021
leandron
left a comment
There was a problem hiding this comment.
LGTM just pending a test pending the fix for one of the tests.
| assert str(exp.value) == expected_reason, on_error | ||
| def test_tvmc_import_package_mlf(tflite_compiled_model_mlf): |
There was a problem hiding this comment.
| deftest_tvmc_import_package_mlf(tflite_compiled_model_mlf): | |
| deftest_tvmc_import_package_mlf(tflite_compiled_model_mlf): | |
| pytest.importorskip("tflite") |
As this test is compiled and executed in the same machine, it will need to be protected with a pytest.importorskip("tflite") as well, so that it will be skipped in the CI i386 machine, like the other in this file.
Fix missing importorskip() in the import_package test allowing the test in question to be skipped when 'tflite' is not installed in the test environment, otherwise the test will fail with: [...] > archive_path = exported_tvmc_package.package_path E AttributeError: 'str' object has no attribute 'package_path'
gromero
commented
May 25, 2021
@tmoreau89 Hello Thierry. Could you please merge it? |
leandron
commented
May 25, 2021
* [TVMC] Add support for the MLF to 'compile' command Add support for the Model Library Format (MLF) to 'tvmc' so users can output compilation artifacts to a MLF archive passing the new flag '--output-format mlf'. For instance: $ python3 -m tvm.driver.tvmc compile ./sine_model.tflite --target="c" --output sine.tar --output-format mlf will generate a sine.tar archive that is serialized accordingly to the MLF. Since the MLF is currently meant to be used only on micro targets, an error is generated if one tries to run a MLF outside a micro context. The micro context does not exist yet but will be later introduced as part of the [RFC] "TVMC: Add support for µTVM". That commit also adds 3 pytest tests to test tvmc + MLF. Finally, it also fixes some missing periods in the 'compile' command help sections and renames export_format to output_format so there is no confusion with flag '--dump-code', which contains "formats to export" in its help section. Signed-off-by: Gustavo Romero <gustavo.romero@linaro.org> * Fix missing importorskip in the import_package test Fix missing importorskip() in the import_package test allowing the test in question to be skipped when 'tflite' is not installed in the test environment, otherwise the test will fail with: [...] > archive_path = exported_tvmc_package.package_path E AttributeError: 'str' object has no attribute 'package_path'
* [TVMC] Add support for the MLF to 'compile' command Add support for the Model Library Format (MLF) to 'tvmc' so users can output compilation artifacts to a MLF archive passing the new flag '--output-format mlf'. For instance: $ python3 -m tvm.driver.tvmc compile ./sine_model.tflite --target="c" --output sine.tar --output-format mlf will generate a sine.tar archive that is serialized accordingly to the MLF. Since the MLF is currently meant to be used only on micro targets, an error is generated if one tries to run a MLF outside a micro context. The micro context does not exist yet but will be later introduced as part of the [RFC] "TVMC: Add support for µTVM". That commit also adds 3 pytest tests to test tvmc + MLF. Finally, it also fixes some missing periods in the 'compile' command help sections and renames export_format to output_format so there is no confusion with flag '--dump-code', which contains "formats to export" in its help section. Signed-off-by: Gustavo Romero <gustavo.romero@linaro.org> * Fix missing importorskip in the import_package test Fix missing importorskip() in the import_package test allowing the test in question to be skipped when 'tflite' is not installed in the test environment, otherwise the test will fail with: [...] > archive_path = exported_tvmc_package.package_path E AttributeError: 'str' object has no attribute 'package_path'
Hi,
Could I get reviews for the following change, please?
It adds support for the Model Library Format (MLF) to 'tvmc' so users can
output compilation artifacts to a MLF archive passing the new flag
'--output-format mlf'. For instance:
$ python3 -m tvm.driver.tvmc compile ./sine_model.tflite --target="c" --output sine.tar --output-format mlf
will generate a sine.tar archive that is serialized accordingly to the
MLF.
Since the MLF is currently meant to be used only on micro targets, an
error is generated if one tries to run a MLF outside a micro context:
$ python3 -m tvm.driver.tvmc run ./sine.tar
Error: You're trying to run a model saved using the Model Library Format (MLF). MLF can only be used to run micro targets (µTVM).
The micro context does not exist yet but will be later introduced as
part of the [RFC] "TVMC: Add support for µTVM".
Signed-off-by: Gustavo Romero gustavo.romero@linaro.org