mirror of https://github.com/llvm/torch-mlir
179105ca3e
These tests pass on the reference backend. - Add aten.linear op + shape xfer function + ATen->Linalg lowering. - Note: this needs to be more automated, and needs to cover more cases. - Current not implemented caveats: - size-1 broadcasting for bias vector (either static-size-1 or ? case) - higher-rank aten.linear ops (not produced by torch.nn.Linear though) - type promotion (still don't even know the exact rules here) - Add folder for torch.derefine op. Now the inliner can clean it up as it inlines. (call boundaries are a main place we need to insert torch.derefine) This is brittle -- the other important case is control flow which will need to be handled via an extension to RefineTypes.cpp (as will more robust call handling). River has an in-flight patch to update it to the new dataflow framework so I didn't want to do anything intrusive here. - Also adjust torch.derefine syntax to use the keyword `to` instead of `->`, as most type-only, cast-like ops do. |
||
---|---|---|
.. | ||
README.md | ||
add3.py | ||
debug-info.py | ||
elif.py | ||
errors.py | ||
function-derefine.py | ||
if.py | ||
list.py | ||
loop.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.