pytorch / pytorch/executorch

Simplify qualcomm qnn backend setup

Open
#13,766 2 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

module: qnn
Dominant language
Python
Stars
5k
Forks
1.2k
Avg merge
2d 10h
Merged PRs (30d)
581

Description

🚀 The feature, motivation and pitch

As we try to move to a place where QNN SDK does not need to be downloaded, explicitly, from user, we want the setup to be simplified as well. At the moment we need to do two things. 1 setup QNN_SDK_ROOT and 2 change LD_LIBRARY_PATH https://github.com/pytorch/executorch/blob/main/docs/source/backends-qualcomm.md#setup-environment-variables. Neither of the two should be needed. Specifically the second part. If QNN_SDK_ROOT is already available why do we not use that to set this path. Specifically change https://github.com/pytorch/executorch/blob/main/backends/qualcomm/utils/utils.py#L1036 to query the QNN_SDK_ROOT to set the path. SImilar to here https://github.com/pytorch/executorch/blob/main/backends/qualcomm/utils/utils.py#L1176.

However, more importantly, I would like users to not even have to setup QNN_SDK_ROOT. When we get to a point where SDK is downloaded automatically, we should set this path ourselves.

cc: @cccclai @shewu-quic

Alternatives

No response

Additional context

No response

RFC (Optional)

No response

cc @cccclai @cbilgin

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start in backends/qualcomm/utils/utils.py at the referenced locations around lines 1036 and 1176, then read the setup instructions in docs/source/backends-qualcomm.md. Determine how the current environment variables are consumed and define completion for both deriving the library path from QNN_SDK_ROOT and the longer-term automatic SDK setup, without leaving the setup behavior ambiguous.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
embedded-iot, machine-learning
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.