pytorch / pytorch/executorch

In IR verifier check if any of the ops in the graph doesn't have a portable kernel

Open
#12,464 1 comment 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

module: exir
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

Open the contributing guide

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 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.