Skip to main content

PTO-TILE-MODEL-SHAPE-CUBE-CELL

PTO-TILE-MODEL-SHAPE-CUBE-CELL

ASL pseudocode

The complete ASL owner is shown directly below.

// PTO-UNIT: {"id":"PTO-TILE-MODEL-SHAPE-CUBE-CELL","surface":"tile","classification":["model","shape","cube-cell"],"depends_on":["PTO-TILE-MODEL-SHAPE-VALID-REGION"]}// NDF-BEGIN: PTO-CUBE-CELL-STATE-001// ndf: kind=contract level=L1 layer=tile status=accepted// Local CUBE layouts MUST use the assigned 128-byte width-parametric CELL// mappings, derive storage independently of valid M/N/K, and reject unsupported// types or insufficient per-PE capacity before effects.// NDF-END: PTO-CUBE-CELL-STATE-001
// NDF-BEGIN: PTO-CUBE-MATRIX-SCALE-CELL-001// ndf: kind=contract level=L1 layer=tile status=accepted// Matrix scale Tiles in CUBE_M32 MUST use a two-dimensional 128-byte CellReg// grid with column/K repeat fast and 32-row repeat slow. Partial final group// slots and final row blocks MUST remain invalid storage tail. This generic// grid MUST NOT expand primary A/C/D legality beyond one M16/M32 row block.// NDF-END: PTO-CUBE-MATRIX-SCALE-CELL-001
pure func TileLayoutIsCube(layout: TileLayout) => booleanbegin    return layout == TileLayout_CUBE_M16 ||           layout == TileLayout_CUBE_M32 ||           layout == TileLayout_CUBE_N8;end;
pure func TileCubeDataTypeSupported(data_type: TileDataType) => booleanbegin    let element_bits = TileElementBits(data_type);    return element_bits != 64;end;
pure func TileCubeCellRows(layout: TileLayout,                           data_type: TileDataType)    => integer {0,4,8,16,32}begin    if !TileLayoutIsCube(layout) ||       !TileCubeDataTypeSupported(data_type) then        return 0;    end;    if layout == TileLayout_CUBE_M16 then return 16;    elsif layout == TileLayout_CUBE_M32 then return 32;    end;    case TileElementBits(data_type) of        when 32 => return 4;        when 16 => return 8;        when 8 => return 16;        when 4 => return 32;        otherwise => return 0;    end;end;
pure func TileCubeCellColumns(layout: TileLayout,                              data_type: TileDataType)    => integer {0,1,2,4,8,16}begin    if !TileLayoutIsCube(layout) ||       !TileCubeDataTypeSupported(data_type) then        return 0;    end;    if layout == TileLayout_CUBE_N8 then return 8; end;    case TileElementBits(data_type) of        when 32 =>            return if layout == TileLayout_CUBE_M16 then 2 else 1;        when 16 =>            return if layout == TileLayout_CUBE_M16 then 4 else 2;        when 8 =>            return if layout == TileLayout_CUBE_M16 then 8 else 4;        when 4 =>            return if layout == TileLayout_CUBE_M16 then 16 else 8;        otherwise => return 0;    end;end;
pure func TileCubeAlignedExtent(value: integer {0..65535},                                quantum: integer {1..65535})    => integer {0..65535}begin    if value == 0 then return 0; end;    let groups: integer = ((value - 1) DIVRM quantum) + 1;    let aligned: integer = groups * quantum;    if aligned > 65535 then return 0; end;    return aligned as integer {1..65535};end;
pure func TileCubeStorageRows(layout: TileLayout,                              valid_rows: integer {0..65535},                              data_type: TileDataType)    => integer {0..65535}begin    let cell_rows = TileCubeCellRows(layout, data_type);    if cell_rows == 0 || valid_rows == 0 then return 0; end;    if layout == TileLayout_CUBE_N8 ||       layout == TileLayout_CUBE_M32 then        return TileCubeAlignedExtent(valid_rows,            cell_rows as integer {1..65535});    end;    if valid_rows > cell_rows then return 0; end;    return cell_rows as integer {1..65535};end;
pure func TileCubeStorageColumns(layout: TileLayout,                                 valid_columns: integer {0..65535},                                 data_type: TileDataType)    => integer {0..65535}begin    let cell_columns = TileCubeCellColumns(layout, data_type);    if cell_columns == 0 || valid_columns == 0 then return 0; end;    return TileCubeAlignedExtent(valid_columns,        cell_columns as integer {1..65535});end;
pure func TileCubeKRepeat(layout: TileLayout,                          valid_rows: integer {0..65535},                          valid_columns: integer {0..65535},                          data_type: TileDataType)    => integer {0..65535}begin    let cell_rows = TileCubeCellRows(layout, data_type);    let cell_columns = TileCubeCellColumns(layout, data_type);    if cell_rows == 0 || cell_columns == 0 then return 0; end;    if layout == TileLayout_CUBE_N8 then        let storage_rows = TileCubeStorageRows(layout, valid_rows, data_type);        if storage_rows == 0 then return 0; end;        let row_divisor = cell_rows as integer {1..32};        return (storage_rows DIVRM row_divisor) as integer {1..65535};    end;    let storage_columns = TileCubeStorageColumns(        layout, valid_columns, data_type);    if storage_columns == 0 then return 0; end;    let column_divisor = cell_columns as integer {1..16};    return (storage_columns DIVRM column_divisor) as integer {1..65535};end;
pure func TileCubeNRepeat(layout: TileLayout,                          valid_rows: integer {0..65535},                          valid_columns: integer {0..65535},                          data_type: TileDataType)    => integer {0..8192}begin    if !TileLayoutIsCube(layout) ||       !TileCubeDataTypeSupported(data_type) || valid_columns == 0 then        return 0;    end;    if layout == TileLayout_CUBE_M32 then        let storage_rows = TileCubeStorageRows(            layout, valid_rows, data_type);        if storage_rows == 0 then return 0; end;        return (storage_rows DIVRM 32) as integer {1..2048};    end;    if layout != TileLayout_CUBE_N8 then return 1; end;    let storage_columns = TileCubeStorageColumns(        layout, valid_columns, data_type);    if storage_columns == 0 then return 0; end;    return (storage_columns DIVRM 8) as integer {1..8192};end;
pure func TileCubeCellCount(layout: TileLayout,                            valid_rows: integer {0..65535},                            valid_columns: integer {0..65535},                            data_type: TileDataType)    => integer {0..16384}begin    let k_repeat = TileCubeKRepeat(        layout, valid_rows, valid_columns, data_type);    let n_repeat = TileCubeNRepeat(        layout, valid_rows, valid_columns, data_type);    if k_repeat == 0 || n_repeat == 0 then return 0; end;    let cells: integer = k_repeat * n_repeat;    if cells > 16384 then return 0; end;    return cells as integer {1..16384};end;
readonly func TileCubeStorageElements(layout: TileLayout,                                  valid_rows: integer {0..65535},                                  valid_columns: integer {0..65535},                                  data_type: TileDataType)    => integer {0..16384}begin    let cells = TileCubeCellCount(        layout, valid_rows, valid_columns, data_type);    let cell_rows = TileCubeCellRows(layout, data_type);    let cell_columns = TileCubeCellColumns(layout, data_type);    if cells == 0 || cell_rows == 0 || cell_columns == 0 then return 0; end;    let elements: integer = cells * cell_rows * cell_columns;    if elements > PTO_MODEL_TILE_ELEMENTS then return 0; end;    return elements as integer {1..16384};end;
pure func TileCubeRequiredBytes(layout: TileLayout,                                valid_rows: integer {0..65535},                                valid_columns: integer {0..65535},                                data_type: TileDataType)    => integer {0..262144}begin    let cells = TileCubeCellCount(        layout, valid_rows, valid_columns, data_type);    if cells == 0 then return 0; end;    let required: integer = cells * PTO_TILE_CELL_BYTES;    if required > 262144 then return 0; end;    return required as integer {128..262144};end;
readonly func TileCubeDescriptorShapeLegal(    capacity_bytes: integer {0..262144},    valid_rows: integer {0..65535},    valid_columns: integer {0..65535},    data_type: TileDataType,    layout: TileLayout) => booleanbegin    if !TileLayoutIsCube(layout) ||       !TileCubeDataTypeSupported(data_type) ||       !TileCapacityIsLegal(capacity_bytes) ||       valid_rows == 0 || valid_columns == 0 then        return FALSE;    end;    let storage_rows = TileCubeStorageRows(layout, valid_rows, data_type);    let storage_columns = TileCubeStorageColumns(        layout, valid_columns, data_type);    let storage_elements = TileCubeStorageElements(        layout, valid_rows, valid_columns, data_type);    let required_bytes = TileCubeRequiredBytes(        layout, valid_rows, valid_columns, data_type);    return storage_rows != 0 && storage_columns != 0 &&           storage_elements != 0 && required_bytes != 0 &&           valid_rows <= storage_rows &&           valid_columns <= storage_columns &&           required_bytes <= capacity_bytes;end;
pure func TileCubeCellElementIndex(    layout: TileLayout,    data_type: TileDataType,    inner_row: integer {0..31},    inner_column: integer {0..31})    => integer {0..255}begin    let cell_rows = TileCubeCellRows(layout, data_type);    let cell_columns = TileCubeCellColumns(layout, data_type);    assert cell_rows != 0 && cell_columns != 0;    assert inner_row < cell_rows && inner_column < cell_columns;    if layout == TileLayout_CUBE_N8 then        return (inner_column * cell_rows + inner_row)            as integer {0..255};    end;    var mapped_column = inner_column;    if layout == TileLayout_CUBE_M16 &&       TileElementBits(data_type) == 4 then        if inner_column < 4 then mapped_column = inner_column;        elsif inner_column < 8 then            mapped_column = (inner_column + 4) as integer {0..31};        elsif inner_column < 12 then            mapped_column = (inner_column - 4) as integer {0..31};        else mapped_column = inner_column;        end;    end;    return (inner_row * cell_columns + mapped_column)        as integer {0..255};end;
readonly func TileCubePayloadIndex(    tile: TileInfo,    row: integer {0..65535},    column: integer {0..65535})    => ModelTileElementIndexbegin    assert TileLayoutIsCube(tile.layout);    assert row < tile.rows && column < tile.columns;    let cell_rows = TileCubeCellRows(tile.layout, tile.data_type);    let cell_columns = TileCubeCellColumns(tile.layout, tile.data_type);    let k_repeat = TileCubeKRepeat(tile.layout, tile.valid_rows,        tile.valid_columns, tile.data_type);    assert cell_rows != 0 && cell_columns != 0 && k_repeat != 0;    let row_divisor = cell_rows as integer {1..32};    let column_divisor = cell_columns as integer {1..16};    var cell_index: integer = 0;    var inner_row: integer = 0;    var inner_column: integer = 0;    if tile.layout == TileLayout_CUBE_N8 then        let cell_k = (row DIVRM row_divisor) as integer {0..16383};        let cell_n = (column DIVRM column_divisor) as integer {0..8191};        cell_index = cell_n * k_repeat + cell_k;        inner_row = row MOD row_divisor;        inner_column = column MOD column_divisor;    elsif tile.layout == TileLayout_CUBE_M32 then        let cell_row = (row DIVRM row_divisor)            as integer {0..2047};        let cell_column = (column DIVRM column_divisor)            as integer {0..65535};        cell_index = cell_row * k_repeat + cell_column;        inner_row = row MOD row_divisor;        inner_column = column MOD column_divisor;    else        cell_index = column DIVRM column_divisor;        inner_row = row;        inner_column = column MOD column_divisor;    end;    let cell_elements: integer = cell_rows * cell_columns;    let local = TileCubeCellElementIndex(tile.layout, tile.data_type,        inner_row as integer {0..31}, inner_column as integer {0..31});    let index: integer = cell_index * cell_elements + local;    assert index < PTO_MODEL_TILE_ELEMENTS;    return index as ModelTileElementIndex;end;

Architecture behavior

This internal model unit is documented through its normative ASL/NDF owners and validation evidence; it has no reader-guide migration target.

NDF clauses

Bodies come from owning ASL. Dragging or buttons change only this page-session view order.

    1. surfaceTILE
    2. ownerPTO-TILE-MODEL-SHAPE-CUBE-CELL
    3. categoryCUBE-CELL-STATE
    4. case001

    Normative contract

    contract · L1 · accepted

    Local CUBE layouts MUST use the assigned 128-byte width-parametric CELL mappings, derive storage independently of valid M/N/K, and reject unsupported types or insufficient per-PE capacity before effects.

    Sources and references
    Complete stable ID
    PTO-CUBE-CELL-STATE-001
    Source path
    asl/tile/model/shape/cube-cell.asl
    Affected units
    PTO-TILE-MODEL-SHAPE-CUBE-CELL
    Source SHA-256
    44b94b34ae8927036a545aff963a206c746c9ec6b33f6d25093517b8023e462e
    Clause SHA-256
    639d3ed572b6d565f22b985657749a04cb3bd77e16b540ab5e4b57b3d210218b
    Open exact canonical source ↗
    1. surfaceTILE
    2. ownerPTO-TILE-MODEL-SHAPE-CUBE-CELL
    3. categoryCUBE-MATRIX-SCALE-CELL
    4. case001

    Normative contract

    contract · L1 · accepted

    Matrix scale Tiles in CUBE_M32 MUST use a two-dimensional 128-byte CellReg grid with column/K repeat fast and 32-row repeat slow. Partial final group slots and final row blocks MUST remain invalid storage tail. This generic grid MUST NOT expand primary A/C/D legality beyond one M16/M32 row block.

    Sources and references
    Complete stable ID
    PTO-CUBE-MATRIX-SCALE-CELL-001
    Source path
    asl/tile/model/shape/cube-cell.asl
    Affected units
    PTO-TILE-MODEL-SHAPE-CUBE-CELL
    Source SHA-256
    44b94b34ae8927036a545aff963a206c746c9ec6b33f6d25093517b8023e462e
    Clause SHA-256
    97e96ffb21d461a036ab8f8a3f718364c7f6d84e6ca3fc2355219d04cca0fb1d
    Open exact canonical source ↗

Evidence index

23 matching entries

Executable evidence14
  • Release and architectural reset clear every persistent CUBE descriptor field
    1. surfaceARCH
    2. ownerPTO-ARCH-PROFILE-RESET
    3. categorySTATE-TRANSITION
    4. case001
    Show exact test source
    Sources and references
    Complete stable ID
    PTO-AVS-ARCH-CUBE-RESET-001
    Path
    tests/asl/arch/profile/reset/arch-state-cube-reset-001.asl
    Kind / role
    state-transition
    Requirements
    PTO-CUBE-CELL-STATE-001
    Pass condition
    a configured CUBE Tile returns to the ordinary unallocated zero-geometry state after release and after reset
    SHA-256
    d95eb48711555ae060a0aca82c05bd8d295cb168402938142e51bbfbe4e26602
    Open exact source ↗ for PTO-AVS-ARCH-CUBE-RESET-001
  • CUBE allocation publishes persistent aligned descriptor geometry without defining payload
    1. surfaceTILE
    2. ownerPTO-TILE-MODEL-STATE-ALLOCATION
    3. categorySTATE-TRANSITION
    4. case001
    Show exact test source
    Sources and references
    Complete stable ID
    PTO-AVS-TILE-CUBE-ALLOCATE-001
    Path
    tests/asl/tile/model/state/allocation/tile-state-cube-allocate-001.asl
    Kind / role
    state-transition
    Requirements
    PTO-CUBE-CELL-STATE-001
    Pass condition
    a 13 by 19 FP16 N8 Tile records 16 by 24 storage six CELLs and zero defined valid elements
    SHA-256
    98b1a87c3736c35aec627bd9249037ac3ebdd39f43949bd6ece2634e71c95f28
    Open exact source ↗ for PTO-AVS-TILE-CUBE-ALLOCATE-001
  • CUBE CELL descriptor legality rejects unsupported dimensions types and capacity before effects
    1. surfaceTILE
    2. ownerPTO-TILE-MODEL-SHAPE-CUBE-CELL
    3. categoryFAULT
    4. case005
    Show exact test source
    Sources and references
    Complete stable ID
    PTO-AVS-TILE-CUBE-CELL-CAPACITY-005
    Path
    tests/asl/tile/model/shape/cube-cell/tile-fault-cube-cell-capacity-005.asl
    Kind / role
    fault
    Requirements
    PTO-CUBE-CELL-STATE-001, PTO-CUBE-MATRIX-SCALE-001
    Pass condition
    Exact capacity and HiF4X2 pass while one-byte-short, zero-dimension, primary-M row overflow, and b64 tuples reject
    SHA-256
    a518c7987c776063ec7a778c9b451decc8b62da352c8f7cc22999ff5dc71b870
    Open exact source ↗ for PTO-AVS-TILE-CUBE-CELL-CAPACITY-005
  • CUBE M16 b4 uses the assigned two-word interleave
    1. surfaceTILE
    2. ownerPTO-TILE-MODEL-SHAPE-CUBE-CELL
    3. categoryEXECUTION
    4. case002
    Show exact test source
    Sources and references
    Complete stable ID
    PTO-AVS-TILE-CUBE-CELL-M16-B4-002
    Path
    tests/asl/tile/model/shape/cube-cell/tile-exec-cube-cell-m16-b4-002.asl
    Kind / role
    execution
    Requirements
    PTO-CUBE-CELL-STATE-001
    Pass condition
    logical columns map to physical nibble positions 0 1 2 3 8 9 10 11 4 5 6 7 12 13 14 15
    SHA-256
    8ff9b2bd9fe504b3ebbe0edecac34d01baaedc67f2db97dd98c9437ee005d984
    Open exact source ↗ for PTO-AVS-TILE-CUBE-CELL-M16-B4-002
  • CUBE N8 multi-CELL storage uses K-fast and N-slow repeat order
    1. surfaceTILE
    2. ownerPTO-TILE-MODEL-SHAPE-CUBE-CELL
    3. categoryEXECUTION
    4. case003
    Show exact test source
    Sources and references
    Complete stable ID
    PTO-AVS-TILE-CUBE-CELL-ORDER-003
    Path
    tests/asl/tile/model/shape/cube-cell/tile-exec-cube-cell-order-003.asl
    Kind / role
    execution
    Requirements
    PTO-CUBE-CELL-STATE-001
    Pass condition
    a 13 by 19 FP16 B shape has six CELLs and distinguishes n0k1 from n1k0 payload positions
    SHA-256
    d936cfc06b2d37539e9b4434ff8ee3902db9a99c871ab33c2dc509817e7c5547
    Open exact source ↗ for PTO-AVS-TILE-CUBE-CELL-ORDER-003
  • CUBE valid dimensions may be non-powers-of-two and derive aligned storage tails
    1. surfaceTILE
    2. ownerPTO-TILE-MODEL-SHAPE-CUBE-CELL
    3. categoryBOUNDARY
    4. case004
    Show exact test source
    Sources and references
    Complete stable ID
    PTO-AVS-TILE-CUBE-CELL-TAIL-004
    Path
    tests/asl/tile/model/shape/cube-cell/tile-bound-cube-cell-tail-004.asl
    Kind / role
    boundary
    Requirements
    PTO-CUBE-CELL-STATE-001
    Pass condition
    N8 and M layouts round physical storage while retaining valid dimensions 3 5 13 and 19
    SHA-256
    a100cd72ee311876e532651ec04126d673081178b8f25e5fb5a97d19e3adc8ee
    Open exact source ↗ for PTO-AVS-TILE-CUBE-CELL-TAIL-004
  • CUBE CELL geometry is exactly 128 bytes for each assigned width and layout
    1. surfaceTILE
    2. ownerPTO-TILE-MODEL-SHAPE-CUBE-CELL
    3. categoryBOUNDARY
    4. case001
    Show exact test source
    Sources and references
    Complete stable ID
    PTO-AVS-TILE-CUBE-CELL-WIDTH-001
    Path
    tests/asl/tile/model/shape/cube-cell/tile-bound-cube-cell-width-001.asl
    Kind / role
    boundary
    Requirements
    PTO-CUBE-CELL-STATE-001, PTO-CUBE-MATRIX-SCALE-001
    Pass condition
    M16 M32 and N8 return assigned b32 b16 b8 and packed-b4 dimensions including HiF4X2, while b64 rejects
    SHA-256
    82cd00ec78a0d77487bedbb1c5818f0ae378f029f8a8c16d410c02309468bd9f
    Open exact source ↗ for PTO-AVS-TILE-CUBE-CELL-WIDTH-001
  • CUBE descriptors are legal state but remain unavailable to generic Tile consumers
    1. surfaceTILE
    2. ownerPTO-TILE-MODEL-LEGALITY-DESCRIPTOR-SHAPE
    3. categoryFAULT
    4. case001
    Show exact test source
    Sources and references
    Complete stable ID
    PTO-AVS-TILE-CUBE-GENERIC-001
    Path
    tests/asl/tile/model/legality/descriptor-shape/tile-fault-cube-generic-001.asl
    Kind / role
    fault
    Requirements
    PTO-CUBE-CELL-STATE-001
    Pass condition
    a dense-looking M16 FP16 descriptor passes CUBE legality while generic indexing and descriptor legality reject it
    SHA-256
    190d4e0ef1796f429474685276443fe897968fe12507d509c5ce2b98409e76e4
    Open exact source ↗ for PTO-AVS-TILE-CUBE-GENERIC-001
  • Persistent CUBE layouts are legal only in Local Matrix storage
    1. surfaceTILE
    2. ownerPTO-TILE-MODEL-STATE-ALLOCATION
    3. categoryFAULT
    4. case003
    Show exact test source
    Sources and references
    Complete stable ID
    PTO-AVS-TILE-CUBE-LOCATION-003
    Path
    tests/asl/tile/model/state/allocation/tile-fault-cube-location-003.asl
    Kind / role
    fault
    Requirements
    PTO-CUBE-CELL-STATE-001
    Pass condition
    Vector configuration rejects without allocation and a location-mutated descriptor fails CUBE legality
    SHA-256
    06248ca5f81661c842628ada347c465a4b869d849dbfffbfbd8a49cab84a0220
    Open exact source ↗ for PTO-AVS-TILE-CUBE-LOCATION-003
  • Generic CUBE_M32 scale storage uses a two-dimensional 128-byte CellReg grid.
    1. surfaceTILE
    2. ownerPTO-TILE-MODEL-SHAPE-CUBE-CELL
    3. categoryBOUNDARY
    4. case004
    Show exact test source
    Sources and references
    Complete stable ID
    PTO-AVS-TILE-CUBE-M32-GRID-004
    Path
    tests/asl/tile/model/shape/cube-cell/tile-bound-cube-m32-grid-004.asl
    Kind / role
    boundary
    Requirements
    PTO-CUBE-MATRIX-SCALE-CELL-001
    Pass condition
    MX G5 N33 and HiF4 G2 N33 each require four cells in K-fast and N-slow order, with partial final group and row tails outside the valid region.
    SHA-256
    5173532f317556b669c233497d279487c05829f4f58cce8e08041fa1aa177d89
    Open exact source ↗ for PTO-AVS-TILE-CUBE-M32-GRID-004
  • CUBE physical positions outside the valid region receive PadValue without becoming valid elements
    1. surfaceTILE
    2. ownerPTO-TILE-MODEL-DEFINEDNESS-ELEMENTS
    3. categorySTATE-TRANSITION
    4. case001
    Show exact test source
    Sources and references
    Complete stable ID
    PTO-AVS-TILE-CUBE-PADDING-001
    Path
    tests/asl/tile/model/definedness/elements/tile-state-cube-padding-001.asl
    Kind / role
    state-transition
    Requirements
    PTO-CUBE-CELL-STATE-001
    Pass condition
    K-tail N-tail and final physical positions contain FP16 Max and are physically defined while valid elements remain undefined
    SHA-256
    711adcf263934fb9acae9141b472b637c6c8a64e219ff0463e66f1ae04b3d8d6
    Open exact source ↗ for PTO-AVS-TILE-CUBE-PADDING-001
  • Rejected CUBE reconfiguration preserves the complete existing Tile and capacity accounting
    1. surfaceTILE
    2. ownerPTO-TILE-MODEL-STATE-ALLOCATION
    3. categoryFAULT
    4. case002
    Show exact test source
    Sources and references
    Complete stable ID
    PTO-AVS-TILE-CUBE-RECONFIGURE-002
    Path
    tests/asl/tile/model/state/allocation/tile-fault-cube-reconfigure-002.asl
    Kind / role
    fault
    Requirements
    PTO-CUBE-CELL-STATE-001
    Pass condition
    an undersized N8 replacement returns false without changing descriptor payload definedness mask or capacity
    SHA-256
    999f9b2a27e09baa81fb27ec6934947e9987f32880125c88d818fa06fb07d5ac
    Open exact source ↗ for PTO-AVS-TILE-CUBE-RECONFIGURE-002
  • Shared Tile schema preflight rejects persistent CUBE layouts before allocation or effects
    1. surfaceTILE
    2. ownerPTO-TILE-MODEL-STATE-SHARED-REGISTERS
    3. categoryFAULT
    4. case001
    Show exact test source
    Sources and references
    Complete stable ID
    PTO-AVS-TILE-CUBE-SHARED-REJECT-001
    Path
    tests/asl/tile/model/state/shared-registers/tile-fault-cube-shared-001.asl
    Kind / role
    fault
    Requirements
    PTO-CUBE-CELL-STATE-001
    Pass condition
    dense-looking M16 descriptor update and unallocated Shared read schema both reject while Shared capacity remains zero
    SHA-256
    3086ae6ab27e2ef9bccfe577e38ff89c5fcff7660d5e699b492750eee7f61d00
    Open exact source ↗ for PTO-AVS-TILE-CUBE-SHARED-REJECT-001
  • PTO-TILE-MODEL-SHAPE-CUBE-CELL compiles as an independent normative unit
    1. surfaceTILE
    2. ownerPTO-TILE-MODEL-SHAPE-CUBE-CELL
    3. categorySTATIC-INVARIANT
    4. case001
    Show exact test source
    Sources and references
    Complete stable ID
    PTO-AVS-TILE-MODEL-SHAPE-CUBE-CELL-STATIC-001
    Path
    tests/asl/tile/model/shape/cube-cell/tile-static-cube-cell-contract-001.asl
    Kind / role
    static-invariant
    Requirements
    PTO-CUBE-CELL-STATE-001, PTO-CUBE-MATRIX-SCALE-CELL-001
    Pass condition
    the complete model and this unit's static invariant compile
    SHA-256
    91678d37b6943d8474a66e78e6c9cb33d806396b4fac98cea48b06da8326f75c
    Open exact source ↗ for PTO-AVS-TILE-MODEL-SHAPE-CUBE-CELL-STATIC-001
Commit-scoped evidence5
  • spec/evidence/release-traceability-readiness.json · closedPTO-EVIDENCE-RELEASE-TRACEABILITY
    Sources and references
    Complete stable ID
    PTO-EVIDENCE-RELEASE-TRACEABILITY
    Path
    spec/evidence/release-traceability-readiness.json
    Kind / role
    ASL/NDF/documentation/AVS traceability
    SHA-256
    c7327021d39dc67ac5564bc55073b3870a397d79ac8d9648284d56e33bc14a3e
    Open exact source ↗ for PTO-EVIDENCE-RELEASE-TRACEABILITY
  • spec/evidence/instruction-contract-closure.json · closedPTO-EVIDENCE-INSTRUCTION-CONTRACT-CLOSURE
    Sources and references
    Complete stable ID
    PTO-EVIDENCE-INSTRUCTION-CONTRACT-CLOSURE
    Path
    spec/evidence/instruction-contract-closure.json
    Kind / role
    mnemonic and encoding contract closure
    SHA-256
    3ef2bb62421c79dff8fa77a1c7983923b523244b8090812883ef81286ca8106a
    Open exact source ↗ for PTO-EVIDENCE-INSTRUCTION-CONTRACT-CLOSURE
  • spec/evidence/architecture-readiness.json · openPTO-EVIDENCE-ARCHITECTURE-READINESS
    Sources and references
    Complete stable ID
    PTO-EVIDENCE-ARCHITECTURE-READINESS
    Path
    spec/evidence/architecture-readiness.json
    Kind / role
    architecture maturity and blockers
    SHA-256
    4b0b85199101251bea744e0f3591cc31906909dc80d5ab651c417a936036a004
    Open exact source ↗ for PTO-EVIDENCE-ARCHITECTURE-READINESS
  • spec/evidence/release-gate-readiness.json · ready-for-exact-head-verificationPTO-EVIDENCE-RELEASE-GATE-READINESS
    Sources and references
    Complete stable ID
    PTO-EVIDENCE-RELEASE-GATE-READINESS
    Path
    spec/evidence/release-gate-readiness.json
    Kind / role
    exact-head gate readiness
    SHA-256
    a0f4d2b6920c08981ea55fd8ef820708a40d4feb5402c5150e8e9ab532d84ce0
    Open exact source ↗ for PTO-EVIDENCE-RELEASE-GATE-READINESS
  • spec/release-manifest.json · draftPTO-EVIDENCE-RELEASE-MANIFEST
    Sources and references
    Complete stable ID
    PTO-EVIDENCE-RELEASE-MANIFEST
    Path
    spec/release-manifest.json
    Kind / role
    release content and encoding fingerprints
    SHA-256
    1a64c109ed7a90351c41e2a418b3c0ebaf8ad975838986d2101385186b85c0d8
    Open exact source ↗ for PTO-EVIDENCE-RELEASE-MANIFEST
Decision history4
  • Local CUBE CELL State and Geometry · accepted
    1. decision recordADR
    2. case0069

    Decision record

    Loading ADR-0069…

    Sources and references
    Complete stable ID
    ADR-0069
    Path
    docs/status/decisions/0069-local-cube-cell-state-and-geometry.md
    Affected units
    PTO-TILE-MODEL-SHAPE-CUBE-CELL
    Affected NDF
    PTO-CUBE-CELL-STATE-001
    SHA-256
    14d77ad1d80ef27bcd9c604debe6a6e2984c2ddbb3d1fe760296ec33eea8f7a6
    Open exact decision source ↗ for ADR-0069
  • GM/Local CUBE Layout Transport · accepted
    1. decision recordADR
    2. case0070

    Decision record

    Loading ADR-0070…

    Sources and references
    Complete stable ID
    ADR-0070
    Path
    docs/status/decisions/0070-gm-local-cube-layout-transport.md
    Affected units
    PTO-BLOCK-B-DATR, PTO-BLOCK-BSTART-TLOAD, PTO-BLOCK-BSTART-TSTORE, PTO-TILE-MODEL-SHAPE-CUBE-CELL, PTO-TILE-TLOAD, PTO-TILE-TSTORE
    Affected NDF
    PTO-B-DATR-FIELDS-001, PTO-BSTART-TLOAD-CUBE-001, PTO-BSTART-TLOAD-MEMORY-001, PTO-BSTART-TSTORE-CUBE-001, PTO-BSTART-TSTORE-MEMORY-001, PTO-CUBE-CELL-STATE-001, PTO-CUBE-CELL-TRANSPORT-001, PTO-TLOAD-CUBE-001, PTO-TLOAD-MEMORY-001, PTO-TSTORE-CUBE-001, PTO-TSTORE-MEMORY-001
    SHA-256
    63574a9b2d9ae41d4fa595638026a78f6944ed530bb303cfc5865662393c3dd3
    Open exact decision source ↗ for ADR-0070
  • Local CUBE Matrix Operand Contract · accepted
    1. decision recordADR
    2. case0071

    Decision record

    Loading ADR-0071…

    Sources and references
    Complete stable ID
    ADR-0071
    Path
    docs/status/decisions/0071-local-cube-matrix-operands.md
    Affected units
    PTO-BLOCK-BSTART-TGEMV, PTO-BLOCK-BSTART-TGEMV-ACC, PTO-BLOCK-BSTART-TGEMV-BIAS, PTO-BLOCK-BSTART-TGEMVMX, PTO-BLOCK-BSTART-TGEMVMX-ACC, PTO-BLOCK-BSTART-TGEMVMX-BIAS, PTO-BLOCK-BSTART-TMATMUL, PTO-BLOCK-BSTART-TMATMUL-ACC, PTO-BLOCK-BSTART-TMATMUL-BIAS, PTO-BLOCK-BSTART-TMATMULMX, PTO-BLOCK-BSTART-TMATMULMX-ACC, PTO-BLOCK-BSTART-TMATMULMX-BIAS, PTO-TILE-MODEL-LEGALITY-MATRIX-CUBE-PRIMARY, PTO-TILE-MODEL-SHAPE-CUBE-CELL, PTO-TILE-TGEMV, PTO-TILE-TGEMV-ACC, PTO-TILE-TGEMV-BIAS, PTO-TILE-TGEMV-MX, PTO-TILE-TGEMV-MX-ACC, PTO-TILE-TGEMV-MX-BIAS, PTO-TILE-TMATMUL, PTO-TILE-TMATMUL-ACC, PTO-TILE-TMATMUL-BIAS, PTO-TILE-TMATMUL-MX, PTO-TILE-TMATMUL-MX-ACC, PTO-TILE-TMATMUL-MX-BIAS
    Affected NDF
    PTO-BSTART-TGEMV-ACC-CONTRACT-001, PTO-BSTART-TGEMV-BIAS-CONTRACT-001, PTO-BSTART-TGEMV-CONTRACT-001, PTO-BSTART-TGEMVMX-ACC-CONTRACT-001, PTO-BSTART-TGEMVMX-BIAS-CONTRACT-001, PTO-BSTART-TGEMVMX-CONTRACT-001, PTO-BSTART-TMATMUL-ACC-CONTRACT-001, PTO-BSTART-TMATMUL-BIAS-CONTRACT-001, PTO-BSTART-TMATMUL-CONTRACT-001, PTO-BSTART-TMATMULMX-ACC-CONTRACT-001, PTO-BSTART-TMATMULMX-BIAS-CONTRACT-001, PTO-BSTART-TMATMULMX-CONTRACT-001, PTO-CUBE-CELL-STATE-001, PTO-CUBE-LOCAL-MATRIX-001, PTO-TGEMV-ACC-CONTRACT-001, PTO-TGEMV-BIAS-CONTRACT-001, PTO-TGEMV-CONTRACT-001, PTO-TGEMV-MX-ACC-CONTRACT-001, PTO-TGEMV-MX-BIAS-CONTRACT-001, PTO-TGEMV-MX-CONTRACT-001, PTO-TMATMUL-ACC-CONTRACT-001, PTO-TMATMUL-BIAS-CONTRACT-001, PTO-TMATMUL-CONTRACT-001, PTO-TMATMUL-MX-ACC-CONTRACT-001, PTO-TMATMUL-MX-BIAS-CONTRACT-001, PTO-TMATMUL-MX-CONTRACT-001
    SHA-256
    c9c58c246498edab99aff612c6d645774e07f942e37fb92b14245e8aecbe8368
    Open exact decision source ↗ for ADR-0071
  • Matrix Scale Cell Layouts, HiF4 Scale Words, and CScale · accepted
    1. decision recordADR
    2. case0101

    Decision record

    Loading ADR-0101…

    Sources and references
    Complete stable ID
    ADR-0101
    Path
    docs/status/decisions/0101-matrix-scale-and-cscale.md
    Affected units
    PTO-ARCH-DATA-TYPES-FORMAT-HIF4-SCALE, PTO-ARCH-PROFILE-MATRIX-POSTPROCESS, PTO-BLOCK-B-FPATR, PTO-BLOCK-MODEL-DISPATCH-CUBE-TMATMUL, PTO-BLOCK-MODEL-DISPATCH-MATRIX-SCALE, PTO-BLOCK-MODEL-DISPATCH-SHARED-CUBE-MATRIX, PTO-BLOCK-MODEL-SCHEMA-ATTRIBUTES, PTO-BLOCK-MODEL-STATE-TYPES, PTO-TILE-MODEL-EXECUTION-CUBE, PTO-TILE-MODEL-EXECUTION-MATRIX-SCALE, PTO-TILE-MODEL-LEGALITY-MATRIX-FUNCTIONS, PTO-TILE-MODEL-LEGALITY-MATRIX-OPERANDS, PTO-TILE-MODEL-LEGALITY-MATRIX-POSTPROCESS, PTO-TILE-MODEL-LEGALITY-MATRIX-SHAPE, PTO-TILE-MODEL-SHAPE-CUBE-CELL
    Affected NDF
    PTO-B-FPATR-MATRIX-POSTPROCESS-001, PTO-CUBE-CSCALE-001, PTO-CUBE-HIF4-SCALE-001, PTO-CUBE-MATRIX-SCALE-001, PTO-CUBE-MATRIX-SCALE-CELL-001, PTO-CUBE-SHARED-TRANSPOSE-001
    SHA-256
    a5c962437636c0d3f4f3585d3b529fcc9821d4b00c540243c2351978196e9be0
    Open exact decision source ↗ for ADR-0101

Unit metadata

Open 4 generated metadata fields
id
PTO-TILE-MODEL-SHAPE-CUBE-CELL
surface
tile
classification
[
  "model",
  "shape",
  "cube-cell"
]
depends_on
[
  "PTO-TILE-MODEL-SHAPE-VALID-REGION"
]
Open generated traceability record
{
  "classification": [
    "model",
    "shape",
    "cube-cell"
  ],
  "documentation": "docs/tile/model/shape/cube-cell.md",
  "id": "PTO-TILE-MODEL-SHAPE-CUBE-CELL",
  "mnemonic": null,
  "readiness_subjects": [
    "ADR-0069",
    "ADR-0070",
    "ADR-0071",
    "ADR-0101"
  ],
  "semantic_tests": [
    "PTO-AVS-TILE-CUBE-CELL-CAPACITY-005",
    "PTO-AVS-TILE-CUBE-CELL-M16-B4-002",
    "PTO-AVS-TILE-CUBE-CELL-ORDER-003",
    "PTO-AVS-TILE-CUBE-CELL-TAIL-004",
    "PTO-AVS-TILE-CUBE-CELL-WIDTH-001",
    "PTO-AVS-TILE-CUBE-M32-GRID-004"
  ],
  "source": "asl/tile/model/shape/cube-cell.asl",
  "surface": "tile",
  "tests": [
    "PTO-AVS-TILE-CUBE-CELL-CAPACITY-005",
    "PTO-AVS-TILE-CUBE-CELL-M16-B4-002",
    "PTO-AVS-TILE-CUBE-CELL-ORDER-003",
    "PTO-AVS-TILE-CUBE-CELL-TAIL-004",
    "PTO-AVS-TILE-CUBE-CELL-WIDTH-001",
    "PTO-AVS-TILE-CUBE-M32-GRID-004",
    "PTO-AVS-TILE-MODEL-SHAPE-CUBE-CELL-STATIC-001"
  ]
}

Sources and release identity

Show commit, paths, hashes, version, and canonical owners
Release
0.58.5 · Release candidate
Commit
7dc8b7e5b121d2b2499a2273bebff29e2cd86812
ASL SHA-256
44b94b34ae8927036a545aff963a206c746c9ec6b33f6d25093517b8023e462e
Generated documentation
docs/tile/model/shape/cube-cell.md · embedded in this page
Documentation SHA-256
3eb40fe985f754945c9f6e7e0ab7dc19129fa189ba1a5de32689a9fa6205bc08

Exact owners