Skip to content

Make all executors execute tier 2 instructions (micro-ops) #113860

@markshannon

Description

@markshannon

Our plan proposes that we either execute all tier 2 code in the tier 2 interpreter or by jitting the code

However, our current executor interface allows calls to arbitrary function pointers.
We should remove that interface, requiring all optimizers to produce tier 2 micro-ops, which the VM is responsible for executing.

This will prevent low-level JITs like Cinder from using executors, but Cinder uses PyFunction_SetVectorcall to insert machine code anyway.
Higher level JITs like PyTorch dynamo, can potentially still use executors, as they provide a more powerful and flexible interface than PEP 523.

Linked PRs

Metadata

Metadata

Assignees

No one assigned

    Labels

    interpreter-core(Objects, Python, Grammar, and Parser dirs)performancePerformance or resource usage

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions