Skip to content
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

Build pip wheel and validate AOT workflow on different backends & host environments in CI #9019

Open
larryliu0820 opened this issue Mar 6, 2025 · 4 comments
Assignees
Labels
module: build/install Issues related to the cmake and buck2 builds, and to installing ExecuTorch triaged This issue has been looked at a team member, and triaged and prioritized into an appropriate module

Comments

@larryliu0820
Copy link
Contributor

larryliu0820 commented Mar 6, 2025

🚀 The feature, motivation and pitch

We need to guard our AOT workflow in CI, to make sure our pip wheel can give users out-of-the-box user experience.

In CI we should cover the flow of:

  • Build pip wheel on PR or trunk, for MacOS or Linux
    • This exists right now but need to leverage the artifact in following steps.
  • Install pip wheel
  • Export a simple model (MV3) with common backend delegation (XNNPACK, Coreml, QNN) and retrieve .pte files
  • Load the .pte files in python and run sample input (optional, depend on feasibility)
MacOS Linux
XNNPACK
CoreML
  • No need to run
QNN

Alternatives

No response

Additional context

No response

RFC (Optional)

No response

cc @lucylq

@larryliu0820 larryliu0820 self-assigned this Mar 6, 2025
@github-project-automation github-project-automation bot moved this to To triage in ExecuTorch Core Mar 6, 2025
@github-project-automation github-project-automation bot moved this to To triage in ExecuTorch DevX Mar 6, 2025
@iseeyuan iseeyuan added module: build/install Issues related to the cmake and buck2 builds, and to installing ExecuTorch triaged This issue has been looked at a team member, and triaged and prioritized into an appropriate module labels Mar 7, 2025
@jathu
Copy link
Contributor

jathu commented Mar 11, 2025

What are your thoughts on creating a new workflow just to check this flow?

For example:

# .github/workflows/just-works.yml

name: Just Works

on:
  pull_request:

jobs:
  configuration-matrix:
    strategy:
      matrix:
        os:
          - ubuntu-latest
          - macos-m1-stable
    runs-on: ${{ matrix.os }}
    steps:
      - uses: Build wheel
      - name: Install wheel
      - name: Test wheel on host
      - name: Test wheel on iOS
      - name: Test wheel on Android

This would have a few overlaps with build-wheels-m1.yml / build-wheels-linux. However, that workflow only runs when actually releasing the wheel — in fact it always attempts to upload the artifact. The main motivation for a separate workflow:

  • Focus on the core work flows we described in "Just Works": export → run on host → run on target
  • Don't interfere with the more sensitive artifact upload workflow
  • Run this workflow on every PR and main pushes

@larryliu0820
Copy link
Contributor Author

@jathu We actually build nightly wheels. I was hoping that we can extend the nightly wheel build job to include the test we want to add. Here's the nightly flow:

@jathu
Copy link
Contributor

jathu commented Mar 11, 2025

@larryliu0820 it would be great if we can do it in every PR, but nightly is good enough too. So we currently run a simple model test in the wheel workflow. We will be updating the workflow to build MV3, and also test the respective outputs on iOS and Android?

@larryliu0820
Copy link
Contributor Author

We will be updating the workflow to build MV3, and also test the respective outputs on iOS and Android?

Yeah, though the test may not have to be in the same environment as the nightly flow, because you may need a different docker container for Android test. I think we can figure out a way to write a new flow that depends on the nightly flow artifacts.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
module: build/install Issues related to the cmake and buck2 builds, and to installing ExecuTorch triaged This issue has been looked at a team member, and triaged and prioritized into an appropriate module
Projects
Status: To triage
Status: To triage
Development

No branches or pull requests

3 participants