[Relax] Introduce R.call_py_func operator for calling Python functions from Relax IR #18313
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR allows calling Python functions directly from Relax IR, where integration between Relax computations and Python/PyTorch operations can be supported.
Usage Example
THIS PR represents the final milestone in the Relax Python integration design, and completes the full feature set for Python/Relax interoperability. The complete Relax-Python integration ecosystem has been built upon the following key design principles:
Cross-level Calls
R.call_py_funcJust-in-time (JIT) Compilation
Conversion between Relax and Python Functions
R.nn.relu) are mapped to corresponding PyTorch APIs (e.g.,F.relu)call_tirandcall_dps_packedby converting PyTorch tensors to/from DLPack format