跳到主要内容
页面框架已切换为简体中文。尚未完成本地化的交互标签暂时使用英文;ASL/NDF 源、稳定标识和证据在所有语言中保持原文。

PTO-TILE-MODEL-LEGALITY-MATRIX-FUNCTIONS

PTO-TILE-MODEL-LEGALITY-MATRIX-FUNCTIONS

ASL 伪代码

下面直接显示完整的 ASL 所有者。

// PTO-UNIT: {"id":"PTO-TILE-MODEL-LEGALITY-MATRIX-FUNCTIONS","surface":"tile","classification":["model","legality","matrix-functions"],"depends_on":["PTO-ARCH-DATA-TYPES-TILE-DATA-TYPES"]}// The CUBE Matrix selector and MX side-type rules are kept in one small unit// so schema and execution code cannot grow separate function tables.
// NDF-BEGIN: PTO-CUBE-MATRIX-SCALE-001// ndf: kind=contract level=L1 layer=tile status=accepted// Each Matrix-MX primary side MUST independently select group-32 E8M0 scale// for MX FP8/FP4 carriers or group-64 raw U32 scale for HiF4X2. HiF4X2 MUST// be accepted only by Matrix-MX input roles; ordinary Matrix MUST not gain it.// Each Local scale MUST use CUBE_M32 and each Shared scale MUST remain an// independently bound ordinary Tile with the corresponding primary location.// NDF-END: PTO-CUBE-MATRIX-SCALE-001
pure func TileMXInputTypeSupported(data_type: TileDataType) => booleanbegin    return data_type == TileDataType_FP16 ||           data_type == TileDataType_BF16 ||           data_type == TileDataType_E4M3 ||           data_type == TileDataType_E5M2 ||           data_type == TileDataType_E2M1X2 ||           data_type == TileDataType_E1M2X2 ||           data_type == TileDataType_HiF4X2;end;
pure func TileMXScaleGroupSize(data_type: TileDataType)    => integer {32,64}begin    assert TileMXInputTypeNeedsScale(data_type);    if data_type == TileDataType_HiF4X2 then return 64; end;    return 32;end;
pure func TileMXScaleCarrierType(data_type: TileDataType) => TileDataTypebegin    assert TileMXInputTypeNeedsScale(data_type);    if data_type == TileDataType_HiF4X2 then return TileDataType_U32; end;    return TileDataType_E8M0;end;
pure func TileMXScaleGroupCount(    k: integer {1..65535}, data_type: TileDataType)    => integer {1..2048}begin    let group_size = TileMXScaleGroupSize(data_type);    return ((k + (group_size - 1)) DIVRM group_size)        as integer {1..2048};end;
pure func TileMXInputTypeNeedsScale(data_type: TileDataType) => booleanbegin    assert TileMXInputTypeSupported(data_type);    return data_type != TileDataType_FP16 &&           data_type != TileDataType_BF16;end;
pure func TileMXOperandPairLegal(left_type: TileDataType,                                right_type: TileDataType) => booleanbegin    return TileMXInputTypeSupported(left_type) &&           TileMXInputTypeSupported(right_type);end;
pure func TileMatrixFunctionAssigned(function: integer {0..31}) => booleanbegin    return function == 0 || function == 1 || function == 2 ||           function == 4 || function == 5 || function == 6 ||           function == 16 || function == 17 || function == 18 ||           function == 20 || function == 21 || function == 22;end;
pure func TileMatrixFunctionUsesBias(function: integer {0..31}) => booleanbegin    return function == 1 || function == 5 ||           function == 17 || function == 21;end;
pure func TileMatrixFunctionUsesAccumulator(    function: integer {0..31}) => booleanbegin    return function == 2 || function == 6 ||           function == 18 || function == 22;end;
pure func TileMatrixFunctionUsesMX(function: integer {0..31}) => booleanbegin    return function == 4 || function == 5 || function == 6 ||           function == 20 || function == 21 || function == 22;end;
pure func TileMatrixFunctionIsGEMV(function: integer {0..31}) => booleanbegin    return function == 16 || function == 17 || function == 18 ||           function == 20 || function == 21 || function == 22;end;
pure func TileMatrixFunctionAllowsCScale(    function: integer {0..31}) => booleanbegin    return function == 2 || function == 6;end;
pure func TileMatrixLeftGroupSourceCount(    function: integer {0..31}, left_type: TileDataType) => integer {1..2}begin    if TileMatrixFunctionUsesMX(function) &&       TileMXInputTypeNeedsScale(left_type) then        return 2;    end;    return 1;end;
pure func TileMatrixRightGroupSourceCount(    function: integer {0..31}, right_type: TileDataType) => integer {1..2}begin    if TileMatrixFunctionUsesMX(function) &&       TileMXInputTypeNeedsScale(right_type) then        return 2;    end;    return 1;end;
pure func TileMatrixMathematicalSourceCount(    function: integer {0..31}, left_type: TileDataType,    right_type: TileDataType) => integer {2..5}begin    assert TileMatrixFunctionAssigned(function);    let matrix_sources = TileMatrixLeftGroupSourceCount(        function, left_type) + TileMatrixRightGroupSourceCount(        function, right_type);    let supplementary_source =        TileMatrixFunctionUsesBias(function) ||        TileMatrixFunctionUsesAccumulator(function);    return (matrix_sources + (if supplementary_source then 1 else 0))        as integer {2..5};end;
// Shared Matrix inputs are carried in complete operand groups.  A right-only// stream contains the right matrix and its optional scale.  A both-sides// stream contains the complete left group followed by the complete right// group.  TGEMV remains Local-only.pure func TileMatrixSharedSourceCountLegal(    function: integer {0..31}, left_type: TileDataType,    right_type: TileDataType, shared_count: integer {0..4}) => booleanbegin    assert TileMatrixFunctionAssigned(function);    if TileMatrixFunctionIsGEMV(function) then        return shared_count == 0;    end;    if shared_count == 0 then        return TRUE;    end;    let right_group = TileMatrixRightGroupSourceCount(        function, right_type);    let both_groups = TileMatrixLeftGroupSourceCount(        function, left_type) + right_group;    return shared_count == right_group ||           shared_count == both_groups;end;
// Local mathematical operands preserve their architectural order after the// Shared groups are removed.  ACC contributes C first; bias contributes the// final Local source.  Post-processing sources are not counted here.pure func TileMatrixLocalMathematicalSourceCount(    function: integer {0..31}, left_type: TileDataType,    right_type: TileDataType, shared_count: integer {0..4})    => integer {0..5}begin    assert TileMatrixSharedSourceCountLegal(        function, left_type, right_type, shared_count);    let supplementary = if        TileMatrixFunctionUsesBias(function) ||        TileMatrixFunctionUsesAccumulator(function)    then 1 else 0;    if shared_count == 0 then        return TileMatrixMathematicalSourceCount(            function, left_type, right_type) as integer {0..5};    end;    let right_group = TileMatrixRightGroupSourceCount(        function, right_type);    if shared_count == right_group then        return (TileMatrixLeftGroupSourceCount(function, left_type) +                supplementary) as integer {0..5};    end;    return supplementary as integer {0..5};end;

架构行为

该内部模型单元不在双语读者指南迁移范围内;请直接阅读本页的 ASL/NDF 所有者与验证证据。

NDF 条款

正文来自 owning ASL。拖拽或按钮只临时改变当前页面显示顺序。

    1. surfaceTILE
    2. ownerPTO-TILE-MODEL-LEGALITY-MATRIX-FUNCTIONS
    3. categoryCUBE-MATRIX-SCALE
    4. case001

    规范契约

    contract · L1 · accepted

    Each Matrix-MX primary side MUST independently select group-32 E8M0 scale for MX FP8/FP4 carriers or group-64 raw U32 scale for HiF4X2. HiF4X2 MUST be accepted only by Matrix-MX input roles; ordinary Matrix MUST not gain it. Each Local scale MUST use CUBE_M32 and each Shared scale MUST remain an independently bound ordinary Tile with the corresponding primary location.

    来源与引用
    完整稳定 ID
    PTO-CUBE-MATRIX-SCALE-001
    来源路径
    asl/tile/model/legality/matrix-functions.asl
    适用单元
    PTO-TILE-MODEL-LEGALITY-MATRIX-FUNCTIONS
    源 SHA-256
    2033750845ed44cc9b38e395c62399c66b1c4bd5ab8ba1b97153beafd992ef53
    条款 SHA-256
    d27d591456780e649a18505cd2554bd5d2729ac84db8e71a6225789748271575
    打开精确 canonical source ↗

Evidence index

15 matching entries

Executable evidence9
  • 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
  • Ordinary non-MX TMATMUL keeps HiF4X2 reserved from its input set.
    1. surfaceBLOCK
    2. ownerBSTART.TMATMUL
    3. categoryFAULT
    4. case002
    Show exact test source
    Sources and references
    Complete stable ID
    PTO-AVS-BLOCK-TMATMUL-HIF4-FAULT-002
    Path
    tests/asl/block/execution/BSTART.TMATMUL/block-fault-bstart-tmatmul-hif4-002.asl
    Kind / role
    fault
    Requirements
    PTO-CUBE-MATRIX-SCALE-001
    Pass condition
    A decoded ordinary TMATMUL with HiF4X2 A and B rejects before destination allocation or source effects.
    SHA-256
    eab0b5fd230875f426002f2203c6fc420abd1f562a3f66dc73a2388f097a1c2b
    Open exact source ↗ for PTO-AVS-BLOCK-TMATMUL-HIF4-FAULT-002
  • Decoded TMATMULMX accepts packed HiF4X2 sides with mandatory U32 group-64 scales.
    1. surfaceBLOCK
    2. ownerBSTART.TMATMULMX
    3. categoryEXECUTION
    4. case002
    Show exact test source
    Sources and references
    Complete stable ID
    PTO-AVS-BLOCK-TMATMULMX-HIF4-002
    Path
    tests/asl/block/execution/BSTART.TMATMULMX/block-exec-bstart-tmatmulmx-hif4-002.asl
    Kind / role
    execution
    Requirements
    PTO-CUBE-MATRIX-SCALE-001, PTO-CUBE-HIF4-SCALE-001
    Pass condition
    Two 1x1 packed HiF4X2 primaries and their Local CUBE_M32 U32 scale words execute through the Matrix-MX path and publish FP32 output.
    SHA-256
    91f5b9bff2f01f56f15768ed160eaef7f8e7b29073a15cb3c8cecd7de6211ba9
    Open exact source ↗ for PTO-AVS-BLOCK-TMATMULMX-HIF4-002
  • 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 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 Matrix function and side-specific scale tables are closed.
    1. surfaceTILE
    2. ownerPTO-TILE-MODEL-LEGALITY-MATRIX-FUNCTIONS
    3. categoryBOUNDARY
    4. case001
    Show exact test source
    Sources and references
    Complete stable ID
    PTO-AVS-TILE-MATRIX-FN-BOUND-001
    Path
    tests/asl/tile/model/legality/matrix-functions/tile-bound-matrix-fn-001.asl
    Kind / role
    boundary
    Requirements
    PTO-CUBE-MATRIX-SCALE-001
    Pass condition
    All twelve functions are assigned; HiF4X2 is Matrix-MX-only with group-64 U32 scale, while MX FP8/FP4 retain group-32 E8M0 scale.
    SHA-256
    9ec87260b98aea961160cb34f3bb7f4b8a0f2b77576f2be030bb8f31d915ae36
    Open exact source ↗ for PTO-AVS-TILE-MATRIX-FN-BOUND-001
  • PTO-TILE-MODEL-LEGALITY-MATRIX-FUNCTIONS compiles as an independent normative unit
    1. surfaceTILE
    2. ownerPTO-TILE-MODEL-LEGALITY-MATRIX-FUNCTIONS
    3. categorySTATIC-INVARIANT
    4. case001
    Show exact test source
    Sources and references
    Complete stable ID
    PTO-AVS-TILE-MODEL-LEGALITY-MATRIX-FUNCTIONS-STATIC-001
    Path
    tests/asl/tile/model/legality/matrix-functions/tile-static-matrix-functions-contract-001.asl
    Kind / role
    static-invariant
    Requirements
    PTO-CUBE-MATRIX-SCALE-001
    Pass condition
    the complete model and this unit's static invariant compile
    SHA-256
    1428cdbfa987e195595b8d50982d69f540e74673ff46624950484f731db1da83
    Open exact source ↗ for PTO-AVS-TILE-MODEL-LEGALITY-MATRIX-FUNCTIONS-STATIC-001
  • TMATMULMX scale operands are omitted or required independently from each matrix type.
    1. surfaceTILE
    2. ownerTMATMUL_MX
    3. categoryBOUNDARY
    4. case001
    Show exact test source
    Sources and references
    Complete stable ID
    PTO-AVS-TILE-TMATMUL-MX-SCALE-001
    Path
    tests/asl/tile/matrix-and-matrix-vector/matrix-matrix/TMATMUL_MX/tile-bound-tmatmul-mx-scale-001.asl
    Kind / role
    boundary
    Requirements
    PTO-INST-TILE-TMATMUL-MX, PTO-CUBE-MATRIX-SCALE-001
    Pass condition
    FP16 sides reject supplied scales while E4M3 sides require correctly shaped Local CUBE_M32 E8M0 scales.
    SHA-256
    8ceb961034bd461b37d3268a18c6046570f797bd9fb84b1b06ceb46377feb75a
    Open exact source ↗ for PTO-AVS-TILE-TMATMUL-MX-SCALE-001
  • TMATMULMX accepts seven side types and derives scale kind per side.
    1. surfaceTILE
    2. ownerTMATMUL_MX
    3. categoryBOUNDARY
    4. case001
    Show exact test source
    Sources and references
    Complete stable ID
    PTO-AVS-TILE-TMATMUL-MX-TYPES-001
    Path
    tests/asl/tile/matrix-and-matrix-vector/matrix-matrix/TMATMUL_MX/tile-bound-tmatmul-mx-types-001.asl
    Kind / role
    boundary
    Requirements
    PTO-INST-TILE-TMATMUL-MX, PTO-CUBE-MATRIX-SCALE-001
    Pass condition
    FP16 and BF16 omit scales; four MX compact formats require group-32 E8M0; HiF4X2 requires group-64 U32.
    SHA-256
    3300ebb15211699c9515cbcc9a26c4c83696f7fc9c0d0fa06301b3e8c99d31ae
    Open exact source ↗ for PTO-AVS-TILE-TMATMUL-MX-TYPES-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 history1
  • 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-LEGALITY-MATRIX-FUNCTIONS
surface
tile
classification
[
  "model",
  "legality",
  "matrix-functions"
]
depends_on
[
  "PTO-ARCH-DATA-TYPES-TILE-DATA-TYPES"
]
Open generated traceability record
{
  "classification": [
    "model",
    "legality",
    "matrix-functions"
  ],
  "documentation": "docs/tile/model/legality/matrix-functions.md",
  "id": "PTO-TILE-MODEL-LEGALITY-MATRIX-FUNCTIONS",
  "mnemonic": null,
  "readiness_subjects": [
    "ADR-0101"
  ],
  "semantic_tests": [
    "PTO-AVS-TILE-MATRIX-FN-BOUND-001"
  ],
  "source": "asl/tile/model/legality/matrix-functions.asl",
  "surface": "tile",
  "tests": [
    "PTO-AVS-TILE-MATRIX-FN-BOUND-001",
    "PTO-AVS-TILE-MODEL-LEGALITY-MATRIX-FUNCTIONS-STATIC-001"
  ]
}

来源与发布信息

展开 commit、路径、hash、版本和规范所有者
发布
0.58.5 · 候选发布
Commit
7dc8b7e5b121d2b2499a2273bebff29e2cd86812
ASL SHA-256
2033750845ed44cc9b38e395c62399c66b1c4bd5ab8ba1b97153beafd992ef53
生成文档
docs/tile/model/legality/matrix-functions.md · 已融合到当前页面
文档 SHA-256
187d6974a07cff7f1f99f186c7c0b515b8bd80700cf9bed9d2cd141cc9cd6aac

精确所有者