-
Notifications
You must be signed in to change notification settings - Fork 497
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
Bug fix in Ethos runtime backend #9517
Conversation
🔗 Helpful Links🧪 See artifacts and rendered test results at hud.pytorch.org/pr/pytorch/executorch/9517
Note: Links to docs will display an error until the docs builds have been completed. ✅ You can merge normally! (1 Unrelated Failure)As of commit e85d40c with merge base 5c5b84e ( BROKEN TRUNK - The following job failed but were present on the merge base:👉 Rebase onto the `viable/strict` branch to avoid these failures
This comment was automatically generated by Dr. CI and updates every 15 minutes. |
This pull request was exported from Phabricator. Differential Revision: D71658384 |
@pytorchbot label "topic: not user facing" |
Summary: See the comment in source for explanation. Differential Revision: D71658384
2743ff0
to
cdba9aa
Compare
This pull request was exported from Phabricator. Differential Revision: D71658384 |
Summary: See the comment in source for explanation. Differential Revision: D71658384
cdba9aa
to
a0b997c
Compare
Summary: See the comment in source for explanation. Also change the default MACs for U85 to 256, which is default on FVP SSE-320. Differential Revision: D71658384
a0b997c
to
2935153
Compare
This pull request was exported from Phabricator. Differential Revision: D71658384 |
Summary: See the comment in source for explanation. Also change the default MACs in U85 compile spec to 256, which is default on FVP SSE-320. Differential Revision: D71658384
2935153
to
8b046a3
Compare
This pull request was exported from Phabricator. Differential Revision: D71658384 |
Summary: Cortex-M is 32-bit, so pointer type in the runtime backend is also 32-bit. If the address >= 0x80000000, direct cast to uint64_t treates it as signed integer and signed extends it to 0xFFFFFFFFXXXXXXXX, which causes address validity check in Ethos driver to fail. First cast it to unsigned type uintptr_t then cast to uint64_t avoids this issue. Also change the default MACs in U85 compile spec to 256, which is default on FVP SSE-320. Differential Revision: D71658384
8b046a3
to
bea155f
Compare
This pull request was exported from Phabricator. Differential Revision: D71658384 |
bea155f
to
3ace273
Compare
Summary: Cortex-M is 32-bit, so pointer type in the runtime backend is also 32-bit. If the address >= 0x80000000, direct cast to uint64_t treates it as signed integer and sign extends it to 0xFFFFFFFFXXXXXXXX, which causes address validity check in Ethos driver to fail. First cast it to unsigned type uintptr_t then cast to uint64_t avoids this issue. Also change the default MACs in U85 compile spec to 256, which is default on FVP SSE-320. Differential Revision: D71658384
This pull request was exported from Phabricator. Differential Revision: D71658384 |
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.
Thank you!
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.
Thanks for the fix, good find. The fix is really good but there is just a small lintrunner error that needs to be fixed to keep HEAD clean if its OK🙏
If not I can also create a new PR tomorrow with fix for both this and the lint problem, no problem. Thanks for the help.
Summary: Cortex-M is 32-bit, so pointer type in the runtime backend is also 32-bit. If the address >= 0x80000000, direct cast to uint64_t treates it as signed integer and sign extends it to 0xFFFFFFFFXXXXXXXX, which causes address validity check in Ethos driver to fail. First cast it to unsigned type uintptr_t then cast to uint64_t avoids this issue. Reviewed By: digantdesai Differential Revision: D71658384
3ace273
to
fc77121
Compare
This pull request was exported from Phabricator. Differential Revision: D71658384 |
Summary: Cortex-M is 32-bit, so pointer type in the runtime backend is also 32-bit. If the address >= 0x80000000, direct cast to uint64_t treates it as signed integer and sign extends it to 0xFFFFFFFFXXXXXXXX, which causes address validity check in Ethos driver to fail. First cast it to unsigned type uintptr_t then cast to uint64_t avoids this issue. Reviewed By: digantdesai Differential Revision: D71658384
b492a22
to
e85d40c
Compare
This pull request was exported from Phabricator. Differential Revision: D71658384 |
Summary: Cortex-M is 32-bit, so pointer type in the runtime backend is also 32-bit. If the address >= 0x80000000, direct cast to uint64_t treates it as signed integer and sign extends it to 0xFFFFFFFFXXXXXXXX, which causes address validity check in Ethos driver to fail. First cast it to unsigned type uintptr_t then cast to uint64_t avoids this issue.
Differential Revision: D71658384