Skip to content

Support benchmark using prebuilt artifacts #8246

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

Open
guangy10 opened this issue Feb 6, 2025 · 7 comments
Open

Support benchmark using prebuilt artifacts #8246

guangy10 opened this issue Feb 6, 2025 · 7 comments
Assignees
Labels
module: benchmark Issues related to the benchmark infrastructure module: user experience Issues related to reducing friction for users triaged This issue has been looked at a team member, and triaged and prioritized into an appropriate module

Comments

@guangy10
Copy link
Contributor

guangy10 commented Feb 6, 2025

🚀 The feature, motivation and pitch

Enable this for on-demand workflow only, to offer developers additional flexibility and efficiency.

Scenarios where benchmarking w/ prebuilt artifacts are needed:

  • Sometimes the pte model may come from outside, for example the model may come from external partners. Or the model is downloaded from the executorch community from Hugging Face, https://huggingface.co/executorch-community/DeepSeek-R1-Distill-Llama-8B/tree/main.
  • Developers who work on the runtime may not necessarily to re-export the same model all the time.
  • Developers who work on exporting may not need to build the banchmark app all the time

UX:

  • via GitHub UI
  • via script

Source of the artifacts to be used in the benchmark workflow:

We will need to define the UX to support this feature. For example, allow users to upload prebuilt artifacts via script. The script will return with links to the artifacts. Then users can schedule an on-demand workflow via UI, or users can do everything via the script.

Policy and TTL to keep the uploaded artifacts.

CC: @digantdesai @kimishpatel @cccclai

Alternatives

No response

Additional context

No response

RFC (Optional)

No response

cc @huydhn @kirklandsign @shoumikhin @mergennachin @byjlw

@guangy10 guangy10 added feature module: benchmark Issues related to the benchmark infrastructure module: user experience Issues related to reducing friction for users labels Feb 6, 2025
@github-project-automation github-project-automation bot moved this to To triage in ExecuTorch DevX Feb 6, 2025
@guangy10
Copy link
Contributor Author

guangy10 commented Feb 6, 2025

IMO this infra work can potentially benefit both #8249 and #8250

@digantdesai digantdesai added the triaged This issue has been looked at a team member, and triaged and prioritized into an appropriate module label Feb 6, 2025
@mergennachin mergennachin moved this from To triage to Ready in ExecuTorch DevX Feb 6, 2025
@huydhn
Copy link
Contributor

huydhn commented Feb 11, 2025

AI: Circle back with @kirklandsign and @shoumikhin on what pre-built artifacts that need to be there on the device besides the app and the export model

@shoumikhin
Copy link
Contributor

@huydhn if you're asking about the benchmarking app, we need to put all .xcframework under Frameworks, and all .pte under Resources, then build and run the app.

@guangy10
Copy link
Contributor Author

@shoumikhin @kirklandsign I believe @huydhn is referring to the new artifacts generated by the profilers, e.g. ETdump, chrome trace, simpleperf, etc. specifically, generated from these work:

For example, for users be able to accessible the artifacts and visualize in framegraphs, we will need to store the artifacts somewhere, e.g. S3. Same for Etdump.

@guangy10
Copy link
Contributor Author

@shoumikhin @kirklandsign fyi, Huy will be on leave from Feb 25, if you guys need help to store the artifacts in DB, or access the artifacts from the dashboard UI or showing the URL in the job log, Huy can help with it or give you a pointer before he in on leave.

@guangy10 guangy10 moved this to Ready in ExecuTorch Benchmark Feb 12, 2025
@guangy10
Copy link
Contributor Author

guangy10 commented Feb 12, 2025

Follow up on the discussion around supporting artifacts generated from profilers. I think if we can provide a generic script allow uploading arbitrary blobs (typically zipped) to S3, it should provide the flexibility to store any artifact from profiling. wdyt @shoumikhin @kirklandsign @huydhn?

@huydhn is there a size limit for uploading to S3? If yes, what it is?

Put together with the work in #8245, the UX would like what I described here: #8402 (comment)

@guangy10
Copy link
Contributor Author

Uploading from linux/macos runner should be ok per Huy.
Experiment to trigger an upload from device farm to see if there is a size limits

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
module: benchmark Issues related to the benchmark infrastructure module: user experience Issues related to reducing friction for users triaged This issue has been looked at a team member, and triaged and prioritized into an appropriate module
Projects
Status: In Progress
Status: Ready
Status: Cold Storage
Development

No branches or pull requests

5 participants