Skip to content

[TileOP API] validCol=1 部分列 tile 参与 TCMP/TSEL 触发维度断言——compare/select 形态契约需明确 #290

Closed

Description

@simmy-xm

现象

部分列 tile(物理列数 kPad > 有效列 validCol=1,即"每行只 1 个有效 cell、但行距为 kPad"的 [kOuter, kPad] 形态)参与 TCMP/TSEL 时,仿真侧 compare/select 维度检查失败断言退出。

场景:ArgMaxV2 切R 合并段希望用 [kOuter, kPad] 行 tile 一次性装载 stage(有效列仅 1,物理列=stage 行距),再对有效列做 GT 合并链。

依据

仿真 AccumulateBlockInfo.cpp:53-86:

  • validColumns = block->lb0,physicalColumns = (bdimMask & 4) ? block->lb2 : validColumns
  • 兼容性要求 physicalColumns >= validColumns

但 compare/select(IsCompatibleOperationDataTile:1270)要求源 tileInfo->validCol == validCol 严格相等,validCol=1 的部分列 tile 与合并链中其它形态源无法共存。

已用 workaround

kMB==1 场景改用 [kTMt,1] 列 tile(行距 kPad 的张量描述 + 列静态 1)承载同等语义,通过。

期望

  1. API 契约明确:部分列 tile(validCol < physicalCol)能否参与 compare/select?若能,语义按有效列还是物理列?若不能,应在 API 层编译期诊断(当前是仿真侧运行期断言);
  2. 如属 ISA 载体编码限制(无法表达 validCol=1 + physicalCol=kPad 的 compare 源),请在文档中写明合法形态清单——ArgMaxV2 的合并形态选择消耗了大量试错成本([tM,1] 双参构造断言、[kMB,1] 列 TLOAD dst 丢失断言、本条),建议汇总一份 tile 形态合法性矩阵。

环境

  • TileOP API 头(benchmark 仓 pto_tile.hpp / tile_tensor_impl.hpp 构造重载族)
  • 仿真 SuperScalarModel 3ca45178(AccumulateBlockInfo.cpp:53-86 / 1270-1279)

Activity

  1. VV0003 commented on Oct 26, 2026

    @VV0003
    Collaborator

    Issue #290 is addressed by PR #291. The current PTO-SPEC comparison contract requires matching physical shape/layout as well as valid shape. The API now rejects mismatched TCMP/TSEL physical geometry at compile time, while preserving same-geometry partial-column tiles (validCol < Cols). Validation: targeted compile-fail/positive tests 2/2 and existing engine contract tests 59/59. PR #291 is open and its required gate is running.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions