tree 083f76dc1614fbbe9d9254cc699c9ed15db2ab42
parent 11089e899da87054637404a0484074ca593c22da
author MaheshRavishankar <1663364+MaheshRavishankar@users.noreply.github.com> 1708672701 -0800
committer GitHub <noreply@github.com> 1708672701 -0800
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsFcBAABCAAQBQJl2Ea9CRC1aQ7uu5UhlAAAY7EQAKbFhQ5KDmzo0R5k7EzoRO4F
 luK/QtEdBfDbdbA8Dvk3H3959TQd/IO4zbxJT2xTmkUN9nAbHRZRZkNcwIfEs8D8
 Wx7avccmDTumnD97JEDlpc9Hwx/mSOof3Aju/Cdwm8GTCCdMNQGXdoZNmNOFyxH2
 kAtepi0eQ4P+8iYN5FL50S3rUdlSUC3jT7MCZyXZOImAyabijWHc5dEQQ9A64e+F
 VAdVilY6LqE7yv8Q3inBZSTIjBC0UYSZoVpRX3dYLof8ubUcwmcI/1htWyDqN73M
 aL9vDg6bQP5FoWonhzB6yYhix5WBFriG0HPqv3dpcY1Amq3uvIFVSuTre87sauZd
 U9um2PcnJFpCbe8IWnNMG7gSeHRYsN7o3xn9QT38EOSfXbRHN8uc/KXwYXE0rlvh
 NY7Xr6O6unA0cVUOJ93hMfNHIiGs5hEhpPDeYh1JAB/7ASEGYPKcyPfR+nMVkh5P
 QY9ZcLpoGgLInfTskQmvi0qywTJEnHQZFZlJRAPIxpll2/to+IWp09jWbTkrP75q
 8TsyqTAY057VkwVreVjnwLWwH7KYoUGbN+yoGczQOpvPngI0KY4apasqlziXMciV
 s2rSTf8pkhWyFI/kRfQod3bHADmNHRzNd1x/1JJyM8/D+Txps4zXFv3mzJpVTmIv
 pbkroHtksKhyzGRrfG+3
 =5zl8
 -----END PGP SIGNATURE-----
 

Add support for using PDL to replicate the functionality in MLP sample that uses Transform dialect. (#16453)

This PR adds a sample that uses PDL to match a subgraph corresponding to
MLP and replaces with a `flow.dispatch`, that invokes an external
function which is provided by a system plugin.

To enable this an new pass `--iree-preprocessing-apply-pdl-patterns` is
added that has an option to read in the PDL pattern file and applies it
to the input program.
To support this a custom rewrite function `rewriteAsFlowDispatch` is
added that takes as arguments
- the root of the matched DAG (this is replaced by the matcher)
- A list of values that represent the dynamic dimensions of the results
of the root
- The name of the external function provided by the plugin
- The operands to the external function.

What is missing is the support to specify the workload and number of
workgroups to use while invoking the external function. This could be
solved by having a custom PDL operation (if possible) that accepts the
workload and a region that computes the number of workgroups based on
the workload. For now that is not handled, and the nubmer of workgroups
is set to `{1, 1, 1}`. This is still a useful thing to
prototype/checkpoint, but for any reasonable deployment this needs to be
fixed.

This PR adds a sample that matches the input in TOSA dialect. Due to the
TOSA dialect definition, the matmul now has a batch dimension as well.
To be possible to use the same plugin implementation, the `llvm.bareptr`
calling convention is used for the external function so that the inputs
(outputs) are passed (passed by reference) using pointer, offset only,
and `memref.extract_strided_metadata` is used to extract this
information from the multi-dimensional memrefs within the dispatch.