mirror of https://github.com/llvm/torch-mlir
a375ccf9da
The first use case is to annotate certain program constructs as either exported or private. In this commit we plumb it down to GlobalizeObjectGraph which makes use of this information. Recommended review order: 1. class_annotator.h/.cpp + `test/module_import/annotations/*` - New abstractions to communicate with Python code and annotate. 2. IR changes in TorchOps.td - Adding "private" attribute to various things. 3. ivalue_import.cpp changes - Module + ClassAnnotator = annotated IR 4. GlobalizeObjectGraph.cpp + tests - use new "private" attributes to create "private" IR. - also, tweak some of the op deleting mechanics, which was triggering some memory errors / assertions With this, we can run the classifier through and inline it as follows: ``` frontends/pytorch/utils/pt_util.py --import --exported-name forward ~/tmp/classifier.pt \ | npcomp-opt -torch-globalize-object-graph -inline ``` IR: https://gist.github.com/silvasean/32dcad9f6270557f412094a77cecdd69 |
||
---|---|---|
.. | ||
pytorch | ||
README.md | ||
__init__.py |
README.md
NPComp - Frontends
NPComp maintains in-tree frontends for various popular numeric-python based frameworks. In general these are:
- Considered optional components
- Target dialects maintained at the top-level of the project
- Maintained in isolation so as to facilitate moving them out to dedicated projects at an appropriate point of the lifecycle (i.e. if NPComp is successful as a general purpose target for such frameworks, then it may make sense to contribute/build each frontend to their respective up-stream project).
Frontends try to stylistically fit into the outer project except for when it is more clear/advantageous to align them with the conventions of the source project. This is approached on a case by case basis as needed. Deviations should be documented in a local style guide for the frontend.