In IR verifier check if any of the ops in the graph doesn't have a portable kernel
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 5k
- Forks
- 1.2k
- Avg merge
- 2d 10h
- Merged PRs (30d)
- 581
Description
🚀 The feature, motivation and pitch
Currently the verifier logic only makes sure we have core ATen ops in the graph:
https://github.com/pytorch/executorch/blob/main/exir/verification/verifier.py#L126
The problem with this is that we still don't have 100% coverage of core ATen ops in portable kernel library (our default kernel library) so that even the verifier is happy it might run into issues when we run the .pte file in the runtime.
For example as of now adaptive_avgpool is marked as core but doesn't have portable kernel.
We want to enhance the verifier to give out warnings when this happens. We don't want to error out because it might be the case where user has a custom kernel library and is able to run this op.
Alternatives
No response
Additional context
No response
RFC (Optional)
No response
cc @JacobSzwejbka @angelayi
Contributor guide
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 in exir/verification/verifier.py around line 126, then trace how portable kernels are represented and how graph operators are checked. Use adaptive_avgpool as the stated example. Done means the verifier warns when an operator lacks a portable kernel while still allowing custom kernel libraries, without turning the condition into an error.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- compilers
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100