Skip to content

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

Closed

Conversation

zingo
Copy link
Collaborator

@zingo zingo commented Sep 13, 2024

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]>

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
Copy link

pytorch-bot bot commented Sep 13, 2024

🔗 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 Failure

As of commit 0e56d02 with merge base b2517d6 (image):

NEW FAILURE - The following job has failed:

This comment was automatically generated by Dr. CI and updates every 15 minutes.

@facebook-github-bot facebook-github-bot added the CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. label Sep 13, 2024
@zingo zingo added the partner: arm For backend delegation, kernels, demo, etc. from the 3rd-party partner, Arm label Sep 13, 2024
@zingo
Copy link
Collaborator Author

zingo commented Sep 13, 2024

@pytorchbot label ciflow/trunk

@zingo zingo changed the title Add all relevant testcases for Ethos-U85 Add all relevant testcases for Arm Ethos-U85 Sep 13, 2024
Copy link
Contributor

@digantdesai digantdesai left a 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?

.partition()
.check_count({"torch.ops.higher_order.executorch_call_delegate": 1})
.check_not(["executorch_exir_dialects_edge__ops_aten_convolution_default"])
.to_executorch()
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

add serialize?

Copy link
Collaborator

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.

@@ -315,6 +315,24 @@ def _test_conv2d_u55_BI_pipeline(
.to_executorch()
)

def _test_conv2d_u85_BI_pipeline(
Copy link
Contributor

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?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good point. Will fix.

Copy link
Collaborator Author

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
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

are these tickets public?

Copy link
Collaborator

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
Copy link
Contributor

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.

Copy link
Collaborator

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"):
Copy link
Contributor

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?

Copy link
Collaborator

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.

Copy link
Contributor

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"):
Copy link
Contributor

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":

Copy link
Collaborator

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.

Copy link
Contributor

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.

zingo and others added 4 commits September 15, 2024 08:37
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
Copy link
Contributor

@digantdesai digantdesai left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Stamping to unblock.

@facebook-github-bot
Copy link
Contributor

@digantdesai has imported this pull request. If you are a Meta employee, you can view this diff on Phabricator.

Change-Id: Iffbed1aea3583a6c725367db852d411cb1eb7783
@zingo
Copy link
Collaborator Author

zingo commented Sep 23, 2024

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.

@facebook-github-bot
Copy link
Contributor

@digantdesai has imported this pull request. If you are a Meta employee, you can view this diff on Phabricator.

@facebook-github-bot
Copy link
Contributor

@digantdesai merged this pull request in f4728f4.

@zingo zingo deleted the Add-all-relevant-testcases-for-Ethos-U85 branch September 24, 2024 11:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ciflow/trunk CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. Merged partner: arm For backend delegation, kernels, demo, etc. from the 3rd-party partner, Arm
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants