跳到主要内容

PTO-ARCH-FEATURES-MINMAX-PROFILE

PTO-ARCH-FEATURES-MINMAX-PROFILE

ASL 伪代码

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

// PTO-UNIT: {"id":"PTO-ARCH-FEATURES-MINMAX-PROFILE","surface":"arch","classification":["features","minmax-profile"],"depends_on":["PTO-ARCH-FEATURES-MX-FORMATS"]}// Convert an assigned binary floating carrier into a monotonically increasing// unsigned key. NaNs and signed-zero ties are resolved before this helper is// called. The returned availability bit keeps unsupported formats explicit.pure func HardwareNumericFloatingOrderKey(    data_type: TileDataType,    value: Word) => (boolean, Word)begin    if !TileNumericEncodingValid(data_type, value) then        return (FALSE, Zeros{PTO_XLEN});    end;
    case data_type of        when TileDataType_FP64 =>            if value[63] == '1' then                return (TRUE, NOT(value));            else                return (TRUE,                    value XOR (Zeros{PTO_XLEN} + 0x8000000000000000));            end;        when TileDataType_FP32, TileDataType_TF32, TileDataType_HF32 =>            let raw = value[31:0];            let key =                if raw[31] == '1' then NOT(raw)                else raw XOR (Zeros{32} + 0x80000000);            return (TRUE, ZeroExtend{PTO_XLEN}(key));        when TileDataType_FP16, TileDataType_BF16 =>            let raw = value[15:0];            let key =                if raw[15] == '1' then NOT(raw)                else raw XOR (Zeros{16} + 0x8000);            return (TRUE, ZeroExtend{PTO_XLEN}(key));        when TileDataType_E4M3, TileDataType_E5M2 =>            let raw = value[7:0];            let key =                if raw[7] == '1' then NOT(raw)                else raw XOR (Zeros{8} + 0x80);            return (TRUE, ZeroExtend{PTO_XLEN}(key));        otherwise =>            return (FALSE, Zeros{PTO_XLEN});    end;end;
// Return availability, selected raw carrier, and invalid-condition status.// Special NaN and zero rules have priority over ordinary numeric ordering.pure func HardwareNumericFloatingMinMax(    maximum: boolean,    data_type: TileDataType,    left: Word,    right: Word) => (boolean, Word, boolean)begin    let (special, special_result, invalid) =        HardwareNumericMinMaxSpecial(maximum, data_type, left, right);    if special then        return (TRUE, special_result, invalid);    end;
    let (left_available, left_key) =        HardwareNumericFloatingOrderKey(data_type, left);    let (right_available, right_key) =        HardwareNumericFloatingOrderKey(data_type, right);    if !left_available || !right_available then        return (FALSE, Zeros{PTO_XLEN}, FALSE);    end;
    if maximum then        if UInt(left_key) >= UInt(right_key) then            return (TRUE, left, FALSE);        else            return (TRUE, right, FALSE);        end;    elsif UInt(left_key) <= UInt(right_key) then        return (TRUE, left, FALSE);    else        return (TRUE, right, FALSE);    end;end;

架构行为

目的与范围

目的与范围

本单元在特殊 NaN 和带符号零情况处理完毕后,为命名硬件数值配置提供普通浮点排序键以及最小值/最大值选择。

返回的可用性位会明确标出不支持的数据类型,而不会为所有 TileDataType 强行规定顺序。

概念与架构状态

概念与可见状态

  • HardwareNumericFloatingOrderKey 验证载体,并将受支持的二进制浮点编码映射为单调递增的无符号键。
  • 负载体按位取反;非负载体则在对应架构宽度上翻转符号位。
  • HardwareNumericFloatingMinMax 先调用 HardwareNumericMinMaxSpecial,只有两个操作数都不是特殊情况时才比较普通排序键。
规则与交互

规则与交互

排序键辅助函数支持 FP64;FP32、TF32 和 HF32;FP16 和 BF16;以及 E4M3 和 E5M2。

无效编码和其他数据类型都返回不可用,并附带零占位键。

求最大值时选择较大的无符号键,求最小值时选择较小的键;键相等时选择左侧原始载体。

边界与未定义范围

架构边界

NaN 和带符号零相等时的行为不由普通排序键推导,而是在比较前由 HardwareNumericMinMaxSpecial 处理。

这是命名配置的实现,不对返回不可用的格式作出可移植的排序承诺。

使用示例

示例性阅读示例

对于两个有效的正 FP32 正规数,翻转符号位后得到的键与数值顺序一致,因此最小值或最大值会选择相应原始载体。

若任一操作数是无效 TF32 载体,普通键选择会报告不可用,而不会静默比较高位。

NDF 条款

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

No NDF clause is attached to this unit.

Evidence index

10 matching entries

Executable evidence5
  • PTO-ARCH-FEATURES-MINMAX-PROFILE compiles as an independent normative unit
    1. surfaceARCH
    2. ownerPTO-ARCH-FEATURES-MINMAX-PROFILE
    3. categorySTATIC-INVARIANT
    4. case001
    Show exact test source
    Sources and references
    Complete stable ID
    PTO-AVS-ARCH-FEATURES-MINMAX-PROFILE-STATIC-001
    Path
    tests/asl/arch/features/minmax-profile/arch-static-minmax-profile-contract-001.asl
    Kind / role
    static-invariant
    Pass condition
    the complete model and this unit's static invariant compile
    SHA-256
    8f882a47dc18ee178fbd38297d9b938ce73dbd0b0d54b5788ffc8b6104c8bffc
    Open exact source ↗ for PTO-AVS-ARCH-FEATURES-MINMAX-PROFILE-STATIC-001
  • invalid TF32 and unsupported integer carriers have no floating order key
    1. surfaceARCH
    2. ownerPTO-ARCH-FEATURES-MINMAX-PROFILE
    3. categoryBOUNDARY
    4. case002
    Show exact test source
    Sources and references
    Complete stable ID
    PTO-AVS-ARCH-MINMAX-AVAILABILITY-BOUND-002
    Path
    tests/asl/arch/features/minmax-profile/arch-bound-minmax-availability-002.asl
    Kind / role
    boundary
    Pass condition
    invalid and unsupported requests return unavailable with the zero placeholder
    SHA-256
    9e431386d0ee57e6dbb5eb8ac03abacde6daa2d58b1d1ca9a924df3d9df22add
    Open exact source ↗ for PTO-AVS-ARCH-MINMAX-AVAILABILITY-BOUND-002
  • floating order keys cover positive and negative carriers at every supported width
    1. surfaceARCH
    2. ownerPTO-ARCH-FEATURES-MINMAX-PROFILE
    3. categoryEXECUTION
    4. case001
    Show exact test source
    Sources and references
    Complete stable ID
    PTO-AVS-ARCH-MINMAX-ORDER-KEYS-EXEC-001
    Path
    tests/asl/arch/features/minmax-profile/arch-exec-minmax-order-keys-001.asl
    Kind / role
    execution
    Pass condition
    64-, 32-, 16-, and 8-bit positive and negative order-key assertions hold
    SHA-256
    605a42427e2a7f408170fc0537474f377092e75619ce04138774c5ead7ed196f
    Open exact source ↗ for PTO-AVS-ARCH-MINMAX-ORDER-KEYS-EXEC-001
  • ordinary min-max follows numeric key order and selects the left carrier on equal keys
    1. surfaceARCH
    2. ownerPTO-ARCH-FEATURES-MINMAX-PROFILE
    3. categoryEXECUTION
    4. case004
    Show exact test source
    Sources and references
    Complete stable ID
    PTO-AVS-ARCH-MINMAX-ORDERING-TIES-EXEC-004
    Path
    tests/asl/arch/features/minmax-profile/arch-exec-minmax-ordering-ties-004.asl
    Kind / role
    execution
    Pass condition
    positive, negative, and equal-key left-tie assertions hold
    SHA-256
    71b617cf8a6faeb890d723d976f4292a774c1d15b2092989f42b0e03888ed649
    Open exact source ↗ for PTO-AVS-ARCH-MINMAX-ORDERING-TIES-EXEC-004
  • floating min-max delegates NaN and signed-zero cases to the special-value owner
    1. surfaceARCH
    2. ownerPTO-ARCH-FEATURES-MINMAX-PROFILE
    3. categoryEXECUTION
    4. case003
    Show exact test source
    Sources and references
    Complete stable ID
    PTO-AVS-ARCH-MINMAX-SPECIAL-DELEGATION-EXEC-003
    Path
    tests/asl/arch/features/minmax-profile/arch-exec-minmax-special-delegation-003.asl
    Kind / role
    execution
    Pass condition
    one-NaN and signed-zero min-max results match the delegated special rules
    SHA-256
    237fa58d299f4b47d027ca9e63daa7914a0d8e1cc0c514aff5b06566f831c140
    Open exact source ↗ for PTO-AVS-ARCH-MINMAX-SPECIAL-DELEGATION-EXEC-003
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

Unit metadata

Open 4 generated metadata fields
id
PTO-ARCH-FEATURES-MINMAX-PROFILE
surface
arch
classification
[
  "features",
  "minmax-profile"
]
depends_on
[
  "PTO-ARCH-FEATURES-MX-FORMATS"
]
Open generated traceability record
{
  "classification": [
    "features",
    "minmax-profile"
  ],
  "documentation": "docs/arch/features/minmax-profile.md",
  "id": "PTO-ARCH-FEATURES-MINMAX-PROFILE",
  "mnemonic": null,
  "readiness_subjects": [],
  "semantic_tests": [
    "PTO-AVS-ARCH-MINMAX-AVAILABILITY-BOUND-002",
    "PTO-AVS-ARCH-MINMAX-ORDER-KEYS-EXEC-001",
    "PTO-AVS-ARCH-MINMAX-ORDERING-TIES-EXEC-004",
    "PTO-AVS-ARCH-MINMAX-SPECIAL-DELEGATION-EXEC-003"
  ],
  "source": "asl/arch/features/minmax-profile.asl",
  "surface": "arch",
  "tests": [
    "PTO-AVS-ARCH-FEATURES-MINMAX-PROFILE-STATIC-001",
    "PTO-AVS-ARCH-MINMAX-AVAILABILITY-BOUND-002",
    "PTO-AVS-ARCH-MINMAX-ORDER-KEYS-EXEC-001",
    "PTO-AVS-ARCH-MINMAX-ORDERING-TIES-EXEC-004",
    "PTO-AVS-ARCH-MINMAX-SPECIAL-DELEGATION-EXEC-003"
  ]
}

来源与发布信息

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

精确所有者