vx-lang / vx-lang/Vx

Hardware Plugin Pass Injection for Apple NPE

Open
#35 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

codegen enhancement runtime
Dominant language
Rust
Stars
14
Forks
2
Avg merge
13h 13m
Merged PRs (30d)
70

Description

Currently, we dispatch NPU operations (like those on the Apple Neural Engine) dynamically via npu_dispatch.mm and Objective-C++ wrappers using CoreML/Accelerate at runtime. While this works, it does not leverage our Compile-Time MLIR Pass Injection design.

Objective:
Fully implement the AppleNPEPlugin (in apple_npe.rs) so that it can inject proprietary MLIR passes and custom layout constraints at compile time.

Tasks:

  • Hook up AppleNPEPlugin to the main compiler pass manager.
  • Expose the hardware trait verification for supported ops.
  • Allow the plugin to annotate MLIR operations prior to final lowering.
  • Refactor the dispatcher to accept the plugin's lowered binary payload rather than doing runtime translation.

Contributor guide

No contributing guide indexed for this repository

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 by reading apple_npe.rs and tracing how the main compiler pass manager handles plugins. Then inspect npu_dispatch.mm and the Objective-C++ runtime path. Done means AppleNPEPlugin is connected to pass management, verifies supported operations, annotates MLIR operations, and the dispatcher accepts its lowered binary payload.

Written by the indexing model from the issue text.

Assessment

Tech stack
objective-c, rust
Domain
backend, compilers
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.