Skip to content

Conversation

haowhsu-quic
Copy link
Collaborator

Summary

  • enable linux embedded support for toolchain: aarch64-oe-linux-gcc9.3 (SXR1230P)
  • update document a bit

Test plan

python backends/qualcomm/tests/test_qnn_delegate.py TestQNNQuantizedOperator.test_qnn_backend_conv2d -b build-oe-linux/ -s 2ff76932 -m SXR1230P -t aarch64-oe-linux-gcc9.3

Copy link

pytorch-bot bot commented Jul 2, 2025

🔗 Helpful Links

🧪 See artifacts and rendered test results at hud.pytorch.org/pr/pytorch/executorch/12164

Note: Links to docs will display an error until the docs builds have been completed.

❌ 2 New Failures, 2 Cancelled Jobs

As of commit 229a3f6 with merge base f4d801a (image):

NEW FAILURES - The following jobs have failed:

CANCELLED JOBS - The following jobs were cancelled. Please retry:

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 Jul 2, 2025
@haowhsu-quic
Copy link
Collaborator Author

@pytorchbot label "release notes: qualcomm"

@pytorch-bot pytorch-bot bot added the release notes: qualcomm Changes to the Qualcomm backend delegate label Jul 2, 2025
- SSG2115P
- SSG2125P
- SXR1230P
- SXR1230P (Linux Embedded)
Copy link
Contributor

Choose a reason for hiding this comment

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

I thought SXR1230P is just a SoC similar to others. How is it special compared with the others?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Sorry that I completely missed this. I think it depends on the device meta: like the info dumped from my device cat /firmware/verinfo/ver_info.txt: Aurora.LE.2.3-00040-STD.PROD-1.
Some SoCs might have LE / LA simultaneously, but I think this one we only provide the LE meta build.

"-t",
"--target",
help="Target platform for deployment",
default="aarch64-android",
Copy link
Contributor

Choose a reason for hiding this comment

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

Can we add choices so users know what they can choose?

Suggested change
default="aarch64-android",
choices=["aarch64-android", "linux"]
default="aarch64-android",

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

That's even better, thank you.

@cccclai
Copy link
Contributor

cccclai commented Jul 11, 2025

Sorry I need to spend a bit more time on this, because we don't have CI to test the pllm model and I'm worried it will cause breakage

@haowhsu-quic
Copy link
Collaborator Author

Sorry I need to spend a bit more time on this, because we don't have CI to test the pllm model and I'm worried it will cause breakage

No worries, this PR is also a PoC for IoT (the toolchain will mostly be LE) device users.

@facebook-github-bot
Copy link
Contributor

@cccclai has imported this pull request. If you are a Meta employee, you can view this in D82227074.

@cccclai
Copy link
Contributor

cccclai commented Sep 11, 2025

there is a lint error and some ci error

@chenweng-quic
Copy link
Collaborator

Hi @cccclai,
It seems like CI is not running, could you please check that?

@cccclai
Copy link
Contributor

cccclai commented Sep 17, 2025

Hi @cccclai, It seems like CI is not running, could you please check that?

Just approve and have it running, not quite sure why it's not triggered automatically...

@cccclai
Copy link
Contributor

cccclai commented Sep 23, 2025

Seems like lint error and qnn related tests are failing

CMAKE_AARCH64="build-android"
BUILD_ANDROID="true"
CMAKE_ANDROID="build-android"
BUILD_OE_LINUX="false"
Copy link
Contributor

Choose a reason for hiding this comment

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

If it's default to false, why do we still need to explicitly say --skip-le?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

This is used when --no_clean appears. Sometimes user makes small changes on x86 only (e.g. pybind layer), they could skip the target platform like --skip_la or --skip_le.

Copy link
Contributor

Choose a reason for hiding this comment

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

Can you remind me what la is? le seems to be linux_embedding, if so, let's use the whole name just so it's easier to follow. Another comment is that, can we make le optional? I'd like to avoid patching it everywhere, and it seems like linux embedding isn't super common (?)

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

la stands for linux android and le will only be functional if user specifies "build.sh --le". It's commonly used in IoT devices, actually customers like Amazon have requirements for us to enable this.

Copy link
Contributor

@cccclai cccclai Sep 26, 2025

Choose a reason for hiding this comment

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

I see, glad that Amazon is requesting this! Question about the PR, if le will only be functional when users specifybuild.sh --le, why do we need to explicitly skip -le in setup.py. Also, a minor comment to use linux_embedding and linux_android so it's easier to understand the code

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

I think it is la in setup.py and we will rename the variable, thank you for the suggestion.

@chenweng-quic chenweng-quic force-pushed the dev_enable_le branch 6 times, most recently from 7afa780 to 902aea7 Compare October 1, 2025 06:23
@cccclai
Copy link
Contributor

cccclai commented Oct 2, 2025

I feel like some CI is failing, but I'm not sure if it's related...also static-llama-qnn seems cancelled somehow

@cccclai
Copy link
Contributor

cccclai commented Oct 2, 2025

After double check the log, I feel like this PR base commit is still old, can you rebase?

@chenweng-quic chenweng-quic force-pushed the dev_enable_le branch 3 times, most recently from be0f334 to d779ac4 Compare October 8, 2025 02:27
Copy link

meta-codesync bot commented Oct 8, 2025

@cccclai has imported this pull request. If you are a Meta employee, you can view this in D82227074.

@chenweng-quic chenweng-quic force-pushed the dev_enable_le branch 2 times, most recently from 2c80292 to 7e14ae0 Compare October 9, 2025 08:31
@cccclai
Copy link
Contributor

cccclai commented Oct 9, 2025

There seems to be an error

  File "executorch/examples/qualcomm/oss_scripts/whisper/whisper.py", line 430
SyntaxError: keyword argument repeated: shared_buffer

@chenweng-quic
Copy link
Collaborator

Hi @cccclai,
Could you take a look of the CI error?
"Lint / lintrunner-mypy" pipeline failed at a file which I did not touch.
"pull / test-qnn-wheel-packages-linux" pipelines failed due to torch not found.

@cccclai
Copy link
Contributor

cccclai commented Oct 16, 2025

"Lint / lintrunner-mypy" pipeline failed at a file which I did not touch.

Ah yeah, it was failing in main last week. I think rebasing should fix the issue

Summary:
- enable linux embedded support for toolchain:
  aarch64-oe-linux-gcc9.3, aarch64-oe-linux-gcc11.2 (SXR1230P, QCS9100)
- update document a bit
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. release notes: qualcomm Changes to the Qualcomm backend delegate

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants