PTO-TILE-MODEL-LEGALITY-MATRIX-POSTPROCESS
PTO-TILE-MODEL-LEGALITY-MATRIX-POSTPROCESSASL pseudocode
The complete ASL owner is shown directly below.
// PTO-UNIT: {"id":"PTO-TILE-MODEL-LEGALITY-MATRIX-POSTPROCESS","surface":"tile","classification":["model","legality","matrix-postprocess"],"depends_on":["PTO-BLOCK-B-FPATR","PTO-BLOCK-MODEL-OPERANDS-SUBVIEW-DESCRIPTOR","PTO-BLOCK-MODEL-OPERANDS-TILE-BINDINGS","PTO-TILE-MODEL-LEGALITY-MATRIX-SHAPE"]}// PTO-REQ-CUBE-POSTPROCESS-001: auxiliary Matrix operands are completely// descriptor- and payload-preflighted before source snapshots or allocation.
readonly func BundleMatrixDestinationAt( ordinal: integer {0..2}) => TileIndexbegin var seen: integer {0..3} = 0; for binding = 0 to PTO_BUNDLE_TILE_BINDING_COUNT - 1 looplimit 16 do if _BundleTileBindings[[binding]].valid && _BundleTileBindings[[binding]].destination_valid then if seen == ordinal then return _BundleTileBindings[[binding]].destination; end; seen = (seen + 1) as integer {0..3}; end; end; return 0;end;
readonly func BundleMatrixSourceAt(ordinal: integer {0..8}) => TileIndexbegin var seen: integer {0..9} = 0; for binding = 0 to PTO_BUNDLE_TILE_BINDING_COUNT - 1 looplimit 16 do if _BundleTileBindings[[binding]].valid then if _BundleTileBindings[[binding]].source0_valid then if seen == ordinal then return BundleTileSourceIndex( binding as BundleTileBindingIndex, FALSE); end; seen = (seen + 1) as integer {0..9}; end; if _BundleTileBindings[[binding]].source1_valid then if seen == ordinal then return BundleTileSourceIndex( binding as BundleTileBindingIndex, TRUE); end; seen = (seen + 1) as integer {0..9}; end; end; end; return 0;end;
readonly func BundleMatrixArchitecturalSourceAt( ordinal: integer {0..8}) => TileIndexbegin var seen: integer {0..9} = 0; for binding = 0 to PTO_BUNDLE_TILE_BINDING_COUNT - 1 looplimit 16 do if _BundleTileBindings[[binding]].valid then if _BundleTileBindings[[binding]].source0_valid then if seen == ordinal then return BundleTileArchitecturalSourceIndex( binding as BundleTileBindingIndex, FALSE); end; seen = (seen + 1) as integer {0..9}; end; if _BundleTileBindings[[binding]].source1_valid then if seen == ordinal then return BundleTileArchitecturalSourceIndex( binding as BundleTileBindingIndex, TRUE); end; seen = (seen + 1) as integer {0..9}; end; end; end; return 0;end;
readonly func TileMatrixAuxiliarySourceSchemaLegal( source: TileIndex, valid_rows: integer {1..65535}, valid_columns: integer {1..65535}, data_type: TileDataType) => booleanbegin let tile = _Tiles[[source]]; return TileSourceContentsDefined(source) && TileInfoDescriptorLegal(tile) && tile.valid_rows == valid_rows && tile.valid_columns == valid_columns && tile.data_type == data_type && tile.layout == TileLayout_RowMajor && tile.location == TileLocation_Any;end;
readonly func TileMatrixVectorQuantContentsLegal( source: TileIndex, mode: bits(6)) => booleanbegin let tile = _Tiles[[source]]; for column = 0 to tile.valid_columns - 1 looplimit 65536 do let element = TileLogicalLinearIndex( tile, 0, column as integer {0..65535}); if !BundleFPATRQuantParameterWordLegal( mode, TileReadLogicalElement(tile, element)) then return FALSE; end; end; return TRUE;end;
readonly func TileMatrixVectorReluContentsLegal( source: TileIndex) => booleanbegin let tile = _Tiles[[source]]; for column = 0 to tile.valid_columns - 1 looplimit 65536 do let element = TileLogicalLinearIndex( tile, 0, column as integer {0..65535}); if !BundleFPATRReluParameterWordLegal( TileReadLogicalElement(tile, element)) then return FALSE; end; end; return TRUE;end;
readonly func BundleMatrixPostProcessSourcesLegal( mathematical_sources: integer {0..6}, m: integer {1..65535}, n: integer {1..65535}, accumulator_type: TileDataType) => booleanbegin if !BundleFPATRAccumulatorTypeLegal( _BundleFixedPointAttributes.pre_quant_mode, accumulator_type) then return FALSE; end; var ordinal = mathematical_sources as integer {0..8}; if _BundleFixedPointAttributes.row_max_en && _BundleFixedPointAttributes.row_max_init then let row_max = BundleMatrixSourceAt(ordinal); if !TileMatrixAuxiliarySourceSchemaLegal( row_max, m, 1, accumulator_type) then return FALSE; end; ordinal = (ordinal + 1) as integer {0..8}; end;
if BundleFPATRModeUsesVectorParameter( _BundleFixedPointAttributes.pre_quant_mode) then let quant = BundleMatrixSourceAt(ordinal); if !TileMatrixAuxiliarySourceSchemaLegal( quant, 1, n, TileDataType_U64) || !TileMatrixVectorQuantContentsLegal( quant, _BundleFixedPointAttributes.pre_quant_mode) then return FALSE; end; ordinal = (ordinal + 1) as integer {0..8}; end;
if BundleFPATRReluModeUsesVectorParameter( _BundleFixedPointAttributes.relu_mode) then let relu = BundleMatrixSourceAt(ordinal); if !TileMatrixAuxiliarySourceSchemaLegal( relu, 1, n, TileDataType_U64) || !TileMatrixVectorReluContentsLegal(relu) then return FALSE; end; end; return TRUE;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
13 matching entries
Executable evidence5
Matrix vector parameter preflight rejects subnormal FP19 carriers
- surfaceTILE
- ownerPTO-TILE-MODEL-LEGALITY-MATRIX-POSTPROCESS
- categoryBOUNDARY
- case002
Show exact test source
Sources and references
- Complete stable ID
PTO-AVS-TILE-MATRIX-PARAMS-002- Path
tests/asl/tile/model/legality/matrix-postprocess/tile-bound-matrix-params-002.asl- Kind / role
- boundary
- Requirements
- PTO-MATRIX-POSTPROCESS-BITEXACT-001, PTO-FP19-PARAMETER-CARRIER-001
- Pass condition
- normal quantization and activation carriers pass while subnormal and nonzero-unused-bit words reject
- SHA-256
9103c56ebc98d0f221d43e774a367f91d6e5c7cd530cfaa2b88dc95daec57f49
RowMaxIn uses an M by 1 Local accumulator descriptor
- surfaceTILE
- ownerPTO-TILE-MODEL-LEGALITY-MATRIX-POSTPROCESS
- categoryBOUNDARY
- case001
Show exact test source
Sources and references
- Complete stable ID
PTO-AVS-TILE-MATRIX-ROWMAX-DESC-001- Path
tests/asl/tile/model/legality/matrix-postprocess/tile-bound-matrix-rowmax-001.asl- Kind / role
- boundary
- Pass condition
- the exact descriptor passes while a shorter valid-row extent rejects
- SHA-256
5d4bfdaefaa175b73c163d8e8c49525dbd04d1c5cd751ee111347a2b8db49c87
vector PReLU uses one finite nonnegative FP19 value per output column
- surfaceTILE
- ownerPTO-TILE-MODEL-LEGALITY-MATRIX-POSTPROCESS
- categoryBOUNDARY
- case001
Show exact test source
Sources and references
- Complete stable ID
PTO-AVS-TILE-MATRIX-VPRELU-DESC-001- Path
tests/asl/tile/model/legality/matrix-postprocess/tile-bound-matrix-vprelu-001.asl- Kind / role
- boundary
- Pass condition
- zero and positive one pass while a nonzero bit above the low nineteen-bit carrier rejects
- SHA-256
cf02d7fd5f976c244add21cb5b334673587c8001addab512a3b450e1aac65de3
vector quantization uses a 1 by N Local U64 descriptor with mode-owned bits only
- surfaceTILE
- ownerPTO-TILE-MODEL-LEGALITY-MATRIX-POSTPROCESS
- categoryBOUNDARY
- case001
Show exact test source
Sources and references
- Complete stable ID
PTO-AVS-TILE-MATRIX-VQUANT-DESC-001- Path
tests/asl/tile/model/legality/matrix-postprocess/tile-bound-matrix-vquant-001.asl- Kind / role
- boundary
- Pass condition
- an FP19 scale plus S9 offset passes and one reserved low bit rejects
- SHA-256
96985f598e2556a2b79411685e4a3be2a018dd93076d56a8bac10b503905870e
PTO-TILE-MODEL-LEGALITY-MATRIX-POSTPROCESS compiles as an independent normative unit
- surfaceTILE
- ownerPTO-TILE-MODEL-LEGALITY-MATRIX-POSTPROCESS
- categorySTATIC-INVARIANT
- case001
Show exact test source
Sources and references
- Complete stable ID
PTO-AVS-TILE-MODEL-LEGALITY-MATRIX-POSTPROCESS-STATIC-001- Path
tests/asl/tile/model/legality/matrix-postprocess/tile-static-matrix-postprocess-contract-001.asl- Kind / role
- static-invariant
- Pass condition
- the complete model and this unit's static invariant compile
- SHA-256
13236af3657b566a4e0489442f948de7f2ebb4005d2c42d5fd13faa49f86428d
Commit-scoped evidence5
spec/evidence/release-traceability-readiness.json · closed
PTO-EVIDENCE-RELEASE-TRACEABILITYSources 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
spec/evidence/instruction-contract-closure.json · closed
PTO-EVIDENCE-INSTRUCTION-CONTRACT-CLOSURESources 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
spec/evidence/architecture-readiness.json · open
PTO-EVIDENCE-ARCHITECTURE-READINESSSources and references
- Complete stable ID
PTO-EVIDENCE-ARCHITECTURE-READINESS- Path
spec/evidence/architecture-readiness.json- Kind / role
- architecture maturity and blockers
- SHA-256
4b0b85199101251bea744e0f3591cc31906909dc80d5ab651c417a936036a004
spec/evidence/release-gate-readiness.json · ready-for-exact-head-verification
PTO-EVIDENCE-RELEASE-GATE-READINESSSources 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
spec/release-manifest.json · draft
PTO-EVIDENCE-RELEASE-MANIFESTSources and references
- Complete stable ID
PTO-EVIDENCE-RELEASE-MANIFEST- Path
spec/release-manifest.json- Kind / role
- release content and encoding fingerprints
- SHA-256
1a64c109ed7a90351c41e2a418b3c0ebaf8ad975838986d2101385186b85c0d8
Decision history3
Re-encode B.IOT and B.IOS size and PE mode fields · accepted
- decision recordADR
- 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
B.SUBVIEW and B.ASSEMBLE range-modifier association · accepted
- decision recordADR
- case0098
Decision record
Loading ADR-0098…
Sources and references
- Complete stable ID
ADR-0098- Path
docs/status/decisions/0098-b-range-modifiers.md- Affected units
- PTO-ARCH-PROFILE-RESET, PTO-BLOCK-B-IOT, PTO-BLOCK-B-IOS, PTO-BLOCK-B-SUBVIEW, PTO-BLOCK-B-ASSEMBLE, PTO-BLOCK-MODEL-DISPATCH-COMMANDS, PTO-BLOCK-MODEL-OPERANDS-RANGE-MODIFIERS, PTO-BLOCK-MODEL-OPERANDS-SHARED-BINDINGS, PTO-BLOCK-MODEL-OPERANDS-TILE-BINDINGS, PTO-BLOCK-MODEL-STATE-CONTROL-STATE, PTO-BLOCK-MODEL-STATE-DESCRIPTOR-STATE, PTO-BLOCK-MODEL-STATE-TYPES, PTO-ARCH-DATA-TYPES-TRAP-CONTEXT, PTO-ARCH-PROFILE-REFERENCE-PROFILE, PTO-ARCH-PROFILE-TRAP-CONTEXT-RECOVERY, PTO-ARCH-STATE-TRAP-CONTEXT, PTO-BLOCK-MODEL-DISPATCH-TILE-EXECUTION, PTO-BLOCK-MODEL-DISPATCH-TILE-SCHEMA, PTO-BLOCK-MODEL-FAULTS-ROLLBACK, PTO-BLOCK-MODEL-LIFECYCLE-RESET, PTO-BLOCK-MODEL-OPERANDS-LOCAL-GENERATION, PTO-BLOCK-MODEL-OPERANDS-SHARED-GENERATION, PTO-BLOCK-MODEL-OPERANDS-PORTABLE-CARRIERS, PTO-BLOCK-MODEL-OPERANDS-SUBVIEW-DESCRIPTOR, PTO-BLOCK-MODEL-STATE-SHARED-GENERATION, PTO-TILE-MODEL-LEGALITY-MATRIX-POSTPROCESS
- Affected NDF
- PTO-B-IOT-STREAM-001, PTO-B-IOS-SHARED-STATE-001, PTO-B-SUBVIEW-RANGE-001, PTO-B-ASSEMBLE-RANGE-001, PTO-B-SUBVIEW-DESCRIPTOR-001, PTO-BLOCK-TILE-OPERATION-APPLICABILITY-001, PTO-B-ASSEMBLE-LOCAL-GENERATION-001, PTO-B-ASSEMBLE-SHARED-GENERATION-001, PTO-B-ASSEMBLE-SHARED-STANDALONE-001, PTO-B-ASSEMBLE-CONSUMER-READINESS-001, PTO-B-ASSEMBLE-SPECULATION-001, PTO-B-ASSEMBLE-PRODUCER-EFFECT-ELIGIBILITY-001
- SHA-256
e194ccc6b6922fd4b65066b533f5e4b0eba094e099970059bca8e25b4e466fba
Matrix Scale Cell Layouts, HiF4 Scale Words, and CScale · accepted
- decision recordADR
- 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
Unit metadata
Open 4 generated metadata fields
Open generated traceability record
{
"classification": [
"model",
"legality",
"matrix-postprocess"
],
"documentation": "docs/tile/model/legality/matrix-postprocess.md",
"id": "PTO-TILE-MODEL-LEGALITY-MATRIX-POSTPROCESS",
"mnemonic": null,
"readiness_subjects": [
"ADR-0096",
"ADR-0098",
"ADR-0101"
],
"semantic_tests": [
"PTO-AVS-TILE-MATRIX-PARAMS-002",
"PTO-AVS-TILE-MATRIX-ROWMAX-DESC-001",
"PTO-AVS-TILE-MATRIX-VPRELU-DESC-001",
"PTO-AVS-TILE-MATRIX-VQUANT-DESC-001"
],
"source": "asl/tile/model/legality/matrix-postprocess.asl",
"surface": "tile",
"tests": [
"PTO-AVS-TILE-MATRIX-PARAMS-002",
"PTO-AVS-TILE-MATRIX-ROWMAX-DESC-001",
"PTO-AVS-TILE-MATRIX-VPRELU-DESC-001",
"PTO-AVS-TILE-MATRIX-VQUANT-DESC-001",
"PTO-AVS-TILE-MODEL-LEGALITY-MATRIX-POSTPROCESS-STATIC-001"
]
}Sources and release identity
Show commit, paths, hashes, version, and canonical owners
- Release
0.58.5· Release candidate- Commit
7dc8b7e5b121d2b2499a2273bebff29e2cd86812- Original ASL
- asl/tile/model/legality/matrix-postprocess.asl
- ASL SHA-256
67a3e10ff840fe720de99090384cd5da1c7e2a1d8cdbc5ea2a1b6ff07bbee9ee- Generated documentation
- docs/tile/model/legality/matrix-postprocess.md · embedded in this page
- Documentation SHA-256
f64d9b1d82d960adb4145443898213e5555427d435fc00e15cd66ce5823c0520
Exact owners
- ASL PTO-TILE-MODEL-LEGALITY-MATRIX-POSTPROCESS
asl/tile/model/legality/matrix-postprocess.asl