mirror of https://github.com/llvm/torch-mlir
59a3f46795
With this, we can import BERT!
```
pt_util ~/tmp/bert.pt --import --exported-name=forward \
| npcomp-opt -torch-globalize-object-graph -inline -symbol-dce
```
https://gist.github.com/silvasean/fe7735ff5d065cc9216f7b0346d0e977
The test case here is a bit unconventional -- it isn't actually valid
Python. To figure out how to generate it I had to go search the PyTorch
codebase for "NumToTensor" and work backward. In this case I found
this
[code](
|
||
---|---|---|
.. | ||
README.md | ||
add3.py | ||
debug-info.py | ||
elif.py | ||
errors.py | ||
if.py | ||
list.py | ||
prim.py | ||
tuple.py | ||
types-bool.py | ||
types-none.py |
README.md
node_import
Most of the tests in this directory test the importing of TorchScript
torch::jit::Graph
's.
However, TorchScript graphs don't really correspond directly to anything on
the MLIR side. They are a weird combination of a context, builder, and
function and just holds a torch::jit::Block
. It is torch::jit::Node
and torch::jit::Block
which form the recursive structure analogous to
MLIR's operation/region/block.
torch::jit::Node
==mlir::Operation
,torch::jit::Block
==mlir::Region
containing singlemlir::Block
Hence the name of this directory and the corresponding code in node_importer.h/cpp.