Commit 72fec853 authored by A. Unique TensorFlower's avatar A. Unique TensorFlower Committed by Gunhan Gulsoy
Browse files

[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
parent 525b5ba5
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment