Skip to main content

PTO-ARCH-DATA-TYPES-TILE-DATA-TYPES

PTO-ARCH-DATA-TYPES-TILE-DATA-TYPES

ASL pseudocode

The complete ASL owner is shown directly below.

// PTO-UNIT: {"id":"PTO-ARCH-DATA-TYPES-TILE-DATA-TYPES","surface":"arch","classification":["data-types","tile-data-types"],"depends_on":["PTO-ARCH-FEATURES-MX-FORMATS"],"field_domains":[{"id":"PTO-FIELD-BLOCK-DATATYPE","width":5,"role":"Selects the Tile element data type carried by Block data attributes and typed Block starts.","zero_meaning":"Code zero selects FP64; zero never means absent, inherited, NONE, or NULL.","assigned":[{"value":0,"meaning":"FP64"},{"value":1,"meaning":"FP32"},{"value":2,"meaning":"TF32"},{"value":3,"meaning":"HF32"},{"value":4,"meaning":"FP16"},{"value":5,"meaning":"BF16"},{"value":6,"meaning":"HiF8"},{"value":7,"meaning":"E4M3"},{"value":8,"meaning":"E5M2"},{"value":9,"meaning":"E3M2"},{"value":10,"meaning":"E2M3"},{"value":11,"meaning":"E2M1X2"},{"value":12,"meaning":"E1M2X2"},{"value":13,"meaning":"E8M0"},{"value":14,"meaning":"HiF4X2"},{"value":16,"meaning":"S64"},{"value":17,"meaning":"S32"},{"value":18,"meaning":"S16"},{"value":19,"meaning":"S8"},{"value":20,"meaning":"S4X2"},{"value":24,"meaning":"U64"},{"value":25,"meaning":"U32"},{"value":26,"meaning":"U16"},{"value":27,"meaning":"U8"},{"value":28,"meaning":"U4X2"}],"reserved":[15,21,22,23,29,30,31],"rejection":"Reserved values are held for future extension and reject before architectural effects."}]}type TileHand of enumeration {    TileHand_T,    TileHand_U,    TileHand_M,    TileHand_N};
type TileDataType of enumeration {    TileDataType_FP64,    TileDataType_FP32,    TileDataType_TF32,    TileDataType_HF32,    TileDataType_FP16,    TileDataType_BF16,    TileDataType_HiF8,    TileDataType_E4M3,    TileDataType_E5M2,    TileDataType_E3M2,    TileDataType_E2M3,    TileDataType_E2M1X2,    TileDataType_E1M2X2,    TileDataType_E8M0,    TileDataType_HiF4X2,    TileDataType_S64,    TileDataType_S32,    TileDataType_S16,    TileDataType_S8,    TileDataType_S4X2,    TileDataType_U64,    TileDataType_U32,    TileDataType_U16,    TileDataType_U8,    TileDataType_U4X2};
type TileDataTypeEncoding of bits(5);
pure func TileDataTypeEncodingValid(encoded: TileDataTypeEncoding) => booleanbegin    let code = UInt(encoded);    return code <= 14 || (16 <= code && code <= 20) ||           (24 <= code && code <= 28);end;
pure func TileDataTypeFromEncoding(encoded: TileDataTypeEncoding) => TileDataTypebegin    assert TileDataTypeEncodingValid(encoded);    case UInt(encoded) of        when 0 => return TileDataType_FP64;        when 1 => return TileDataType_FP32;        when 2 => return TileDataType_TF32;        when 3 => return TileDataType_HF32;        when 4 => return TileDataType_FP16;        when 5 => return TileDataType_BF16;        when 6 => return TileDataType_HiF8;        when 7 => return TileDataType_E4M3;        when 8 => return TileDataType_E5M2;        when 9 => return TileDataType_E3M2;        when 10 => return TileDataType_E2M3;        when 11 => return TileDataType_E2M1X2;        when 12 => return TileDataType_E1M2X2;        when 13 => return TileDataType_E8M0;        when 14 => return TileDataType_HiF4X2;        when 16 => return TileDataType_S64;        when 17 => return TileDataType_S32;        when 18 => return TileDataType_S16;        when 19 => return TileDataType_S8;        when 20 => return TileDataType_S4X2;        when 24 => return TileDataType_U64;        when 25 => return TileDataType_U32;        when 26 => return TileDataType_U16;        when 27 => return TileDataType_U8;        when 28 => return TileDataType_U4X2;        otherwise => unreachable;    end;end;
pure func TileDataTypeToEncoding(data_type: TileDataType)        => TileDataTypeEncodingbegin    case data_type of        when TileDataType_FP64 => return Zeros{5};        when TileDataType_FP32 => return Zeros{5} + 1;        when TileDataType_TF32 => return Zeros{5} + 2;        when TileDataType_HF32 => return Zeros{5} + 3;        when TileDataType_FP16 => return Zeros{5} + 4;        when TileDataType_BF16 => return Zeros{5} + 5;        when TileDataType_HiF8 => return Zeros{5} + 6;        when TileDataType_E4M3 => return Zeros{5} + 7;        when TileDataType_E5M2 => return Zeros{5} + 8;        when TileDataType_E3M2 => return Zeros{5} + 9;        when TileDataType_E2M3 => return Zeros{5} + 10;        when TileDataType_E2M1X2 => return Zeros{5} + 11;        when TileDataType_E1M2X2 => return Zeros{5} + 12;        when TileDataType_E8M0 => return Zeros{5} + 13;        when TileDataType_HiF4X2 => return Zeros{5} + 14;        when TileDataType_S64 => return Zeros{5} + 16;        when TileDataType_S32 => return Zeros{5} + 17;        when TileDataType_S16 => return Zeros{5} + 18;        when TileDataType_S8 => return Zeros{5} + 19;        when TileDataType_S4X2 => return Zeros{5} + 20;        when TileDataType_U64 => return Zeros{5} + 24;        when TileDataType_U32 => return Zeros{5} + 25;        when TileDataType_U16 => return Zeros{5} + 26;        when TileDataType_U8 => return Zeros{5} + 27;        when TileDataType_U4X2 => return Zeros{5} + 28;    end;end;// Encoded DataType 31 is a field-level sentinel. It is deliberately not a// TileDataType and therefore has no width, format, or arithmetic semantics.constant DTYPE_NONE = '11111';
type TileDataLayout of enumeration {    TileDataLayout_NORM,    TileDataLayout_ND2DN,    TileDataLayout_ND2ZN,    TileDataLayout_ND2NZ,    TileDataLayout_DN2ND,    TileDataLayout_DN2ZN,    TileDataLayout_DN2NZ,    TileDataLayout_ZN2ND,    TileDataLayout_ZN2DN,    TileDataLayout_ZN2NZ,    TileDataLayout_NZ2ND,    TileDataLayout_NZ2DN,    TileDataLayout_NZ2ZN,    TileDataLayout_ND2M32,    TileDataLayout_ND2M16,    TileDataLayout_ND2N8,    TileDataLayout_M322ND,    TileDataLayout_M162ND,    TileDataLayout_N82ND};
type TilePadValue of enumeration {    TilePad_Zero,    TilePad_Max,    TilePad_Min,    TilePad_Null};
type TileLayout of enumeration {    TileLayout_RowMajor,    TileLayout_ColumnMajor,    TileLayout_ZN,    TileLayout_NZ,    TileLayout_CUBE_M16,    TileLayout_CUBE_M32,    TileLayout_CUBE_N8,    // Non-architectural model fixtures may use this value to prove that    // generic execution rejects an opaque implementation layout.  No    // assigned B.DATR Layout code maps to it.    TileLayout_ImplementationDefined};
type TileLocation of enumeration {    TileLocation_Vector,    TileLocation_Matrix,    TileLocation_Memory,    TileLocation_Any};

Architecture behavior

purpose scope

Purpose and scope

This unit owns tile hands, the public five-bit data-type namespace, tile data-layout and storage-layout enums, pad values, and location intent.

It is the boundary between encoded DataType fields and the typed values consumed by numeric and tile execution owners.

concepts state

Concepts and visible state

  • TileHand names T, U, M, and N; TileDataType contains 15 floating/scale members, five signed integer members, and five unsigned integer members.
  • TileDataTypeEncoding is bits(5). Codes 0..14, 16..20, and 24..28 are assigned; 15, 21..23, and 29..31 are reserved.
  • The unit separately defines transformation-oriented TileDataLayout, physical TileLayout, TilePadValue, and TileLocation namespaces.
rules interactions

Rules and interactions

TileDataTypeEncodingValid accepts exactly the three assigned code ranges; TileDataTypeFromEncoding requires validity before mapping.

TileDataTypeToEncoding is the reverse mapping. Code 0 means TileDataType_FP64, not absent or inherited.

DTYPE_NONE is code 31 and is only a field-level sentinel; it is deliberately not a TileDataType and has no width, format, or arithmetic semantics.

boundaries

Architectural boundaries

Reserved data-type codes reject before architectural effects and remain available for future extension.

TileLayout_ImplementationDefined exists for non-architectural model fixtures; no assigned B.DATR layout code maps to it.

example usage

illustrative reading example

Encoding 2 passes validation and maps to TileDataType_TF32; encoding 31 does not map to a data type even though the separate DTYPE_NONE sentinel has that bit pattern.

After decoding a data type, follow TileNumericFormatDescriptor for format metadata and the consuming instruction for operation support.

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

9 matching entries

Executable evidence2
  • PTO-ARCH-DATA-TYPES-TILE-DATA-TYPES compiles as an independent normative unit
    1. surfaceARCH
    2. ownerPTO-ARCH-DATA-TYPES-TILE-DATA-TYPES
    3. categorySTATIC-INVARIANT
    4. case001
    Show exact test source
    Sources and references
    Complete stable ID
    PTO-AVS-ARCH-DATA-TYPES-TILE-DATA-TYPES-STATIC-001
    Path
    tests/asl/arch/data-types/tile-data-types/arch-static-tile-data-types-contract-001.asl
    Kind / role
    static-invariant
    Pass condition
    the complete model and this unit's static invariant compile
    SHA-256
    d2aa8456cd110c21da0482089100b4a36875d8b2934f4dba025673e2ca2504e1
    Open exact source ↗ for PTO-AVS-ARCH-DATA-TYPES-TILE-DATA-TYPES-STATIC-001
  • The five-bit Tile DataType namespace assigns 25 codes and rejects exactly seven future-extension codes.
    1. surfaceARCH
    2. ownerPTO-ARCH-DATA-TYPES-TILE-DATA-TYPES
    3. categoryBOUNDARY
    4. case001
    Show exact test source
    Sources and references
    Complete stable ID
    PTO-AVS-ARCH-TILEDATATYPE-RESERVED-001
    Path
    tests/asl/arch/data-types/tile-data-types/arch-bound-tiledatatype-reserved-001.asl
    Kind / role
    boundary
    Pass condition
    All 32 five-bit encodings have the required assigned or reserved disposition and assigned encodings round-trip.
    SHA-256
    ae260e537714dc2a32494f6435b7475871a8bffdda8787fb05cfdac3e799975c
    Open exact source ↗ for PTO-AVS-ARCH-TILEDATATYPE-RESERVED-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 history2
  • Numeric format namespace ownership · accepted
    1. decision recordADR
    2. case0040

    Decision record

    Loading ADR-0040…

    Sources and references
    Complete stable ID
    ADR-0040
    Path
    docs/status/decisions/0040-numeric-format-namespace-ownership.md
    Affected units
    PTO-ARCH-DATA-TYPES-FORMAT-DESCRIPTOR, PTO-ARCH-DATA-TYPES-NUMERIC-FORMATS, PTO-ARCH-DATA-TYPES-TILE-DATA-TYPES, PTO-BLOCK-B-DATR, PTO-TILE-TCVT
    Affected NDF
    PTO-B-DATR-FIELDS-001, PTO-CUBE-CELL-TRANSPORT-001, PTO-NUMERIC-FINITE-DECOMPOSITION-001, PTO-NUMERIC-FORMAT-DESCRIPTOR-001, PTO-TCVT-CONTRACT-001
    SHA-256
    d4383e3d07be37218f7d060e0b4d8f2aa610684aadfb128583980e2f4ecf3b92
    Open exact decision source ↗ for ADR-0040
  • Public numeric type identity and target availability · accepted
    1. decision recordADR
    2. case0043

    Decision record

    Loading ADR-0043…

    Sources and references
    Complete stable ID
    ADR-0043
    Path
    docs/status/decisions/0043-public-numeric-type-identity-and-availability.md
    Affected units
    PTO-ARCH-DATA-TYPES-FORMAT-DESCRIPTOR, PTO-ARCH-DATA-TYPES-NUMERIC-FORMATS, PTO-ARCH-DATA-TYPES-TILE-DATA-TYPES, PTO-TILE-TCVT
    Affected NDF
    PTO-NUMERIC-FINITE-DECOMPOSITION-001, PTO-NUMERIC-FORMAT-DESCRIPTOR-001, PTO-TCVT-CONTRACT-001
    SHA-256
    4fa14704464afe3ea85b98835f2f6e7d6fa832a1f297100f41414cd3faf66924
    Open exact decision source ↗ for ADR-0043

Unit metadata

Open 5 generated metadata fields
id
PTO-ARCH-DATA-TYPES-TILE-DATA-TYPES
surface
arch
classification
[
  "data-types",
  "tile-data-types"
]
depends_on
[
  "PTO-ARCH-FEATURES-MX-FORMATS"
]
field_domains
[
  {
    "id": "PTO-FIELD-BLOCK-DATATYPE",
    "width": 5,
    "role": "Selects the Tile element data type carried by Block data attributes and typed Block starts.",
    "zero_meaning": "Code zero selects FP64; zero never means absent, inherited, NONE, or NULL.",
    "assigned": [
      {
        "value": 0,
        "meaning": "FP64"
      },
      {
        "value": 1,
        "meaning": "FP32"
      },
      {
        "value": 2,
        "meaning": "TF32"
      },
      {
        "value": 3,
        "meaning": "HF32"
      },
      {
        "value": 4,
        "meaning": "FP16"
      },
      {
        "value": 5,
        "meaning": "BF16"
      },
      {
        "value": 6,
        "meaning": "HiF8"
      },
      {
        "value": 7,
        "meaning": "E4M3"
      },
      {
        "value": 8,
        "meaning": "E5M2"
      },
      {
        "value": 9,
        "meaning": "E3M2"
      },
      {
        "value": 10,
        "meaning": "E2M3"
      },
      {
        "value": 11,
        "meaning": "E2M1X2"
      },
      {
        "value": 12,
        "meaning": "E1M2X2"
      },
      {
        "value": 13,
        "meaning": "E8M0"
      },
      {
        "value": 14,
        "meaning": "HiF4X2"
      },
      {
        "value": 16,
        "meaning": "S64"
      },
      {
        "value": 17,
        "meaning": "S32"
      },
      {
        "value": 18,
        "meaning": "S16"
      },
      {
        "value": 19,
        "meaning": "S8"
      },
      {
        "value": 20,
        "meaning": "S4X2"
      },
      {
        "value": 24,
        "meaning": "U64"
      },
      {
        "value": 25,
        "meaning": "U32"
      },
      {
        "value": 26,
        "meaning": "U16"
      },
      {
        "value": 27,
        "meaning": "U8"
      },
      {
        "value": 28,
        "meaning": "U4X2"
      }
    ],
    "reserved": [
      15,
      21,
      22,
      23,
      29,
      30,
      31
    ],
    "rejection": "Reserved values are held for future extension and reject before architectural effects."
  }
]
Open generated traceability record
{
  "classification": [
    "data-types",
    "tile-data-types"
  ],
  "documentation": "docs/arch/data-types/tile-data-types.md",
  "id": "PTO-ARCH-DATA-TYPES-TILE-DATA-TYPES",
  "mnemonic": null,
  "readiness_subjects": [
    "ADR-0040",
    "ADR-0043"
  ],
  "semantic_tests": [
    "PTO-AVS-ARCH-TILEDATATYPE-RESERVED-001"
  ],
  "source": "asl/arch/data-types/tile-data-types.asl",
  "surface": "arch",
  "tests": [
    "PTO-AVS-ARCH-DATA-TYPES-TILE-DATA-TYPES-STATIC-001",
    "PTO-AVS-ARCH-TILEDATATYPE-RESERVED-001"
  ]
}

Sources and release identity

Show commit, paths, hashes, version, and canonical owners
Release
0.58.5 · Release candidate
Commit
7dc8b7e5b121d2b2499a2273bebff29e2cd86812
ASL SHA-256
5e501f8c7040c336e0102e24b702ba7769a4547e97213a8c42566fc677e60086
Generated documentation
docs/arch/data-types/tile-data-types.md · embedded in this page
Documentation SHA-256
cb9c27c0dd8033ccca89565475907b1407686727a8765e3a706cc04c1fc86c5e

Exact owners