Skip to main content

PTO-BLOCK-MODEL-DISPATCH-SHARED-CUBE-MATRIX

PTO-BLOCK-MODEL-DISPATCH-SHARED-CUBE-MATRIX

ASL pseudocode

The complete ASL owner is shown directly below.

// PTO-UNIT: {"id":"PTO-BLOCK-MODEL-DISPATCH-SHARED-CUBE-MATRIX","surface":"block","classification":["model","dispatch","shared-cube-matrix"],"depends_on":["PTO-BLOCK-MODEL-OPERANDS-SHARED-GENERATION","PTO-TILE-MODEL-LEGALITY-MATRIX-FUNCTIONS","PTO-TILE-MODEL-STATE-SHARED-REGISTERS"]}
readonly func BundleMatrixSharedSourceSchemaLegal(    ordinal: integer {0..3},    valid_rows: integer {1..65535},    valid_columns: integer {1..65535},    columns: integer {1..65535},    data_type: TileDataType) => booleanbegin    let shared_tile_id = BundleSharedBindingId(ordinal);    if BundleSharedBindingIsDestination(ordinal) ||       !SharedTileCooperativeMatrixReady(shared_tile_id) then        return FALSE;    end;    if _BundleSharedBindings[[ordinal]].source0_subview.valid then        if !BundleSharedSubviewLegal(ordinal) then return FALSE; end;        let view = MaterializeBundleSharedSubview(ordinal);        return view.valid_rows == valid_rows &&               view.valid_columns == valid_columns &&               view.columns == columns && view.data_type == data_type &&               view.layout == TileLayout_RowMajor;    end;    return SharedTileReadSchemaLegal(shared_tile_id,        valid_rows, valid_columns, columns,        data_type, TileLayout_RowMajor);end;
readonly func BundleMatrixSharedSourcesReady(    shared_count: integer {0..4}) => booleanbegin    if shared_count == 0 then return TRUE; end;    for ordinal = 0 to shared_count - 1 looplimit 4 do        let binding = ordinal as integer {0..3};        if _BundleSharedBindings[[binding]].valid &&           !BundleSharedBindingIsDestination(binding) &&           !SharedTilePublished(BundleSharedBindingId(binding)) then            return FALSE;        end;    end;    return TRUE;end;
readonly func BundleMatrixSharedPrimarySchemaLegal(    ordinal: integer {0..3},    logical_rows: integer {1..65535},    logical_columns: integer {1..65535},    data_type: TileDataType,    transpose: boolean) => booleanbegin    let stored_rows = if transpose then logical_columns else logical_rows;    let stored_columns = if transpose then logical_rows else logical_columns;    return BundleMatrixSharedSourceSchemaLegal(        ordinal, stored_rows, stored_columns,        stored_columns, data_type);end;
pure func BundleMatrixCooperativeMPerPE(    group_m: integer {1..65535}) => integer {0,16,32}begin    if group_m <= 64 then return 16;    elsif group_m <= 128 then return 32;    else return 0;    end;end;
pure func BundleMatrixCooperativeValidM(    group_m: integer {1..65535},    pe_identity: MemoryAgentId) => integer {0..32}begin    let m_per_pe = BundleMatrixCooperativeMPerPE(group_m);    if m_per_pe == 0 then return 0; end;    let first_row = pe_identity * m_per_pe;    if first_row >= group_m then return 0; end;    let remaining = group_m - first_row;    if remaining < m_per_pe then return remaining as integer {1..31}; end;    return m_per_pe as integer {16,32};end;
pure func BundleMatrixCooperativeCurrentPEMask(    group_m: integer {1..65535},    pe_identity: MemoryAgentId) => bits(4)begin    var mask = Zeros{4};    if BundleMatrixCooperativeValidM(group_m, pe_identity) != 0 then        mask[PTOPEMaskBitOfPEIdentity(pe_identity)] = '1';    end;    return mask;end;
readonly func BundleMatrixSharedLeftPrimarySchemaLegal(    ordinal: integer {0..3},    group_m: integer {1..65535},    k: integer {1..65535},    data_type: TileDataType,    transpose: boolean) => booleanbegin    if BundleMatrixCooperativeMPerPE(group_m) == 0 then return FALSE; end;    return BundleMatrixSharedPrimarySchemaLegal(        ordinal, group_m, k, data_type, transpose);end;
readonly func BundleMatrixSharedSchemasLegal(    function: integer {0..31},    left_type: TileDataType,    right_type: TileDataType,    m: integer {1..65535},    n: integer {1..65535},    k: integer {1..65535},    shared_count: integer {0..4}) => booleanbegin    if shared_count == 0 then        return !_BundleFixedPointAttributes.trans_a &&               !_BundleFixedPointAttributes.trans_b;    end;    let left_scale_present = TileMatrixFunctionUsesMX(function) &&        TileMXInputTypeNeedsScale(left_type);    let right_scale_present = TileMatrixFunctionUsesMX(function) &&        TileMXInputTypeNeedsScale(right_type);    let left_scale_groups = if left_scale_present then        TileMXScaleGroupCount(k, left_type) else 1;    let right_scale_groups = if right_scale_present then        TileMXScaleGroupCount(k, right_type) else 1;    let right_group = TileMatrixRightGroupSourceCount(        function, right_type);    let left_shared = shared_count != right_group;    if _BundleFixedPointAttributes.trans_a && !left_shared then        return FALSE;    end;    var ordinal: integer {0..4} = 0;
    if left_shared then        if !BundleMatrixSharedLeftPrimarySchemaLegal(               ordinal as integer {0..3},               m, k, left_type,               _BundleFixedPointAttributes.trans_a) then            return FALSE;        end;        ordinal = (ordinal + 1) as integer {0..4};        if left_scale_present then            if !BundleMatrixSharedPrimarySchemaLegal(                   ordinal as integer {0..3},                   m, left_scale_groups,                   TileMXScaleCarrierType(left_type),                   _BundleFixedPointAttributes.trans_a) then                return FALSE;            end;            ordinal = (ordinal + 1) as integer {0..4};        end;    end;
    if !BundleMatrixSharedPrimarySchemaLegal(           ordinal as integer {0..3},           k, n, right_type,           _BundleFixedPointAttributes.trans_b) then        return FALSE;    end;    ordinal = (ordinal + 1) as integer {0..4};    if right_scale_present then        if !BundleMatrixSharedPrimarySchemaLegal(               ordinal as integer {0..3},               right_scale_groups, n,               TileMXScaleCarrierType(right_type),               _BundleFixedPointAttributes.trans_b) then            return FALSE;        end;        ordinal = (ordinal + 1) as integer {0..4};    end;    return ordinal == shared_count;end;
readonly func MaterializeBundleSharedMatrixLeftPrimary(    ordinal: integer {0..3},    group_m: integer {1..65535},    k: integer {1..65535},    data_type: TileDataType,    transpose: boolean,    pe_identity: MemoryAgentId) => TileInfobegin    assert BundleMatrixSharedLeftPrimarySchemaLegal(        ordinal, group_m, k, data_type, transpose);    let m_per_pe = BundleMatrixCooperativeMPerPE(group_m);    let valid_m = BundleMatrixCooperativeValidM(group_m, pe_identity);    assert m_per_pe != 0 && valid_m != 0;    let pe_m = valid_m as integer {1..32};    let shared_tile_id = BundleSharedBindingId(ordinal);    let source = if        _BundleSharedBindings[[ordinal]].source0_subview.valid then        MaterializeBundleSharedSubview(ordinal)    else SharedTileRecord(shared_tile_id).tile;    var tile = source;    tile.contents_defined = FALSE;    tile.defined_elements = Zeros{PTO_MODEL_TILE_ELEMENTS};    tile.packed_defined_elements = ZeroPackedTileDefinedElements();    tile.defined_valid_elements = 0;    tile.rows = DerivedTileRows(tile.capacity_bytes, k, data_type);    tile.columns = k;    tile.valid_rows = pe_m;    tile.valid_columns = k;    tile.data_type = data_type;    tile.layout = TileLayout_RowMajor;    tile.location = TileLocation_Any;    tile.cube_k_repeat = 0;    tile.cube_n_repeat = 0;    tile.cube_cell_count = 0;    tile.cube_storage_bytes = 0;    for row = 0 to pe_m - 1 looplimit 65536 do        for column = 0 to k - 1 looplimit 65536 do            let group_row = (pe_identity * m_per_pe + row)                as integer {0..65535};            let source_row = if transpose then column else group_row;            let source_column = if transpose then group_row else column;            let source_element = TileLogicalLinearIndex(                source,                source_row as integer {0..65535},                source_column as integer {0..65535});            let destination_element = TileLogicalLinearIndex(                tile,                row as integer {0..65535},                column as integer {0..65535});            tile = TileInfoWithLogicalElement(tile, destination_element,                TileReadLogicalElement(source, source_element));        end;    end;    tile.contents_defined = TRUE;    tile.defined_valid_elements = (pe_m * k) as integer {0..524288};    return tile;end;
readonly func MaterializeBundleSharedMatrixLeftScale(    ordinal: integer {0..3},    group_m: integer {1..65535},    k: integer {1..65535},    primary_type: TileDataType,    transpose: boolean,    pe_identity: MemoryAgentId) => TileInfobegin    let m_per_pe = BundleMatrixCooperativeMPerPE(group_m);    let valid_m = BundleMatrixCooperativeValidM(group_m, pe_identity);    assert m_per_pe != 0 && valid_m != 0;    let pe_m = valid_m as integer {1..32};    let scale_groups = TileMXScaleGroupCount(k, primary_type);    let scale_type = TileMXScaleCarrierType(primary_type);    let shared_tile_id = BundleSharedBindingId(ordinal);    let source = if        _BundleSharedBindings[[ordinal]].source0_subview.valid then        MaterializeBundleSharedSubview(ordinal)    else SharedTileRecord(shared_tile_id).tile;    assert BundleMatrixSharedPrimarySchemaLegal(        ordinal, group_m, scale_groups, scale_type, transpose);    var tile = source;    tile.contents_defined = FALSE;    tile.defined_elements = Zeros{PTO_MODEL_TILE_ELEMENTS};    tile.packed_defined_elements = ZeroPackedTileDefinedElements();    tile.defined_valid_elements = 0;    tile.rows = DerivedTileRows(        tile.capacity_bytes, scale_groups, scale_type);    tile.columns = scale_groups;    tile.valid_rows = pe_m;    tile.valid_columns = scale_groups;    tile.data_type = scale_type;    tile.layout = TileLayout_RowMajor;    tile.location = TileLocation_Any;    tile.cube_k_repeat = 0;    tile.cube_n_repeat = 0;    tile.cube_cell_count = 0;    tile.cube_storage_bytes = 0;    for row = 0 to pe_m - 1 looplimit 65536 do        for column = 0 to scale_groups - 1 looplimit 2048 do            let group_row = (pe_identity * m_per_pe + row)                as integer {0..65535};            let source_row = if transpose then column else group_row;            let source_column = if transpose then group_row else column;            let source_element = TileLogicalLinearIndex(                source,                source_row as integer {0..65535},                source_column as integer {0..65535});            let destination_element = TileLogicalLinearIndex(                tile, row as integer {0..65535},                column as integer {0..65535});            tile = TileInfoWithLogicalElement(tile, destination_element,                TileReadLogicalElement(source, source_element));        end;    end;    tile.contents_defined = TRUE;    tile.defined_valid_elements =        (pe_m * scale_groups) as integer {0..524288};    return tile;end;
readonly func MaterializeBundleSharedMatrixSource(    ordinal: integer {0..3},    valid_rows: integer {1..65535},    valid_columns: integer {1..65535},    columns: integer {1..65535},    data_type: TileDataType) => TileInfobegin    let shared_tile_id = BundleSharedBindingId(ordinal);    var tile = if        _BundleSharedBindings[[ordinal]].source0_subview.valid then        MaterializeBundleSharedSubview(ordinal)    else MaterializeSharedTileForReadSchema(        shared_tile_id, valid_rows, valid_columns, columns,        data_type, TileLayout_RowMajor);    for element = 0 to tile.rows * tile.columns - 1        looplimit 524288 do        let index = element as PackedTileElementIndex;        tile = TileInfoWithLogicalElement(tile, index,            TileReadLogicalElement(tile, index));    end;    tile.contents_defined = TRUE;    tile.defined_valid_elements =        (valid_rows * valid_columns) as integer {0..524288};    return tile;end;
readonly func MaterializeBundleSharedMatrixPrimary(    ordinal: integer {0..3},    logical_rows: integer {1..65535},    logical_columns: integer {1..65535},    data_type: TileDataType,    transpose: boolean,    pe_identity: MemoryAgentId) => TileInfobegin    assert BundleMatrixSharedPrimarySchemaLegal(        ordinal, logical_rows, logical_columns, data_type, transpose);    let shared_tile_id = BundleSharedBindingId(ordinal);    let source = if        _BundleSharedBindings[[ordinal]].source0_subview.valid then        MaterializeBundleSharedSubviewForPE(ordinal, pe_identity)    else SharedTileRecord(shared_tile_id).tile;    var tile = source;    tile.contents_defined = FALSE;    tile.defined_elements = Zeros{PTO_MODEL_TILE_ELEMENTS};    tile.packed_defined_elements = ZeroPackedTileDefinedElements();    tile.defined_valid_elements = 0;    tile.rows = DerivedTileRows(        tile.capacity_bytes, logical_columns, data_type);    tile.columns = logical_columns;    tile.valid_rows = logical_rows;    tile.valid_columns = logical_columns;    tile.data_type = data_type;    tile.layout = TileLayout_RowMajor;    tile.location = TileLocation_Any;    tile.cube_k_repeat = 0;    tile.cube_n_repeat = 0;    tile.cube_cell_count = 0;    tile.cube_storage_bytes = 0;    for row = 0 to logical_rows - 1 looplimit 65536 do        for column = 0 to logical_columns - 1 looplimit 65536 do            let source_row = if transpose then column else row;            let source_column = if transpose then row else column;            let source_element = TileLogicalLinearIndex(                source,                source_row as integer {0..65535},                source_column as integer {0..65535});            let destination_element = TileLogicalLinearIndex(                tile,                row as integer {0..65535},                column as integer {0..65535});            tile = TileInfoWithLogicalElement(tile, destination_element,                TileReadLogicalElement(source, source_element));        end;    end;    tile.contents_defined = TRUE;    tile.defined_valid_elements =        (logical_rows * logical_columns) as integer {0..524288};    return tile;end;
readonly func BundleMatrixCooperativeMLayout(    function: integer {0..31},    right_type: TileDataType,    m: integer {1..65535},    shared_count: integer {0..4}) => (boolean, TileLayout)begin    let right_group = TileMatrixRightGroupSourceCount(        function, right_type);    let local_left_present = shared_count == 0 ||        shared_count == right_group;    var layout = TileLayout_RowMajor;    if local_left_present then        let left_ordinal = if TileMatrixFunctionUsesAccumulator(function)            then 1 else 0;        layout = _Tiles[[BundleMatrixSourceAt(            left_ordinal as integer {0..7})]].layout;    elsif TileMatrixFunctionUsesAccumulator(function) then        layout = _Tiles[[BundleMatrixSourceAt(0)]].layout;    elsif m <= 16 then        layout = TileLayout_CUBE_M16;    elsif m <= 32 then        layout = TileLayout_CUBE_M32;    end;    return (TileMatrixMLayoutLegal(layout, m), layout);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.

No NDF clause is attached to this unit.

Evidence index

15 matching entries

Executable evidence2
  • PTO-BLOCK-MODEL-DISPATCH-SHARED-CUBE-MATRIX compiles as an independent normative unit
    1. surfaceBLOCK
    2. ownerPTO-BLOCK-MODEL-DISPATCH-SHARED-CUBE-MATRIX
    3. categorySTATIC-INVARIANT
    4. case001
    Show exact test source
    Sources and references
    Complete stable ID
    PTO-AVS-BLOCK-MODEL-DISPATCH-SHARED-CUBE-MATRIX-STATIC-001
    Path
    tests/asl/block/model/dispatch/shared-cube-matrix/block-static-shared-cube-matrix-contract-001.asl
    Kind / role
    static-invariant
    Pass condition
    the complete model and this unit's static invariant compile
    SHA-256
    9a87138fcf0fe7bba46f6d3447358753f3997f7110d0b9785d0858890355faf7
    Open exact source ↗ for PTO-AVS-BLOCK-MODEL-DISPATCH-SHARED-CUBE-MATRIX-STATIC-001
  • Shared Matrix transpose normalizes each independently bound primary and scale.
    1. surfaceBLOCK
    2. ownerPTO-BLOCK-MODEL-DISPATCH-SHARED-CUBE-MATRIX
    3. categoryEXECUTION
    4. case002
    Show exact test source
    Sources and references
    Complete stable ID
    PTO-AVS-BLOCK-SHARED-CUBE-SCALE-TRANSPOSE-002
    Path
    tests/asl/block/model/dispatch/shared-cube-matrix/block-exec-shared-cube-scale-transpose-002.asl
    Kind / role
    execution
    Requirements
    PTO-CUBE-MATRIX-SCALE-001, PTO-CUBE-SHARED-TRANSPOSE-001
    Pass condition
    Stored transposed A, AScale, B, and BScale shapes normalize to group_MxK, group_MxG, KxN, and GxN and produce the exact current-PE result without mutating Shared state.
    SHA-256
    fc9538d3ba766ac00a59249f5626bd7419cf9983f1a52abd70e68531bbd3c00e
    Open exact source ↗ for PTO-AVS-BLOCK-SHARED-CUBE-SCALE-TRANSPOSE-002
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 history8
  • Cooperative Shared CUBE Inputs and Transpose · accepted
    1. decision recordADR
    2. case0072

    Decision record

    Loading ADR-0072…

    Sources and references
    Complete stable ID
    ADR-0072
    Path
    docs/status/decisions/0072-cooperative-shared-cube-transpose.md
    Affected units
    PTO-ARCH-PROFILE-RESET, PTO-BLOCK-B-FPATR, PTO-BLOCK-BSTART-TGEMV-ACC, PTO-BLOCK-BSTART-TGEMV-BIAS, PTO-BLOCK-BSTART-TGEMV, PTO-BLOCK-BSTART-TGEMVMX-ACC, PTO-BLOCK-BSTART-TGEMVMX-BIAS, PTO-BLOCK-BSTART-TGEMVMX, PTO-BLOCK-BSTART-TMATMUL-ACC, PTO-BLOCK-BSTART-TMATMUL-BIAS, PTO-BLOCK-BSTART-TMATMUL, PTO-BLOCK-BSTART-TMATMULMX-ACC, PTO-BLOCK-BSTART-TMATMULMX-BIAS, PTO-BLOCK-BSTART-TMATMULMX, PTO-BLOCK-MODEL-DISPATCH-COMMANDS, PTO-BLOCK-MODEL-DISPATCH-CUBE-TMATMUL, PTO-BLOCK-MODEL-DISPATCH-SHARED-CUBE-MATRIX, PTO-BLOCK-MODEL-LIFECYCLE-RESET, PTO-BLOCK-MODEL-SCHEMA-ATTRIBUTES, PTO-BLOCK-MODEL-STATE-DESCRIPTOR-STATE, PTO-BLOCK-MODEL-STATE-TYPES, 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, 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-MODEL-LEGALITY-MATRIX-INFO-DESCRIPTOR, PTO-TILE-MODEL-LEGALITY-MATRIX-OPERANDS, PTO-TILE-MODEL-LEGALITY-MATRIX-SHAPE, PTO-TILE-MODEL-STATE-SHARED-REGISTERS
    Affected NDF
    PTO-B-FPATR-MATRIX-POSTPROCESS-001, PTO-CUBE-SHARED-TRANSPOSE-001, 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-TGEMV-CONTRACT-001, PTO-TGEMV-ACC-CONTRACT-001, PTO-TGEMV-BIAS-CONTRACT-001, PTO-TGEMV-MX-CONTRACT-001, PTO-TGEMV-MX-ACC-CONTRACT-001, PTO-TGEMV-MX-BIAS-CONTRACT-001, PTO-TMATMUL-CONTRACT-001, PTO-TMATMUL-ACC-CONTRACT-001, PTO-TMATMUL-BIAS-CONTRACT-001, PTO-TMATMUL-MX-CONTRACT-001, PTO-TMATMUL-MX-ACC-CONTRACT-001, PTO-TMATMUL-MX-BIAS-CONTRACT-001
    SHA-256
    9bc7340fea777ee543d4b9393f8f6002b55106833e55ff6d388f8beac504dd09
    Open exact decision source ↗ for ADR-0072
  • Re-encode B.IOT and B.IOS size and PE mode fields · accepted
    1. decision recordADR
    2. case0096

    Decision record

    Loading ADR-0096…

    Sources and references
    Complete stable ID
    ADR-0096
    Path
    docs/status/decisions/0096-b-iot-b-ios-sizecode-pemode.md
    Affected units
    PTO-ARCH-DATA-TYPES-INTEGER, PTO-ARCH-FEATURES-TILE-ALLOCATION, PTO-ARCH-MEMORY-MODEL-GLOBAL-MEMORY-ACCESS, PTO-ARCH-PROFILE-RESET, PTO-ARCH-PROGRAMMING-MODEL-CORE-PE-TOPOLOGY, PTO-BLOCK-B-IOS, PTO-BLOCK-B-IOT, PTO-BLOCK-MODEL-DISPATCH-COMMANDS, PTO-BLOCK-MODEL-DISPATCH-CUBE-TMATMUL, PTO-BLOCK-MODEL-DISPATCH-DESTINATION-SHAPE, PTO-BLOCK-MODEL-DISPATCH-SHARED-CUBE-MATRIX, PTO-BLOCK-MODEL-DISPATCH-SHARED-TLSU, PTO-BLOCK-MODEL-OPERANDS-SHARED-BINDINGS, PTO-BLOCK-MODEL-OPERANDS-TILE-BINDINGS, PTO-BLOCK-MODEL-SCHEMA-PROFILE-ENCODING, PTO-BLOCK-MODEL-STATE-TYPES, PTO-TILE-MODEL-DEFINEDNESS-ELEMENTS, PTO-TILE-MODEL-DEFINEDNESS-PACKED-BOUNDARY, PTO-TILE-MODEL-EXECUTION-COMPARISON, PTO-TILE-MODEL-EXECUTION-COMPLEX, PTO-TILE-MODEL-EXECUTION-CUBE, PTO-TILE-MODEL-EXECUTION-ELEMENTWISE, PTO-TILE-MODEL-EXECUTION-EXPANSION, PTO-TILE-MODEL-EXECUTION-FUSED-MULTIPLY-ADD, PTO-TILE-MODEL-EXECUTION-GENERATION, PTO-TILE-MODEL-EXECUTION-IMAGE-TO-COLUMN, PTO-TILE-MODEL-EXECUTION-INDEXED-REARRANGEMENT, PTO-TILE-MODEL-EXECUTION-REARRANGEMENT, PTO-TILE-MODEL-EXECUTION-REDUCTION, PTO-TILE-MODEL-EXECUTION-SORTING, PTO-TILE-MODEL-EXECUTION-UNARY, PTO-TILE-MODEL-LEGALITY-ALLOCATION-CAPACITY, PTO-TILE-MODEL-LEGALITY-DESCRIPTOR-SHAPE, PTO-TILE-MODEL-LEGALITY-IMAGE-TO-COLUMN, PTO-TILE-MODEL-LEGALITY-INDEXED-REARRANGEMENT, PTO-TILE-MODEL-LEGALITY-MATRIX-INFO-DESCRIPTOR, PTO-TILE-MODEL-LEGALITY-MATRIX-POSTPROCESS, PTO-TILE-MODEL-LEGALITY-PE-MASK, PTO-TILE-MODEL-MEMORY-LOAD-STORE, PTO-TILE-MODEL-MEMORY-SHARED-MOVEMENT, PTO-TILE-MODEL-NUMERIC-FORMATS, PTO-TILE-MODEL-ORDERING-SORTING, PTO-TILE-MODEL-SHAPE-VALID-REGION, PTO-TILE-MODEL-STATE-ALLOCATION, PTO-TILE-MODEL-STATE-DESCRIPTORS, PTO-TILE-MODEL-STATE-FEATURE-MAP-DESCRIPTORS, PTO-TILE-MODEL-STATE-SHARED-REGISTERS, PTO-TILE-MODEL-STATE-TYPES, PTO-TILE-TLOAD
    Affected NDF
    PTO-ARCH-GM-ACCESS-001, PTO-B-IOS-SHARED-STATE-001, PTO-B-IOT-STREAM-001, PTO-CUBE-ACCUMULATOR-OUTPUT-001, PTO-TLOAD-CUBE-001, PTO-TLOAD-MEMORY-001
    SHA-256
    c4b4fb7bc17878f710015207dc19ddaf22a0cf6989d185b16844714c71e23f62
    Open exact decision source ↗ for ADR-0096
  • Local and Shared capacity pools with cooperative M-sharding · accepted
    1. decision recordADR
    2. case0097

    Decision record

    Loading ADR-0097…

    Sources and references
    Complete stable ID
    ADR-0097
    Path
    docs/status/decisions/0097-local-shared-capacity-and-cooperative-m-sharding.md
    Affected units
    PTO-ARCH-DATA-TYPES-INTEGER, PTO-ARCH-FEATURES-TILE-ALLOCATION, PTO-ARCH-OVERVIEW-ARCHITECTURE, PTO-ARCH-PROGRAMMING-MODEL-CORE-PE-TOPOLOGY, PTO-BLOCK-B-IOS, PTO-BLOCK-B-IOT, PTO-BLOCK-MODEL-DISPATCH-COMMANDS, PTO-BLOCK-MODEL-DISPATCH-CUBE-DESTINATION, PTO-BLOCK-MODEL-DISPATCH-CUBE-TMATMUL, PTO-BLOCK-MODEL-DISPATCH-DESTINATION-SHAPE, PTO-BLOCK-MODEL-DISPATCH-SHARED-CUBE-MATRIX, PTO-BLOCK-MODEL-OPERANDS-SHARED-BINDINGS, PTO-BLOCK-MODEL-STATE-TYPES, PTO-TILE-MODEL-CAPACITY-LOCAL, PTO-TILE-MODEL-CAPACITY-SHARED, PTO-TILE-MODEL-MEMORY-SHARED-MOVEMENT, PTO-TILE-MODEL-STATE-ALLOCATION, PTO-TILE-MODEL-STATE-DESCRIPTORS, PTO-TILE-MODEL-STATE-SHARED-REGISTERS, PTO-TILE-MODEL-STATE-TYPES
    Affected NDF
    PTO-B-IOS-SHARED-STATE-001, PTO-B-IOT-STREAM-001, PTO-CUBE-GROUP-M-DISTRIBUTION-001, PTO-TILE-CAPACITY-PER-PE
    SHA-256
    7de93019f9272a73d5f42e42bec242725edadbcf41ed34a3155d40fb37f0cd14
    Open exact decision source ↗ for ADR-0097
  • Cooperative Group-M Distribution and Inactive PE Semantics · accepted
    1. decision recordADR
    2. case0100

    Decision record

    Loading ADR-0100…

    Sources and references
    Complete stable ID
    ADR-0100
    Path
    docs/status/decisions/0100-cooperative-group-m-distribution.md
    Affected units
    PTO-BLOCK-MODEL-DISPATCH-CUBE-DESTINATION, PTO-BLOCK-MODEL-DISPATCH-CUBE-TMATMUL, PTO-BLOCK-MODEL-DISPATCH-SHARED-CUBE-MATRIX, PTO-BLOCK-MODEL-DISPATCH-TILE-EXECUTION, PTO-BLOCK-MODEL-OPERANDS-LOCAL-GENERATION, PTO-BLOCK-MODEL-OPERANDS-PORTABLE-CARRIERS, PTO-BLOCK-MODEL-OPERANDS-SUBVIEW-DESCRIPTOR, PTO-TILE-MODEL-LEGALITY-MATRIX-OPERANDS, PTO-TILE-MODEL-LEGALITY-MATRIX-SHAPE
    Affected NDF
    PTO-CUBE-GROUP-M-DISTRIBUTION-001, PTO-B-ASSEMBLE-CONSUMER-READINESS-001
    SHA-256
    adcfcca401a69fb4e7635fbe4d65d33b36fb2744b3fbedf6d7862cadbc8e7232
    Open exact decision source ↗ for ADR-0100
  • 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
  • Shared whole-parent readiness and single-issuer publication · accepted
    1. decision recordADR
    2. case0105

    Decision record

    Loading ADR-0105…

    Sources and references
    Complete stable ID
    ADR-0105
    Path
    docs/status/decisions/0105-shared-whole-parent-readiness.md
    Affected units
    PTO-BLOCK-MODEL-OPERANDS-SHARED-GENERATION, PTO-BLOCK-MODEL-DISPATCH-SHARED-TLSU, PTO-BLOCK-MODEL-DISPATCH-SHARED-CUBE-MATRIX, PTO-TILE-MODEL-STATE-SHARED-REGISTERS, PTO-TILE-MODEL-STATE-TYPES, PTO-TILE-MODEL-MEMORY-SHARED-MOVEMENT
    Affected NDF
    PTO-B-SHARED-WHOLE-PARENT-READY-001, PTO-B-ASSEMBLE-SHARED-GENERATION-001
    SHA-256
    65894a4523494b68bdac25b972b183ba0435d9c36806805311f236c6b6923d8d
    Open exact decision source ↗ for ADR-0105
  • Shared source B.SUBVIEW uses per-PE offsets · accepted
    1. decision recordADR
    2. case0106

    Decision record

    Loading ADR-0106…

    Sources and references
    Complete stable ID
    ADR-0106
    Path
    docs/status/decisions/0106-shared-source-subview-per-pe.md
    Affected units
    PTO-BLOCK-B-SUBVIEW, PTO-BLOCK-MODEL-OPERANDS-SUBVIEW-DESCRIPTOR, PTO-BLOCK-MODEL-OPERANDS-SHARED-GENERATION, PTO-BLOCK-MODEL-DISPATCH-SHARED-TLSU, PTO-BLOCK-MODEL-DISPATCH-SHARED-CUBE-MATRIX
    Affected NDF
    PTO-B-SUBVIEW-RANGE-001, PTO-B-SUBVIEW-SHARED-PER-PE-001
    SHA-256
    ccbc429a05b5dc0cf1e810b2062672f3858edba86176fe2408f4a99a3d1137ee
    Open exact decision source ↗ for ADR-0106
  • PTO ISA 0.58.4.1 to 0.58.5 compatibility boundary · accepted
    1. decision recordADR
    2. case0108

    Decision record

    Loading ADR-0108…

    Sources and references
    Complete stable ID
    ADR-0108
    Path
    docs/status/decisions/0108-0584-1-to-0585-compatibility.md
    Affected units
    PTO-ARCH-FEATURES-TILE-ALLOCATION, PTO-ARCH-MEMORY-MODEL-GLOBAL-MEMORY-ACCESS, PTO-ARCH-OVERVIEW-ENCODING-OWNERSHIP, PTO-BLOCK-B-IOS, PTO-BLOCK-B-IOT, PTO-BLOCK-BSTART-TLOAD, 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-BLOCK-BSTART-TMOV, PTO-BLOCK-BSTART-TSTORE, PTO-BLOCK-MODEL-DISPATCH-CELL-REARRANGEMENT-SCHEMA, PTO-BLOCK-MODEL-DISPATCH-COMMANDS, PTO-BLOCK-MODEL-DISPATCH-CUBE-TMATMUL, PTO-BLOCK-MODEL-DISPATCH-DESCRIPTOR-LEGALITY, PTO-BLOCK-MODEL-DISPATCH-DESTINATION-SHAPE, PTO-BLOCK-MODEL-DISPATCH-PARTIAL-SCHEMA, PTO-BLOCK-MODEL-DISPATCH-SHARED-CUBE-MATRIX, PTO-BLOCK-MODEL-DISPATCH-SHARED-TLSU, PTO-BLOCK-MODEL-DISPATCH-TILE-EXECUTION, PTO-BLOCK-MODEL-DISPATCH-TILE-SCALAR-SCHEMA, PTO-BLOCK-MODEL-DISPATCH-TILE-SCHEMA, PTO-BLOCK-MODEL-DISPATCH-TLSU-LAYOUT-CONVERSION, PTO-BLOCK-MODEL-OPERANDS-PORTABLE-CARRIERS, PTO-BLOCK-MODEL-OPERANDS-SHARED-GENERATION, PTO-TILE-GMOV, PTO-TILE-MGATHER, PTO-TILE-MGATHER-CAS, PTO-TILE-MGATHER-MASK, PTO-TILE-MSCATTER, PTO-TILE-MSCATTER-MASK, PTO-TILE-TCI, PTO-TILE-TCONCAT, PTO-TILE-TDEQUANT, PTO-TILE-TEXTRACT, PTO-TILE-TFILLPAD, PTO-TILE-TGATHER, 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-THISTOGRAM, PTO-TILE-TINSERT, PTO-TILE-TLOAD, 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, PTO-TILE-TMOV, PTO-TILE-TMRGSORT, PTO-TILE-TPACK, PTO-TILE-TPARTADD, PTO-TILE-TPARTMAX, PTO-TILE-TPARTMIN, PTO-TILE-TPARTMUL, PTO-TILE-TPERMUTE, PTO-TILE-TPREFETCH, PTO-TILE-TQUANT, PTO-TILE-TSCATTER, PTO-TILE-TSHUF, PTO-TILE-TSORT, PTO-TILE-TSTORE, PTO-TILE-TTRANS, PTO-TILE-TTRI, PTO-TILE-TUNPACK, PTO-TILE-MODEL-DISPATCH-IRREGULAR-AND-COMPLEX, PTO-TILE-MODEL-DISPATCH-LAYOUT-AND-REARRANGEMENT, PTO-TILE-MODEL-EXECUTION-COMPLEX, PTO-TILE-MODEL-EXECUTION-GENERATION, PTO-TILE-MODEL-EXECUTION-REARRANGEMENT, PTO-TILE-MODEL-LEGALITY-ALLOCATION-CAPACITY, PTO-TILE-MODEL-LEGALITY-DTYPE-LAYOUT, PTO-TILE-MODEL-LEGALITY-INDEXED-LAYOUT, PTO-TILE-MODEL-LEGALITY-LAYOUT-REARRANGEMENT, PTO-TILE-MODEL-LEGALITY-OPERAND-SCHEMA, PTO-TILE-MODEL-MEMORY-SHARED-MOVEMENT, PTO-TILE-MODEL-STATE-DESCRIPTORS, PTO-TILE-MODEL-STATE-SHARED-REGISTERS, PTO-TILE-MODEL-STATE-TYPES
    Affected NDF
    PTO-ARCH-GM-ACCESS-001, PTO-B-IOS-SHARED-STATE-001, PTO-B-IOT-STREAM-001, PTO-B-SHARED-WHOLE-PARENT-READY-001, PTO-B-SUBVIEW-SHARED-PER-PE-001, PTO-BSTART-TLOAD-MEMORY-001, PTO-BSTART-TMOV-SHARED-001, PTO-BSTART-TSTORE-MEMORY-001, PTO-INST-BLOCK-B-IOS, PTO-INST-BLOCK-B-IOT, PTO-INST-BLOCK-BSTART-TLOAD, PTO-INST-BLOCK-BSTART-TMATMUL, PTO-INST-BLOCK-BSTART-TMATMUL-ACC, PTO-INST-BLOCK-BSTART-TMATMUL-BIAS, PTO-INST-BLOCK-BSTART-TMATMULMX, PTO-INST-BLOCK-BSTART-TMATMULMX-ACC, PTO-INST-BLOCK-BSTART-TMATMULMX-BIAS, PTO-INST-BLOCK-BSTART-TMOV, PTO-INST-BLOCK-BSTART-TSTORE, PTO-INST-TILE-GMOV, PTO-INST-TILE-MGATHER, PTO-INST-TILE-MGATHER-CAS, PTO-INST-TILE-MGATHER-MASK, PTO-INST-TILE-MSCATTER, PTO-INST-TILE-MSCATTER-MASK, PTO-INST-TILE-TCI, PTO-INST-TILE-TCONCAT, PTO-INST-TILE-TDEQUANT, PTO-INST-TILE-TEXTRACT, PTO-INST-TILE-TFILLPAD, PTO-INST-TILE-TGATHER, PTO-INST-TILE-TGEMV, PTO-INST-TILE-TGEMV-ACC, PTO-INST-TILE-TGEMV-BIAS, PTO-INST-TILE-TGEMV-MX, PTO-INST-TILE-TGEMV-MX-ACC, PTO-INST-TILE-TGEMV-MX-BIAS, PTO-INST-TILE-THISTOGRAM, PTO-INST-TILE-TINSERT, PTO-INST-TILE-TLOAD, PTO-INST-TILE-TMATMUL, PTO-INST-TILE-TMATMUL-ACC, PTO-INST-TILE-TMATMUL-BIAS, PTO-INST-TILE-TMATMUL-MX, PTO-INST-TILE-TMATMUL-MX-ACC, PTO-INST-TILE-TMATMUL-MX-BIAS, PTO-INST-TILE-TMOV, PTO-INST-TILE-TMRGSORT, PTO-INST-TILE-TPACK, PTO-INST-TILE-TPARTADD, PTO-INST-TILE-TPARTMAX, PTO-INST-TILE-TPARTMIN, PTO-INST-TILE-TPARTMUL, PTO-INST-TILE-TPERMUTE, PTO-INST-TILE-TPREFETCH, PTO-INST-TILE-TQUANT, PTO-INST-TILE-TSCATTER, PTO-INST-TILE-TSHUF, PTO-INST-TILE-TSORT, PTO-INST-TILE-TSTORE, PTO-INST-TILE-TTRANS, PTO-INST-TILE-TTRI, PTO-INST-TILE-TUNPACK, PTO-ISA-LEGACY-SHARED-MOVEMENT-001, PTO-TFILLPAD-CONTRACT-001, PTO-TLOAD-MEMORY-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, PTO-TPACK-CONTRACT-001, PTO-TPARTADD-CONTRACT-001, PTO-TPARTMAX-CONTRACT-001, PTO-TPARTMIN-CONTRACT-001, PTO-TPARTMUL-CONTRACT-001, PTO-TPERMUTE-CONTRACT-001, PTO-TSHUF-CONTRACT-001, PTO-TSTORE-MEMORY-001, PTO-TTRANS-CONTRACT-001, PTO-TUNPACK-CONTRACT-001
    SHA-256
    5689fa78a7291b6ae88d55197205e4cf79e9719ee5ba18ebf186f5c6871c350d
    Open exact decision source ↗ for ADR-0108

Unit metadata

Open 4 generated metadata fields
id
PTO-BLOCK-MODEL-DISPATCH-SHARED-CUBE-MATRIX
surface
block
classification
[
  "model",
  "dispatch",
  "shared-cube-matrix"
]
depends_on
[
  "PTO-BLOCK-MODEL-OPERANDS-SHARED-GENERATION",
  "PTO-TILE-MODEL-LEGALITY-MATRIX-FUNCTIONS",
  "PTO-TILE-MODEL-STATE-SHARED-REGISTERS"
]
Open generated traceability record
{
  "classification": [
    "model",
    "dispatch",
    "shared-cube-matrix"
  ],
  "documentation": "docs/block/model/dispatch/shared-cube-matrix.md",
  "id": "PTO-BLOCK-MODEL-DISPATCH-SHARED-CUBE-MATRIX",
  "mnemonic": null,
  "readiness_subjects": [
    "ADR-0072",
    "ADR-0096",
    "ADR-0097",
    "ADR-0100",
    "ADR-0101",
    "ADR-0105",
    "ADR-0106",
    "ADR-0108"
  ],
  "semantic_tests": [
    "PTO-AVS-BLOCK-SHARED-CUBE-SCALE-TRANSPOSE-002"
  ],
  "source": "asl/block/model/dispatch/shared-cube-matrix.asl",
  "surface": "block",
  "tests": [
    "PTO-AVS-BLOCK-MODEL-DISPATCH-SHARED-CUBE-MATRIX-STATIC-001",
    "PTO-AVS-BLOCK-SHARED-CUBE-SCALE-TRANSPOSE-002"
  ]
}

Sources and release identity

Show commit, paths, hashes, version, and canonical owners
Release
0.58.5 · Release candidate
Commit
7dc8b7e5b121d2b2499a2273bebff29e2cd86812
ASL SHA-256
c5ee2d9ad4f3ee8fef2cee6f315ff589a5442fb7eecf0190facfae5db236c2a9
Generated documentation
docs/block/model/dispatch/shared-cube-matrix.md · embedded in this page
Documentation SHA-256
9186733335b7b4401c99627e7a7645547c244c0fcbb0ba62b228180e9874a94d

Exact owners