-
Notifications
You must be signed in to change notification settings - Fork 607
Add all relevant testcases for Arm Ethos-U85 #5346
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add all relevant testcases for Arm Ethos-U85 #5346
Conversation
Add separate tests for Ethos-U85 to all backend operator tests. Signed-off-by: Per Åstrand <[email protected]> Signed-off-by: Tom Allsop <[email protected]> Co-authored-by: Tom Allsop <[email protected]> Change-Id: I923372adec92d095f11cb78aa55b675b1be7f070
🔗 Helpful Links🧪 See artifacts and rendered test results at hud.pytorch.org/pr/pytorch/executorch/5346
Note: Links to docs will display an error until the docs builds have been completed. ❌ 1 New FailureAs of commit 0e56d02 with merge base b2517d6 ( NEW FAILURE - The following job has failed:
This comment was automatically generated by Dr. CI and updates every 15 minutes. |
@pytorchbot label ciflow/trunk |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Let's fix some small issues?
backends/arm/test/ops/test_conv.py
Outdated
.partition() | ||
.check_count({"torch.ops.higher_order.executorch_call_delegate": 1}) | ||
.check_not(["executorch_exir_dialects_edge__ops_aten_convolution_default"]) | ||
.to_executorch() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
add serialize?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We only serialize if the test should be running on FVP. Since it's time consuming to run them all (and on an additional coming target) we probably want to run on FVP for full models only, but not decided internally yet.
backends/arm/test/ops/test_conv.py
Outdated
@@ -315,6 +315,24 @@ def _test_conv2d_u55_BI_pipeline( | |||
.to_executorch() | |||
) | |||
|
|||
def _test_conv2d_u85_BI_pipeline( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
why we are not sharing across u55/u85 like other places here?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good point. Will fix.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
pull request updated
@@ -104,6 +106,15 @@ def test_expand_tosa_BI(self, test_input, multiples): | |||
|
|||
# Expected failure since tosa.TILE is unsupported by Vela. | |||
@parameterized.expand(Expand.test_parameters) | |||
@unittest.expectedFailure | |||
@unittest.expectedFailure # TODO: MLBEDSW-9386 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
are these tickets public?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No, it's an internal bug that is in progress to be sorted out in Vela.
@@ -216,7 +216,7 @@ function setup_vela() { | |||
if [[ ! -e ethos-u-vela ]]; then | |||
git clone https://review.mlplatform.org/ml/ethos-u/ethos-u-vela | |||
repo_dir="${root_dir}/ethos-u-vela" | |||
base_rev=d362f5443f67b1e6213a9d8f124edff758efac96 | |||
base_rev=fe0eaa55c5ed319f78c01978f3b40eb11a9bcb38 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In the summary can we add if there is any major change with this rev? Like one or two line would be helpful to understand the rationale.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, good idea!
common.get_u55_compile_spec(permute_memory_to_nhwc=True), | ||
test_data, | ||
) | ||
if common.is_option_enabled("corstone300"): |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
how would this run u85 bitstream?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The compilespec is for Ethos-U55 and the run_method_and_compare_outpus is only run here for.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Right, but this function can be called for both u55 and u85 IIUC
@@ -172,9 +176,7 @@ def _test_linear_tosa_u55_BI_pipeline( | |||
.to_executorch() | |||
.serialize() | |||
) | |||
|
|||
if common.is_option_enabled("corstone300"): |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I am not sure if I am following the pattern where we enable/disable these. Is this operator specific? I would rather tie it to the ip i.e. something like this, hypothetically
if common.is_option_enabled("corstone300") and compile_spec.ip == "u55":
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
the common.is_option_enabled("corstone300")
only says if the FVP is installed on the target and can be run.
Right now it's only added for a few operators, but due to the time it adds to CI we probably want to move away from enabling it for all operator unit tests all the time.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
IIUC this FVP is u55 specific while this function can also get u85 compile spec and vela/et can produce u85 binary. I was trying to highlight that the choice of fvp 300 vs 320 should be tied to the compile spec somehow.
Signed-off-by: Per Åstrand <[email protected]> Change-Id: Ibee7fa81517bf766a550b97be97e2e3dbaed3a6c
…thos-U55 This tests was remporary added but fails again, lets remove it from the testing for now. Signed-off-by: Zingo Andersen <[email protected]> Change-Id: I519a8b13e50e12c4093f1b8e4d80ae35bded23ff
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Stamping to unblock.
@digantdesai has imported this pull request. If you are a Meta employee, you can view this diff on Phabricator. |
Change-Id: Iffbed1aea3583a6c725367db852d411cb1eb7783
Just a try to rebase it on latest after Fredriks pull request got merged if you did this already on the "imported" side of things please ignore the update. |
Signed-off-by: Zingo Andersen <[email protected]> Change-Id: I72baec5ab6cc85cd4f628ab2ea14f1c02c060b66
@digantdesai has imported this pull request. If you are a Meta employee, you can view this diff on Phabricator. |
@digantdesai merged this pull request in f4728f4. |
Add separate tests for Ethos-U85 to all backend operator tests.
Updated ethos-u-vela version to support more operators.
Signed-off-by: Per Åstrand <[email protected]>
Signed-off-by: Tom Allsop <[email protected]>