GraphBLAS Structuralizing Pass¶
These tutorials and examples will cover how to use the GraphBLAS dialect’s --graphblas-structuralize
passes by using the JIT Engine to lower several ops from the GraphBLAS dialect into a form that can be more easily optimized by the --graphblas-optimize
pass. This mostly happens by lowering certain ops into their more generic equivalents, e.g. lowering a graphblas.apply
op into a graphblas.apply_generic
op, that are more easily optimizable by the --graphblas-optimize
pass via op fusion and similar optimizations.
These tutorials assume the completion of the GraphBLAS Lowering Pass tutorials and knowledge of the content in the GraphBLAS Dialect Op Reference (in particular, the graphblas.*_generic
ops).
The content of the tutorials are somewhat sequentially dependent as some later tutorials assume completion of previous tutorials.
Rather than using the JIT engine to lower the MLIR code examples down to something executable, these tutorials will solely use the --graphblas-structuralize
pass to demonstrate the code transformations in order to demonstrate the expected behavior. Since the transformations are pretty simple, these tutorials will not do a deep dive but will act more as example demonstrations.