Skip to content

embedded: add ExecuTorch Vulkan learning path for Android - #3625

Merged
jasonrandrews merged 3 commits into
ArmDeveloperEcosystem:mainfrom
ashnaik-arm:main
Aug 14, 2026
Merged

embedded: add ExecuTorch Vulkan learning path for Android#3625
jasonrandrews merged 3 commits into
ArmDeveloperEcosystem:mainfrom
ashnaik-arm:main

Conversation

@ashnaik-arm

Copy link
Copy Markdown
Contributor

Add a new embedded learning path showing how to export "Llama 3.2 1B Instruct" with ExecuTorch, build the Android Vulkan runtime, and deploy, run, validate, and measure it on a Vivo X300 Pro.

  Add a new embedded learning path showing how to export Llama 3.2 1B
  Instruct with ExecuTorch, build the Android Vulkan runtime, and deploy,
  run, validate, and measure it on a Vivo X300 Pro.

Signed-off-by: Ash Naik <ash.naik@arm.com>
@ashnaik-arm
ashnaik-arm marked this pull request as ready for review August 12, 2026 14:11
- Build, deploy, validate, and troubleshoot the Android `llama_main` runner on a Vivo X300 Pro.

prerequisites:
- A Linux host with enough disk space for the ExecuTorch source tree, Android SDK and NDK, Vulkan SDK, and the Llama checkpoint.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

it probably doesn't need to be Linux? Can cross-compile from Mac or Windows (maybe easier in WSL admittedly)

- A Vivo X300 Pro or a similar Android phone with USB debugging enabled.
- Access to the gated Hugging Face repository `meta-llama/Llama-3.2-1B-Instruct`.
- Working familiarity with the shell, Python virtual environments, and Android ADB workflows.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

added prerequisite of Python 3.12 (either that or install it in one of the steps)


minutes_to_complete: 120

who_is_this_for: This Learning Path is for developers who want to export a Llama 3.2 model with ExecuTorch and run it on an Android phone through the Vulkan backend.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

good to make this line more general about model

Upon completion of this Learning Path, you will be able to:

- Prepare the Android SDK, NDK, ADB, and host Vulkan toolchain required for cross-compiling ExecuTorch.
- Fix the PyTorch version mismatch that can break ExecuTorch 1.4 builds on the host.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Is this a big enough / common enough problem that we want to feature it on the front page? (if it is a common issue, then it could belong here)


- Prepare the Android SDK, NDK, ADB, and host Vulkan toolchain required for cross-compiling ExecuTorch.
- Fix the PyTorch version mismatch that can break ExecuTorch 1.4 builds on the host.
- Export Llama 3.2 1B Instruct to a Vulkan-ready `.pte` using the same `8da4w` and KV-cache settings as the measured run.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Again, as a front page, might want the more general "Export an LLM to a vulkan-ready..."

- Android Studio or an equivalent Android SDK and NDK installation path.
- A phone connected over USB with developer mode and USB debugging enabled.
- Hugging Face access to download `meta-llama/Llama-3.2-1B-Instruct`.
- Sufficient storage for a multi-gigabyte checkpoint and exported `.pte`.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Could this be more specific? ie "At least xGB of storage free"


- A Linux machine that can build native and Android targets.
- Android Studio or an equivalent Android SDK and NDK installation path.
- A phone connected over USB with developer mode and USB debugging enabled.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

"An Android phone..."

@jasonrandrews
jasonrandrews merged commit 66ea8b2 into ArmDeveloperEcosystem:main Aug 14, 2026
1 check failed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Status: In Progress

Development

Successfully merging this pull request may close these issues.

5 participants