Tutorials
Guided introduction to layouts and layout algebra using CuTe IR's MLIR syntax. If you are new to CuTe, work through these in order. If you already know C++ CuTe, use them as a quick map from C++ concepts to their MLIR equivalents.
.. toctree:: :maxdepth: 1
cute_concepts/01_cute_types cute_concepts/02_layout_algebra cute_concepts/03_advanced_constructors cute_concepts/04_accessors_and_size_index cute_concepts/05_arithmetic
Suggested reading order:
- :doc:
CuTe Algebra Types <cute_concepts/01_cute_types>— the core!cute.layouttype, hierarchical shapes / strides / coords, static vs dynamic leaves, tiles, composed layouts, and swizzles. - :doc:
Layout algebra <cute_concepts/02_layout_algebra>— the algebra ops:composition,coalesce,complement,slice/dice, inverses, products, divides. - :doc:
Advanced constructors <cute_concepts/03_advanced_constructors>— shorthand layout constructors (make_identity_layout,make_ordered_layout,make_layout_like). - :doc:
Accessors and size / indexing <cute_concepts/04_accessors_and_size_index>— read components out of CuTe values (get_shape,get_stride,get,select,get_leaves,get_scalars) and compute sizes / coordinate-index conversions (size,cosize,crd2idx,idx2crd). - :doc:
Arithmetic on CuTe values <cute_concepts/05_arithmetic>— per-leaf tuple arithmetic and predicates (tuple_add,tuple_sub,shape_div,ceil_div,equal,elem_less).