页面框架已切换为简体中文。尚未完成本地化的交互标签暂时使用英文;ASL/NDF 源、稳定标识和证据在所有语言中保持原文。
PTO-TILE-MODEL-DEFINEDNESS-ELEMENTS
PTO-TILE-MODEL-DEFINEDNESS-ELEMENTSASL 伪代码
下面直接显示完整的 ASL 所有者。
// PTO-UNIT: {"id":"PTO-TILE-MODEL-DEFINEDNESS-ELEMENTS","surface":"tile","classification":["model","definedness","elements"],"depends_on":["PTO-ARCH-DATA-TYPES-TILE-DATA-TYPES","PTO-TILE-MODEL-STATE-ALLOCATION","PTO-TILE-MODEL-DEFINEDNESS-PACKED-BOUNDARY"]}pure func TileFractalInnerElements( data_type: TileDataType) => integer {4,8,16,32,64}begin // PTO fractals contain 16 rows by 32 bytes. Packed X2 formats therefore // carry 64 independently addressed logical nibbles in each fractal row. return (256 DIV TileElementBits(data_type)) as integer {4,8,16,32,64};end;readonly func TileLayoutShapeLegal(tile: TileInfo) => booleanbegin if tile.layout == TileLayout_ImplementationDefined then return FALSE; end; if tile.layout == TileLayout_RowMajor || tile.layout == TileLayout_ColumnMajor then return TRUE; end; let inner_elements = TileFractalInnerElements(tile.data_type); return tile.rows MOD 16 == 0 && tile.columns MOD inner_elements == 0;end;readonly func TileGenericIndexingPermitted(tile: TileInfo) => booleanbegin return !TileLayoutIsCube(tile.layout) && TileLayoutShapeLegal(tile);end;readonly func TileLinearIndex(tile: TileInfo, row: integer {0..65535}, column: integer {0..65535}) => ModelTileElementIndexbegin assert row < tile.rows; assert column < tile.columns; assert TileGenericIndexingPermitted(tile); var index: integer = 0; if tile.layout == TileLayout_RowMajor then index = row * tile.columns + column; elsif tile.layout == TileLayout_ColumnMajor then index = column * tile.rows + row; else let inner_elements = TileFractalInnerElements(tile.data_type); let block_rows: integer {0..65535} = (tile.rows DIVRM 16) as integer {0..65535}; let block_columns: integer {0..65535} = (tile.columns DIVRM inner_elements) as integer {0..65535}; let block_row: integer {0..65535} = (row DIVRM 16) as integer {0..65535}; let block_column: integer {0..65535} = (column DIVRM inner_elements) as integer {0..65535}; let inner_row: integer {0..15} = (row MOD 16) as integer {0..15}; let inner_column: integer {0..63} = (column MOD inner_elements) as integer {0..63}; let block_elements: integer {64..1024} = (16 * inner_elements) as integer {64..1024}; if tile.layout == TileLayout_ZN then index = (block_row * block_columns + block_column) * block_elements + inner_column * 16 + inner_row; else assert tile.layout == TileLayout_NZ; index = (block_column * block_rows + block_row) * block_elements + inner_row * inner_elements + inner_column; end; end; assert index < PTO_MODEL_TILE_ELEMENTS; return index as ModelTileElementIndex;end;readonly func TileStorageIndex(tile: TileInfo, row: integer {0..65535}, column: integer {0..65535}) => ModelTileElementIndexbegin if !TileLayoutIsCube(tile.layout) then return TileLinearIndex(tile, row, column); end; assert TileCubeDescriptorShapeLegal(tile.capacity_bytes, tile.valid_rows, tile.valid_columns, tile.data_type, tile.layout); assert tile.rows == TileCubeStorageRows( tile.layout, tile.valid_rows, tile.data_type); assert tile.columns == TileCubeStorageColumns( tile.layout, tile.valid_columns, tile.data_type); assert tile.cube_k_repeat == TileCubeKRepeat(tile.layout, tile.valid_rows, tile.valid_columns, tile.data_type); assert tile.cube_n_repeat == TileCubeNRepeat(tile.layout, tile.valid_rows, tile.valid_columns, tile.data_type); assert tile.cube_cell_count == TileCubeCellCount(tile.layout, tile.valid_rows, tile.valid_columns, tile.data_type); assert tile.cube_storage_bytes == TileCubeRequiredBytes(tile.layout, tile.valid_rows, tile.valid_columns, tile.data_type); return TileCubePayloadIndex(tile, row, column);end;
readonly func TileLogicalLinearIndex(tile: TileInfo, row: integer {0..65535}, column: integer {0..65535}) => PackedTileElementIndexbegin if TileUsesPackedCarrierRepresentation(tile) then return TilePackedLinearIndex(tile, row, column); end; return TileStorageIndex(tile, row, column) as PackedTileElementIndex;end;pure func TileElementBytes(data_type: TileDataType) => integer {1,2,4,8}begin case data_type of when TileDataType_S8, TileDataType_U8, TileDataType_HiF8, TileDataType_E4M3, TileDataType_E5M2, TileDataType_E3M2, TileDataType_E2M3, TileDataType_E2M1X2, TileDataType_E1M2X2, TileDataType_E8M0, TileDataType_HiF4X2, TileDataType_S4X2, TileDataType_U4X2 => return 1; when TileDataType_S16, TileDataType_U16, TileDataType_FP16, TileDataType_BF16 => return 2; when TileDataType_S32, TileDataType_U32, TileDataType_FP32, TileDataType_TF32, TileDataType_HF32 => return 4; when TileDataType_S64, TileDataType_U64, TileDataType_FP64 => return 8; end;end;pure func TileDataTypeIsSigned(data_type: TileDataType) => booleanbegin return data_type == TileDataType_S8 || data_type == TileDataType_S16 || data_type == TileDataType_S32 || data_type == TileDataType_S64 || data_type == TileDataType_S4X2;end;pure func TileDataTypeIsUnsignedInteger(data_type: TileDataType) => booleanbegin return data_type == TileDataType_U8 || data_type == TileDataType_U16 || data_type == TileDataType_U32 || data_type == TileDataType_U64 || data_type == TileDataType_U4X2;end;pure func TileDataTypeIsInteger(data_type: TileDataType) => booleanbegin return TileDataTypeIsSigned(data_type) || TileDataTypeIsUnsignedInteger(data_type);end;pure func IndexedTLSUTransferDataTypeLegal( data_type: TileDataType) => booleanbegin // Indexed TLSU addresses are byte displacements. A packed four-bit // transfer would additionally need a low/high-nibble selector, which the // block schema does not encode. IndexTile legality is governed separately // by IndexedTLSUIndexDataTypeLegal. return !TileDataTypeIsFourBit(data_type);end;pure func IndexedTLSUIndexDataTypeLegal( data_type: TileDataType) => booleanbegin return TileDataTypeIsInteger(data_type);end;pure func TileDataTypeIsFloating(data_type: TileDataType) => booleanbegin return data_type == TileDataType_FP64 || data_type == TileDataType_FP32 || data_type == TileDataType_TF32 || data_type == TileDataType_HF32 || data_type == TileDataType_FP16 || data_type == TileDataType_BF16 || data_type == TileDataType_HiF8 || data_type == TileDataType_E4M3 || data_type == TileDataType_E5M2 || data_type == TileDataType_E3M2 || data_type == TileDataType_E2M3 || data_type == TileDataType_E2M1X2 || data_type == TileDataType_E1M2X2 || data_type == TileDataType_E8M0 || data_type == TileDataType_HiF4X2;end;pure func TileMatrixAccumulatorDataType(data_type: TileDataType) => TileDataTypebegin if TileDataTypeIsSigned(data_type) then return TileDataType_S32; end; if TileDataTypeIsUnsignedInteger(data_type) then return TileDataType_U32; end; return TileDataType_FP32;end;pure func TilePadValueForDataType(pad_value: TilePadValue, data_type: TileDataType) => Wordbegin if pad_value == TilePad_Zero || pad_value == TilePad_Null then return Zeros{PTO_XLEN}; end; if pad_value == TilePad_Max then case data_type of when TileDataType_FP64 => return Zeros{PTO_XLEN} + 0x7fefffffffffffff; when TileDataType_FP32 => return Zeros{PTO_XLEN} + 0x7f7fffff; when TileDataType_TF32 => return Zeros{PTO_XLEN} + 0x7f7fe000; when TileDataType_HF32 => return Zeros{PTO_XLEN} + 0x7f7ff000; when TileDataType_FP16 => return Zeros{PTO_XLEN} + 0x7bff; when TileDataType_BF16 => return Zeros{PTO_XLEN} + 0x7f7f; when TileDataType_E4M3 => return Zeros{PTO_XLEN} + 0x7e; when TileDataType_E5M2 => return Zeros{PTO_XLEN} + 0x7b; when TileDataType_U8 => return Zeros{PTO_XLEN} + 0xff; when TileDataType_U16 => return Zeros{PTO_XLEN} + 0xffff; when TileDataType_U32 => return Zeros{PTO_XLEN} + 0xffffffff; when TileDataType_U64 => return Ones{PTO_XLEN}; when TileDataType_S8 => return Zeros{PTO_XLEN} + 0x7f; when TileDataType_S16 => return Zeros{PTO_XLEN} + 0x7fff; when TileDataType_S32 => return Zeros{PTO_XLEN} + 0x7fffffff; when TileDataType_S64 => return Zeros{PTO_XLEN} + 0x7fffffffffffffff; otherwise => return Ones{PTO_XLEN}; end; end; case data_type of when TileDataType_FP64 => return Zeros{PTO_XLEN} + 0xffefffffffffffff; when TileDataType_FP32 => return Zeros{PTO_XLEN} + 0xff7fffff; when TileDataType_TF32 => return Zeros{PTO_XLEN} + 0xff7fe000; when TileDataType_HF32 => return Zeros{PTO_XLEN} + 0xff7ff000; when TileDataType_FP16 => return Zeros{PTO_XLEN} + 0xfbff; when TileDataType_BF16 => return Zeros{PTO_XLEN} + 0xff7f; when TileDataType_E4M3 => return Zeros{PTO_XLEN} + 0xfe; when TileDataType_E5M2 => return Zeros{PTO_XLEN} + 0xfb; when TileDataType_U8, TileDataType_U16, TileDataType_U32, TileDataType_U64, TileDataType_U4X2 => return Zeros{PTO_XLEN}; when TileDataType_S8 => return Zeros{PTO_XLEN} + 0x80; when TileDataType_S16 => return Zeros{PTO_XLEN} + 0x8000; when TileDataType_S32 => return Zeros{PTO_XLEN} + 0x80000000; when TileDataType_S64 => return Zeros{PTO_XLEN} + 0x8000000000000000; otherwise => return Zeros{PTO_XLEN} + 0x8000000000000000; end;end;
readonly func ReadTileElement(index: TileIndex, row: integer {0..65535}, column: integer {0..65535}) => Wordbegin let tile = _Tiles[[index]]; let element = TileLogicalLinearIndex(tile, row, column); assert TileLogicalElementDefined(tile, element); return TileReadLogicalElement(tile, element);end;
readonly func TileElementDefined(index: TileIndex, row: integer {0..65535}, column: integer {0..65535}) => booleanbegin let tile = _Tiles[[index]]; let element = TileLogicalLinearIndex(tile, row, column); return TileLogicalElementDefined(tile, element);end;
readonly func TilePredicateValuesLegal(index: TileIndex) => booleanbegin return TileSourceContentsDefined(index) && _Tiles[[index]].storage_kind == TileStorage_Predicate;end;
readonly func TilePredicateLogicalIndex( tile: TileInfo, row: integer {0..65535}, column: integer {0..65535}) => integer {0..16383}begin assert tile.storage_kind == TileStorage_Predicate; assert row < tile.rows && column < tile.columns; return (row * tile.columns + column) as integer {0..16383};end;
pure func TilePredicateByteIndex( logical_index: integer {0..16383}) => integer {0..2047}begin return (logical_index DIVRM 8) as integer {0..2047};end;
pure func TilePredicateBitIndex( logical_index: integer {0..16383}) => integer {0..7}begin return (logical_index MOD 8) as integer {0..7};end;
readonly func TilePredicateBitFromInfo( tile: TileInfo, row: integer {0..65535}, column: integer {0..65535}) => booleanbegin let logical = TilePredicateLogicalIndex(tile, row, column); let byte_index = TilePredicateByteIndex(logical); let bit_index = TilePredicateBitIndex(logical); return tile.payload[[byte_index]][bit_index] == '1';end;
func TileInfoWithPredicateBit( tile: TileInfo, row: integer {0..65535}, column: integer {0..65535}, value: boolean) => TileInfobegin var result = tile; let logical = TilePredicateLogicalIndex(result, row, column); let byte_index = TilePredicateByteIndex(logical); let bit_index = TilePredicateBitIndex(logical); result.payload[[byte_index]][bit_index] = if value then '1' else '0'; if result.defined_elements[logical] == '0' then result.defined_elements[logical] = '1'; result.defined_valid_elements = (result.defined_valid_elements + 1) as integer {0..524288}; end; result.contents_defined = result.defined_valid_elements == result.valid_rows * result.valid_columns; return result;end;
func WriteTilePredicateBit( index: TileIndex, row: integer {0..65535}, column: integer {0..65535}, value: boolean)begin assert row < _Tiles[[index]].valid_rows; assert column < _Tiles[[index]].valid_columns; _Tiles[[index]] = TileInfoWithPredicateBit( _Tiles[[index]], row, column, value);end;
readonly func TilePredicateBitDefined( index: TileIndex, row: integer {0..65535}, column: integer {0..65535}) => booleanbegin let logical = TilePredicateLogicalIndex(_Tiles[[index]], row, column); return _Tiles[[index]].defined_elements[logical] == '1';end;
readonly func ReadTilePredicateBit( index: TileIndex, row: integer {0..65535}, column: integer {0..65535}) => booleanbegin assert TilePredicateBitDefined(index, row, column); return TilePredicateBitFromInfo(_Tiles[[index]], row, column);end;
readonly func ReadTilePredicateByte( index: TileIndex, byte_index: integer {0..2047}) => bits(8)begin assert _Tiles[[index]].storage_kind == TileStorage_Predicate; return _Tiles[[index]].payload[[byte_index]][7:0];end;
func PredicateTileWithPadding( tile: TileInfo, pad_value: TilePadValue) => TileInfobegin var result = tile; assert result.storage_kind == TileStorage_Predicate; let padding_defined = pad_value != TilePad_Null; let padding_value = pad_value == TilePad_Max; for row = 0 to result.rows - 1 looplimit 65536 do for column = 0 to result.columns - 1 looplimit 65536 do if row >= result.valid_rows || column >= result.valid_columns then let logical = TilePredicateLogicalIndex( result, row as integer {0..65535}, column as integer {0..65535}); let byte_index = TilePredicateByteIndex(logical); let bit_index = TilePredicateBitIndex(logical); result.payload[[byte_index]][bit_index] = if padding_value then '1' else '0'; result.defined_elements[logical] = if padding_defined then '1' else '0'; end; end; end; return result;end;
func ApplyPredicateTilePadding(index: TileIndex, pad_value: TilePadValue)begin _Tiles[[index]] = PredicateTileWithPadding( _Tiles[[index]], pad_value);end;
readonly func TileSourceEncodingsValid(index: TileIndex) => booleanbegin if !TileSourceContentsDefined(index) || !TileGenericIndexingPermitted(_Tiles[[index]]) then return FALSE; end;
let tile = _Tiles[[index]]; let payload = tile.payload; for row = 0 to tile.valid_rows - 1 looplimit 65536 do for column = 0 to tile.valid_columns - 1 looplimit 65536 do let element = TileLogicalLinearIndex( tile, row as integer {0..65535}, column as integer {0..65535}); if !TileNumericEncodingValid( tile.data_type, TileReadLogicalElement(tile, element)) then return FALSE; end; end; end; return TRUE;end;
func WriteTileElement(index: TileIndex, row: integer {0..65535}, column: integer {0..65535}, value: Word)begin let tile = _Tiles[[index]]; let element = TileLogicalLinearIndex(tile, row, column); let was_defined = TileLogicalElementDefined(tile, element); _Tiles[[index]] = TileInfoWithLogicalElement(tile, element, value); if !was_defined then if row < _Tiles[[index]].valid_rows && column < _Tiles[[index]].valid_columns then assert _Tiles[[index]].defined_valid_elements < 524288; _Tiles[[index]].defined_valid_elements = (_Tiles[[index]].defined_valid_elements + 1) as integer {0..524288}; end; end; _Tiles[[index]].contents_defined = _Tiles[[index]].defined_valid_elements == _Tiles[[index]].valid_rows * _Tiles[[index]].valid_columns;end;
func TileWithValidRegionDefined(tile: TileInfo) => TileInfobegin var result = tile; for row = 0 to result.valid_rows - 1 looplimit 524288 do for column = 0 to result.valid_columns - 1 looplimit 65536 do let element = TileLogicalLinearIndex( result, row as integer {0..65535}, column as integer {0..65535}); result = TileInfoWithLogicalElement(result, element, TileReadLogicalElement(result, element)); end; end; result.defined_valid_elements = (result.valid_rows * result.valid_columns) as integer {0..524288}; result.contents_defined = TRUE; return result;end;
func MarkTileValidRegionDefined(index: TileIndex)begin _Tiles[[index]] = TileWithValidRegionDefined(_Tiles[[index]]);end;
func TileWithPadding(tile: TileInfo, pad_value: TilePadValue) => TileInfobegin var result = tile; let padding_defined = pad_value != TilePad_Null; let padding = TilePadValueForDataType(pad_value, result.data_type); for row = 0 to result.rows - 1 looplimit 65536 do for column = 0 to result.columns - 1 looplimit 65536 do if row >= result.valid_rows || column >= result.valid_columns then let element = TileLogicalLinearIndex( result, row as integer {0..65535}, column as integer {0..65535}); result = TileInfoWithLogicalElementAndDefined( result, element, padding, padding_defined); end; end; end; return result;end;
func ApplyTilePadding(index: TileIndex, pad_value: TilePadValue)begin _Tiles[[index]] = TileWithPadding(_Tiles[[index]], pad_value);end;
func MarkTilePhysicalRegionDefined(index: TileIndex)begin let tile = _Tiles[[index]]; for row = 0 to tile.rows - 1 looplimit 65536 do for column = 0 to tile.columns - 1 looplimit 65536 do let element = TileLogicalLinearIndex( tile, row as integer {0..65535}, column as integer {0..65535}); _Tiles[[index]] = TileInfoWithLogicalElement( _Tiles[[index]], element, TileReadLogicalElement(tile, element)); end; end; _Tiles[[index]].defined_valid_elements = (tile.valid_rows * tile.valid_columns) as integer {0..524288}; _Tiles[[index]].contents_defined = TRUE;end;readonly func TileShapesMatch(left: TileInfo, right: TileInfo) => booleanbegin return left.rows == right.rows && left.columns == right.columns && left.valid_rows == right.valid_rows && left.valid_columns == right.valid_columns && left.storage_kind == right.storage_kind && left.data_type == right.data_type;end;
架构行为
该内部模型单元不在双语读者指南迁移范围内;请直接阅读本页的 ASL/NDF 所有者与验证证据。
NDF 条款
正文来自 owning ASL。拖拽或按钮只临时改变当前页面显示顺序。
No NDF clause is attached to this unit.
Evidence index
9 matching entries
Executable evidence3
CUBE physical positions outside the valid region receive PadValue without becoming valid elements
- surfaceTILE
- ownerPTO-TILE-MODEL-DEFINEDNESS-ELEMENTS
- categorySTATE-TRANSITION
- 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
PTO-TILE-MODEL-DEFINEDNESS-ELEMENTS compiles as an independent normative unit
- surfaceTILE
- ownerPTO-TILE-MODEL-DEFINEDNESS-ELEMENTS
- categorySTATIC-INVARIANT
- case001
Show exact test source
Sources and references
- Complete stable ID
PTO-AVS-TILE-MODEL-DEFINEDNESS-ELEMENTS-STATIC-001- Path
tests/asl/tile/model/definedness/elements/tile-static-elements-contract-001.asl- Kind / role
- static-invariant
- Pass condition
- the complete model and this unit's static invariant compile
- SHA-256
177fec07698dadcbfac822e7c25a29a2c63427e0e972c8a32ba3a22ca3f20d6f
Covers Tile Element Definedness.
- surfaceTILE
- ownerPTO-TILE-MODEL-DEFINEDNESS-ELEMENTS
- categoryEXECUTION
- case001
Show exact test source
Sources and references
- Complete stable ID
PTO-AVS-TILE-TESTTILEELEMENTDEFINEDNESS-EXECUTION-001- Path
tests/asl/tile/model/definedness/elements/tile-exec-element-definedness-001.asl- Kind / role
- execution
- Pass condition
- TestTileElementDefinedness completes without assertion failure
- SHA-256
10ba62d77e2ad13dc604cae88667c34f53a75e71203c6e3008dd0efb48e84e73
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 history1
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
Unit metadata
Open 4 generated metadata fields
Open generated traceability record
{
"classification": [
"model",
"definedness",
"elements"
],
"documentation": "docs/tile/model/definedness/elements.md",
"id": "PTO-TILE-MODEL-DEFINEDNESS-ELEMENTS",
"mnemonic": null,
"readiness_subjects": [
"ADR-0096"
],
"semantic_tests": [
"PTO-AVS-TILE-CUBE-PADDING-001",
"PTO-AVS-TILE-TESTTILEELEMENTDEFINEDNESS-EXECUTION-001"
],
"source": "asl/tile/model/definedness/elements.asl",
"surface": "tile",
"tests": [
"PTO-AVS-TILE-CUBE-PADDING-001",
"PTO-AVS-TILE-MODEL-DEFINEDNESS-ELEMENTS-STATIC-001",
"PTO-AVS-TILE-TESTTILEELEMENTDEFINEDNESS-EXECUTION-001"
]
}来源与发布信息
展开 commit、路径、hash、版本和规范所有者
- 发布
0.58.5· 候选发布- Commit
7dc8b7e5b121d2b2499a2273bebff29e2cd86812- ASL SHA-256
c01757fba2b8b32ccf3a4df8e2a2a111d83950d4af08488c3a8cfb5bc51447e6- 生成文档
- docs/tile/model/definedness/elements.md · 已融合到当前页面
- 文档 SHA-256
20de2b500f31882e1f48f068a036c0f8afa801a6889927c1eb20126a4d0ba490
精确所有者
- ASL PTO-TILE-MODEL-DEFINEDNESS-ELEMENTS
asl/tile/model/definedness/elements.asl