Operands and parameters
DataType- tile element data type selector
Starts CUBE Function 6 for the TMATMUL_MX_ACC Matrix-matrix complete-bundle operation.
PTO-BLOCK-BSTART-TMATMULMX-ACCBSTART.TMATMULMX.ACC DataType| Field | Bits | Signedness | Architectural role | Encoded zero |
|---|---|---|---|---|
DataType | 5 | encoding-defined | tile element data type selector | Encoded zero selects FP64. |
Loading WaveDrom diagram… The encoding table and WaveJSON remain available below.
| Decoded item | Bit range | Value |
|---|---|---|
| DataType | 31:27 | variable |
| Constant | 26:0 | 27'b000011000110001000110000001 |
{
"reg": [
{
"bits": 27,
"name": "27'b000011000110001000110000001"
},
{
"bits": 5,
"name": "DataType"
}
],
"config": {
"bits": 32,
"fontsize": 13,
"hspace": 900,
"lanes": 1,
"offset": 0
}
}BSTART.TMATMULMX.ACC DataType
DataTypeDecode and Operation come directly from the instruction owner and remain separated by execution phase.
readonly func InstructionContractMatches_BSTART_TMATMULMX_ACC( operation: CommandOperation) => booleanbegin return operation == CommandOperation_bstart_tmatmulmx_acc_32_70fa59b0ab4c;end;readonly func InstructionContractTileOperation_BSTART_TMATMULMX_ACC() => TileOperationbegin return TileOperation_TMATMUL_MX_ACC;end;
readonly func InstructionContractCubeFunction_BSTART_TMATMULMX_ACC() => integer {0..31}begin return 6;end;
readonly func InstructionContractSharedOperandsAllowed_BSTART_TMATMULMX_ACC() => booleanbegin return TRUE;end;
readonly func InstructionContractHandler_BSTART_TMATMULMX_ACC() => CommandSemanticHandlerbegin return CommandHandler_ExecuteBundleStart;end;// PTO-INSTRUCTION: {"assembly":["BSTART.TMATMULMX.ACC DataType"],"block":[],"catalog_indices":[45],"catalog_records":[{"asm":"BSTART.TMATMULMX.ACC DataType","constraints":[{"field":"DataType","operator":"one-of","values":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,16,17,18,19,20,24,25,26,27,28]}],"encoding":[{"index":0,"mask":"0x07ffffff","match":"0x00631181","width_bits":32}],"encoding_kind":"L32","fields":[{"name":"DataType","pieces":[{"instruction_lsb":27,"value_lsb":0,"width":5}],"signedness":"encoding-defined","width":5}],"form_id":"bstart_tmatmulmx_acc_32_70fa59b0ab4c","length_bits":32,"mnemonic":"BSTART.TMATMULMX.ACC","semantic_family":"CMD","semantic_group":"Bundle Split","semantic_handler":"ExecuteBundleStart","semantic_summary":"Starts CUBE Function 6 for the TMATMUL_MX_ACC Matrix-matrix complete-bundle operation.","status":"accepted"}],"classification":["execution"],"contract":{"block_composition":["BSTART.TMATMULMX.ACC AType","B.DATR BType, RMode, Sat (optional; BType defaults to AType)","B.FPATR PreQuantMode, ReluMode, GroupNCode, RowMaxEn, GroupMaxEn, RowMaxInit, MaxAbsEn, TransA, TransB, CScaleEn (exactly one)","B.DIM LB0 M or cooperative group_M (optional, default 1)","B.DIM LB1 N (optional, default 1)","B.DIM LB2 K (optional, default 1)","B.IOS complete right or both matrix operand groups (optional; cooperative mask 1111)","B.IOT ordered Local mathematical sources: C CUBE_M16/M32 accumulator matching A with encoded selector distinct from DstTile, A CUBE_M16/M32 primary, optional A scale, B CUBE_N8 primary, optional B scale, optional U8 CScale CUBE_M32 [M,1]","B.IOT D matching A's CUBE_M16/M32 layout with a distinct encoded destination index, optional RowMaxOut, optional GroupMaxOut destinations","B.IOT/B.IOR postprocess operands selected by B.FPATR","BSTOP or the next BSTART completion boundary"],"canonical_assembly":["BSTART.TMATMULMX.ACC DataType"],"defaults":["Encoded DataType is always AType. Omitted B.DATR preserves AType as BType, selects RNE, and disables saturation.","Omitted LB0 defaults Local M or cooperative group_M to one; omitted LB1 and LB2 default N and K to one.","Exactly one all-zero B.FPATR selects no conversion, activation, or reduction; B.IOR and auxiliary B.IOT operands exist only when a selected postprocess mode requires them.","Local A uses persistent CUBE_M16 or CUBE_M32, Local B uses persistent CUBE_N8, and D is newly allocated in A's M layout; Local C also uses A's M layout. M, N, and K are arbitrary positive values independent of per-PE TSize. Each side uses group-32 E8M0 or HiF4X2 group-64 U32 scale; Local scales use CUBE_M32 and Shared scales remain ordinary Tiles.","TransA=0 and TransB=0 select no logical transpose. Each nonzero control is legal only when the corresponding primary is Shared.","C and D are both mandatory. CScaleEn accepts one final U8 CUBE_M32 [M,1] Local mathematical source only with FP32 C; omission defaults CScaleEn to zero. In decoded blocks C's six-bit relative selector must differ from zero-extended DstTile before rename; direct Tile calls require destination TileIndex to differ from accumulator TileIndex."],"encoding_class":"standalone-encoded","examples":["BSTART.TMATMULMX.ACC AType; B.DATR BType, RMode, Sat (optional; BType defaults to AType); B.FPATR PreQuantMode, ReluMode, GroupNCode, RowMaxEn, GroupMaxEn, RowMaxInit, MaxAbsEn, TransA, TransB, CScaleEn (exactly one); B.DIM LB0 M or cooperative group_M (optional, default 1); B.DIM LB1 N (optional, default 1); B.DIM LB2 K (optional, default 1); B.IOS complete right or both matrix operand groups (optional; cooperative mask 1111); B.IOT ordered Local mathematical sources: C CUBE_M16/M32 accumulator matching A with encoded selector distinct from DstTile, A CUBE_M16/M32 primary, optional A scale, B CUBE_N8 primary, optional B scale; B.IOT D matching A's CUBE_M16/M32 layout with a distinct encoded destination index, optional RowMaxOut, optional GroupMaxOut destinations; B.IOT/B.IOR postprocess operands selected by B.FPATR; BSTOP or the next BSTART completion boundary"],"exceptions":["A reserved DataType or fixed-bit mismatch raises Fault_IllegalInstruction before block state changes.","Missing, duplicate, or non-Matrix B.FPATR use raises Fault_BundleControl before allocation or payload effects.","Illegal types, dimensions, masks, binding streams, descriptors, shapes, capacities, aliases, readiness, or postprocess values raise Fault_TileLegality before source snapshots and effects."],"field_contracts":{"DataType":{"ref":"PTO-FIELD-BLOCK-DATATYPE"}},"field_zero_meanings":{"DataType":"Encoded zero selects FP64."},"legality":["The carrier selects exactly CUBE Function 6 and TileOperation_TMATMUL_MX_ACC.","Local A uses persistent CUBE_M16 or CUBE_M32, Local B uses persistent CUBE_N8, and D is newly allocated in A's M layout; Local C also uses A's M layout. M, N, and K are arbitrary positive values independent of per-PE TSize. Each side uses group-32 E8M0 or HiF4X2 group-64 U32 scale; Local scales use CUBE_M32 and Shared scales remain ordinary Tiles.","C and D are both mandatory. CScaleEn accepts one final U8 CUBE_M32 [M,1] Local mathematical source only with FP32 C; omission defaults CScaleEn to zero. In decoded blocks C's six-bit relative selector must differ from zero-extended DstTile before rename; direct Tile calls require destination TileIndex to differ from accumulator TileIndex.","A Shared primary must satisfy hardware-maintained whole-parent readiness and publication before payload access; fixed-quarter allocation or initialization masks are not a prerequisite. Any cooperative Local-A/Shared-B or Shared-A/Shared-B TMATMUL interprets LB0 as Core-total group_M in 1..128; Shared A has shape group_MxK, Shared B has shape KxN, and PE i uses valid_M=clamp(group_M-i*M_per_PE,0,M_per_PE) with M_per_PE 16 for group_M<=64 and 32 for group_M>=65. TransA and TransB apply only to their corresponding Shared primary. Right-only Shared inherits Local A layout; all-Shared ACC inherits C layout; all-Shared non-ACC selects M16 through M=16 and M32 through M=32.","Each non-FP16/BF16 side requires its assigned scale: group-32 E8M0 for MX FP8/FP4 or group-64 U32 for HiF4X2. C is one explicit Local MxN accumulator source and D is a distinct newly published destination; C's encoded relative selector and D's zero-extended DstTile hand must differ before rename. Published Shared operands may replace the right group or both matrix groups; supplementary operands and destinations remain Local.","Every cooperative nonzero PE_MASK must be 1111; all four PEs complete Shared readiness, while zero-row PEs suppress every compute-only Local resolution and effect. Mask zero is a strict no-op before descriptor reads, faults, allocation, readiness checks, or lifetime effects.","B.DATR permits only BType, RMode, and Sat. Exactly one B.FPATR is mandatory and closes the conditional postprocess schema."],"memory_effects":["none"],"operands":[{"field":"DataType","role":"tile element data type selector"}],"ordering":["Complete schema, field, type, dimension, descriptor, shape, capacity, readiness, alias, and allocation preflight precedes every source snapshot and destination effect.","D and every enabled reduction output publish as one atomic group; rejection publishes none and successful sources persist."],"standalone_opcode":true,"state_effects":["Start a CUBE Function 6 descriptor with encoded DataType preserved as AType.","At block completion execute TileOperation_TMATMUL_MX_ACC using the resolved M, N, K, input types, mathematical operands, and B.FPATR postprocess schema.","Publish the complete output group atomically after successful preflight and computation; do not consume mathematical or postprocess sources.","For Local execution, publish D with A's CUBE_M16 or CUBE_M32 layout and final output dtype; ordinary Bias, MX scales, and enabled reduction auxiliaries keep their operation-owned layouts.","Successful Shared primary reads leave every Shared descriptor, mask, publication state, payload, and lifetime unchanged.","C is snapshotted before multiplication and remains descriptor-and-payload unchanged after success or rejection."]},"depends_on":["PTO-BLOCK-MODEL-SCHEMA-PROFILE-ENCODING"],"id":"PTO-BLOCK-BSTART-TMATMULMX-ACC","mnemonic":"BSTART.TMATMULMX.ACC","summary":"Starts CUBE Function 6 for the TMATMUL_MX_ACC Matrix-matrix complete-bundle operation.","surface":"block"}// PTO-REVIEW: {"review_method":"formal-definition-read","outcome":"FORMAL-COMPLETE","reviewed_fields":["assembly","encoding","defaults","operation","state","memory","ordering","faults","reserved"]}// NDF-BEGIN: PTO-BSTART-TMATMULMX-ACC-CONTRACT-001// ndf: kind=contract level=L1 layer=block status=accepted// BSTART.TMATMULMX.ACC MUST select CUBE Function 6 and TileOperation_TMATMUL_MX_ACC.// Its encoded DataType is AType; omitted B.DATR MUST preserve AType as// BType, omitted LB0/LB1/LB2 MUST default M/N/K independently to one,// Local M, N, and K MUST be positive per-PE dimensions independent of TSize;// cooperative LB0 MUST be Core-total group_M.// For every cooperative Shared-input TMATMUL, LB0 MUST be Core-total group_M;// Shared A MUST have shape group_MxK and Shared B MUST have shape KxN.// Each matrix side independently requires an E8M0 scale exactly when its MX// input type is not FP16 or BF16. C is one explicit Local MxN accumulator// source and D is a distinct newly published destination. C's encoded relative// selector MUST differ from zero-extended DstTile before physical rename. Published Shared operands may replace the right// group or both matrix groups; supplementary operands and destinations remain// Local.// Shared primaries MUST be fully published and ready in all four fixed quarters.// TransA/TransB MUST apply only to the corresponding Shared primary. Every// cooperative nonzero PE mask MUST be 1111; zero-row PEs MUST have no Local effect.// C and D MUST both be explicit; direct Tile calls MUST also use different// destination and accumulator TileIndex values. C MUST persist unchanged.// Exactly one B.FPATR MUST close postprocess defaults and operands.// Complete schema, type, shape, capacity, definedness, readiness, alias,// and allocation preflight MUST precede source snapshots and effects;// successful outputs MUST publish atomically and sources MUST persist.// NDF-END: PTO-BSTART-TMATMULMX-ACC-CONTRACT-001
// DOC-BEGIN: decodereadonly func InstructionContractMatches_BSTART_TMATMULMX_ACC( operation: CommandOperation) => booleanbegin return operation == CommandOperation_bstart_tmatmulmx_acc_32_70fa59b0ab4c;end;// DOC-END: decode// DOC-BEGIN: operationreadonly func InstructionContractTileOperation_BSTART_TMATMULMX_ACC() => TileOperationbegin return TileOperation_TMATMUL_MX_ACC;end;
readonly func InstructionContractCubeFunction_BSTART_TMATMULMX_ACC() => integer {0..31}begin return 6;end;
readonly func InstructionContractSharedOperandsAllowed_BSTART_TMATMULMX_ACC() => booleanbegin return TRUE;end;
readonly func InstructionContractHandler_BSTART_TMATMULMX_ACC() => CommandSemanticHandlerbegin return CommandHandler_ExecuteBundleStart;end;// DOC-END: operation
BSTART.TMATMULMX.ACC opens an active Block descriptor for TileOperation_TMATMUL_MX_ACC; the body supplies the attributes and bindings required before completion.
BSTART.TMATMULMX.ACC must appear as the starter of its Block. Later attributes, dimensions, and bindings accumulate in the active descriptor until BSTOP or the next accepted BSTART completion boundary.
The accepted carrier uses the L32 encoding class and resolves every displayed field before the command reads bindings or changes state.
At completion, the descriptor runs TileOperation_TMATMUL_MX_ACC only after schema, type, dimension, descriptor, readiness, alias, and capacity preflight succeeds.
DataType — tile element data type selector.BSTART.TMATMULMX.ACC, B.DATR, B.FPATR, B.DIM, B.IOS, B.IOT, B.IOT/B.IOR; omitted optional carriers take only the defaults named by this owner.Starting the Block records the selected carrier and leaves operation execution deferred until the completion boundary.
After complete preflight and computation, every enabled output publishes as the owner-defined atomic group; successful mathematical sources remain available unless the contract explicitly consumes them.
Fixed bits, reserved values, selector domains, and required Block placement are checked before architectural effects.
The current owner reports invalid schema, state, address, or continuation conditions through Fault_BundleControl, Fault_IllegalInstruction, Fault_TileLegality; no prose on this page creates an additional fault rule.
Complete schema, binding, readiness, alias, capacity, and allocation preflight precedes source snapshots and every destination publication.
This example demonstrates placement and carrier flow only; exact behavior remains in the current ASL and instruction contract.
BSTART.TMATMULMX.ACC AType; B.DATR BType, RMode, Sat (optional; BType defaults to AType); B.FPATR PreQuantMode, ReluMode, GroupNCode, RowMaxEn, GroupMaxEn, RowMaxInit, MaxAbsEn, TransA, TransB, CScaleEn (exactly one); B.DIM LB0 M or cooperative group_M (optional, default 1); B.DIM LB1 N (optional, default 1); B.DIM LB2 K (optional, default 1); B.IOS complete right or both matrix operand groups (optional; cooperative mask 1111); B.IOT ordered Local mathematical sources: C CUBE_M16/M32 accumulator matching A with encoded selector distinct from DstTile, A CUBE_M16/M32 primary, optional A scale, B CUBE_N8 primary, optional B scale; B.IOT D matching A's CUBE_M16/M32 layout with a distinct encoded destination index, optional RowMaxOut, optional GroupMaxOut destinations; B.IOT/B.IOR postprocess operands selected by B.FPATR; BSTOP or the next BSTART completion boundaryThe starter establishes the descriptor first; the following carriers fill its declared schema, and the final completion boundary triggers validation and operation execution.
Bodies come from owning ASL. Dragging or buttons change only this page-session view order.
BSTART.TMATMULMX.ACC MUST select CUBE Function 6 and TileOperation_TMATMUL_MX_ACC. Its encoded DataType is AType; omitted B.DATR MUST preserve AType as BType, omitted LB0/LB1/LB2 MUST default M/N/K independently to one, Local M, N, and K MUST be positive per-PE dimensions independent of TSize; cooperative LB0 MUST be Core-total group_M. For every cooperative Shared-input TMATMUL, LB0 MUST be Core-total group_M; Shared A MUST have shape group_MxK and Shared B MUST have shape KxN. Each matrix side independently requires an E8M0 scale exactly when its MX input type is not FP16 or BF16. C is one explicit Local MxN accumulator source and D is a distinct newly published destination. C's encoded relative selector MUST differ from zero-extended DstTile before physical rename. Published Shared operands may replace the right group or both matrix groups; supplementary operands and destinations remain Local. Shared primaries MUST be fully published and ready in all four fixed quarters. TransA/TransB MUST apply only to the corresponding Shared primary. Every cooperative nonzero PE mask MUST be 1111; zero-row PEs MUST have no Local effect. C and D MUST both be explicit; direct Tile calls MUST also use different destination and accumulator TileIndex values. C MUST persist unchanged. Exactly one B.FPATR MUST close postprocess defaults and operands. Complete schema, type, shape, capacity, definedness, readiness, alias, and allocation preflight MUST precede source snapshots and effects; successful outputs MUST publish atomically and sources MUST persist.
PTO-BSTART-TMATMULMX-ACC-CONTRACT-001asl/block/execution/BSTART.TMATMULMX.ACC.asl11e2185a08429f5285771ca1245b7901844ceac7e454b0d056daa8ec59d3fe5326a6f11f461b0e0bc972c0637a4b9cb07efbc41e4c95c639542074707084b01d19 matching entries
PTO-AVS-BLOCK-BSTART-TMATMULMX-ACC-DECODE-001tests/asl/block/execution/BSTART.TMATMULMX.ACC/block-decode-bstart-tmatmulmx-acc-canonical-001.asl9bc399d4811e5ece95c8f7f1e203410dd6ef63ee729e6953f1c72719227bd46cPTO-AVS-BLOCK-TMATMULMX-ACC-EXEC-001tests/asl/block/execution/BSTART.TMATMULMX.ACC/block-exec-bstart-tmatmulmx-acc-add-001.asl4fc335088a487923a24dd1d7355ac7e0634468dfba2aba58b6e25fdb39845841PTO-EVIDENCE-RELEASE-TRACEABILITYPTO-EVIDENCE-RELEASE-TRACEABILITYspec/evidence/release-traceability-readiness.jsonc7327021d39dc67ac5564bc55073b3870a397d79ac8d9648284d56e33bc14a3ePTO-EVIDENCE-INSTRUCTION-CONTRACT-CLOSUREPTO-EVIDENCE-INSTRUCTION-CONTRACT-CLOSUREspec/evidence/instruction-contract-closure.json3ef2bb62421c79dff8fa77a1c7983923b523244b8090812883ef81286ca8106aPTO-EVIDENCE-ARCHITECTURE-READINESSPTO-EVIDENCE-ARCHITECTURE-READINESSspec/evidence/architecture-readiness.json4b0b85199101251bea744e0f3591cc31906909dc80d5ab651c417a936036a004PTO-EVIDENCE-RELEASE-GATE-READINESSPTO-EVIDENCE-RELEASE-GATE-READINESSspec/evidence/release-gate-readiness.jsona0f4d2b6920c08981ea55fd8ef820708a40d4feb5402c5150e8e9ab532d84ce0PTO-EVIDENCE-RELEASE-MANIFESTPTO-EVIDENCE-RELEASE-MANIFESTspec/release-manifest.json1a64c109ed7a90351c41e2a418b3c0ebaf8ad975838986d2101385186b85c0d8Loading ADR-0032…
ADR-0032docs/status/decisions/0032-bundle-command-totality-and-profile-boundaries.mde1f91826817343c0977a565a91e495a15397b83fa2af227124f225821ffa54aeLoading ADR-0034…
ADR-0034docs/status/decisions/0034-cube-raw-carrier-totality.md6e773942b46c7352eaba729ccd056548ec2e6379fbf8790eaf366571c968f814Loading ADR-0041…
ADR-0041docs/status/decisions/0041-a2a3-mx-profile-applicability.mdfac4a0023748f31bc1634fdd68eb1627b388ac41aaee0cb2a61e4a341d7e38b8Loading ADR-0052…
ADR-0052docs/status/decisions/0052-direct-tile-and-bundle-catalog-closure.md5fdb38bf480e37affe5075f93b35a57d32803018c986bfe05160f188a19ccaf6Loading ADR-0055…
ADR-0055docs/status/decisions/0055-complete-bundle-bior-schema-and-defaults.mdd84224ee1980cb16a6c4efb6ce3c5c2649d5db27002e7e6429850da189a2cdffLoading ADR-0059…
ADR-0059docs/status/decisions/0059-mnemonic-field-encoding-closure.mdf18d13f735cfaf9f2803c754c5818f4af33d1cc42c489f0d9ce060b07bb3a196Loading ADR-0065…
ADR-0065docs/status/decisions/0065-cube-matrix-family-contract.mdd1f50e2bdf78a0fb447af2f3213400463cc8b4fe4676c7282b67da77c4721fecLoading ADR-0071…
ADR-0071docs/status/decisions/0071-local-cube-matrix-operands.mdc9c58c246498edab99aff612c6d645774e07f942e37fb92b14245e8aecbe8368Loading ADR-0072…
ADR-0072docs/status/decisions/0072-cooperative-shared-cube-transpose.md9bc7340fea777ee543d4b9393f8f6002b55106833e55ff6d388f8beac504dd09Loading ADR-0073…
ADR-0073docs/status/decisions/0073-cube-accumulator-atomic-output.mdd63ba89014fe901b5055fc38bbd5578aa1b571c1038321a903f20cc6e9756fefLoading ADR-0079…
ADR-0079docs/status/decisions/0079-cube-and-matrix-operations.md71b54321ddf5d233ef470083965e269778c57d5ef3d01859659aba7e2ab40863Loading ADR-0108…
ADR-0108docs/status/decisions/0108-0584-1-to-0585-compatibility.md5689fa78a7291b6ae88d55197205e4cf79e9719ee5ba18ebf186f5c6871c350d{
"classification": [
"execution"
],
"documentation": "docs/block/execution/BSTART.TMATMULMX.ACC.md",
"id": "PTO-BLOCK-BSTART-TMATMULMX-ACC",
"instruction_contract": {
"artifact": "spec/evidence/instruction-contract-closure.json",
"mnemonic": "BSTART.TMATMULMX.ACC",
"ndf_clause": "PTO-INST-BLOCK-BSTART-TMATMULMX-ACC"
},
"mnemonic": "BSTART.TMATMULMX.ACC",
"readiness_subjects": [
"ADR-0032",
"ADR-0034",
"ADR-0041",
"ADR-0052",
"ADR-0055",
"ADR-0059",
"ADR-0065",
"ADR-0071",
"ADR-0072",
"ADR-0073",
"ADR-0079",
"ADR-0108"
],
"semantic_tests": [
"PTO-AVS-BLOCK-TMATMULMX-ACC-EXEC-001"
],
"source": "asl/block/execution/BSTART.TMATMULMX.ACC.asl",
"surface": "block",
"tests": [
"PTO-AVS-BLOCK-BSTART-TMATMULMX-ACC-DECODE-001",
"PTO-AVS-BLOCK-TMATMULMX-ACC-EXEC-001"
]
}0.58.5 · Release candidate7dc8b7e5b121d2b2499a2273bebff29e2cd8681211e2185a08429f5285771ca1245b7901844ceac7e454b0d056daa8ec59d3fe53dc320831b597eca964a24c32d950a1345cbec1b7a0ca8437f351c4b4ef39befdasl/block/execution/BSTART.TMATMULMX.ACC.aslasl/block/execution/BSTART.TMATMULMX.ACC.aslasl/block/execution/BSTART.TMATMULMX.ACC.asl