Hardware Plugin Pass Injection for Apple NPE
Nobody has claimed this yet.
- 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
AppleNPEPluginto 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
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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