跳到主要内容

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

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

ASL 伪代码

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

// 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};

架构行为

目的与范围

目的与范围

本单元拥有 Tile 操作手、公开的五位数据类型命名空间、Tile 数据布局与存储布局枚举、填充值以及位置意图。

它构成已编码 DataType 字段与数值/Tile 执行归属单元所使用类型化值之间的边界。

概念与架构状态

概念与可见状态

  • TileHand 命名 T、U、M 和 N;TileDataType 包含 15 个浮点/缩放成员、五个有符号整数成员和五个无符号整数成员。
  • TileDataTypeEncoding 的类型为 bits(5)。编码 0..14、16..20 和 24..28 已分配;15、21..23 和 29..31 保留。
  • 本单元还分别定义面向转换的 TileDataLayout、物理 TileLayout、TilePadValue 和 TileLocation 命名空间。
规则与交互

规则与交互

TileDataTypeEncodingValid 只接受三个已分配编码范围;TileDataTypeFromEncoding 要求先确认编码有效再进行映射。

TileDataTypeToEncoding 提供反向映射。编码 0 表示 TileDataType_FP64,不表示缺省、继承或不存在。

DTYPE_NONE 使用编码 31,但只作为字段级哨兵值;它有意不属于 TileDataType,也没有宽度、格式或算术语义。

边界与未定义范围

架构边界

保留的数据类型编码会在产生架构效果之前被拒绝,并留待未来扩展。

TileLayout_ImplementationDefined 只供非架构模型夹具使用;没有已分配的 B.DATR 布局编码映射到它。

使用示例

示例性阅读示例

编码 2 通过验证并映射到 TileDataType_TF32;编码 31 不映射到任何数据类型,即使独立的 DTYPE_NONE 哨兵值使用同一比特模式。

数据类型解码完成后,可查阅 TileNumericFormatDescriptor 获取格式元数据,再查阅使用该类型的指令以确认操作支持范围。

NDF 条款

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

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"
  ]
}

来源与发布信息

展开 commit、路径、hash、版本和规范所有者
发布
0.58.5 · 候选发布
Commit
7dc8b7e5b121d2b2499a2273bebff29e2cd86812
ASL SHA-256
5e501f8c7040c336e0102e24b702ba7769a4547e97213a8c42566fc677e60086
文档 SHA-256
e009a83f914bb625d360121ab2ee03ca27ab0d6d6c6efae647d6ec9d57fce2e2

精确所有者