[XLA:TPU] Initial HLO parser/stringifier support for sparse formats
- Add methods for manipulating sparse literals to xla::Literal
- Make LayoutUtil::HumanString handle sparse layouts
- Make ShapeUtil::ParseShape handle sparse shapes
- Syntax for shapes has changed:
- Old way of expressing layouts still works, e.g. f32[1,2,3]{2,1,0}
- Can now make dense format explicit: f32[1,2,3]dense{2,1,0}
- Can express sparse layouts; the max_sparse_elements value is in the
braces, e.g.: f32[1,2,3]sparse{10}
- The shape should not include braces for the layout if the shape is scalar;
e.g. f32[]{} is not valid shape syntax.
- The shape should not include braces for the layout if the shape is a dense
rank-1 array; e.g. f32[10]{0} is not valid shape syntax
- Sparse literals use a dictionary-liky syntax, e.g.:
f32[2,3,4]sparse{10} {[0,1,2]: 10, [1,2,3]: 11}
- For rank-1 sparse arrays, the square brackets around indices may be omitted, e.g.:
f32[100]sparse{10} {5: 10, 20: 30}
PiperOrigin-RevId: 181813837
Loading
Please sign in to comment