Skip to content

[PTO 0.58.5.1] 退休 TileOp 仍被直接 lower 为 TEPL selector #60

Description

@zhoubot

问题概述

PTO-SPEC main@c71674802cad2f5db45a195b878a9bd05993b3d7 已通过
edcbd8b9c6da
退休以下软件可替代的直接 Tile 操作:

  • TQUANT / TDEQUANT
  • THISTOGRAM
  • TSORT / TMRGSORT
  • TCONCAT / TEXTRACT / TINSERT

但 TileOP API linx@f8fb8943a9f4d469c2ecd95c24086e158e63cbd8
仍把这些 C++ API 直接 lower 成旧 BSTART.TEPL selector。这样生成的 ELF
不再属于当前 PTO-SPEC 接受的指令集合。

代码证据

include/jcore/template_asm.hpp 当前仍包含:

THISTOGRAM  -> BSTART.TEPL 104
TCONCAT     -> BSTART.TEPL 96
TEXTRACT    -> BSTART.TEPL 98
TINSERT     -> BSTART.TEPL 99
TQUANT      -> BSTART.TEPL 106
TDEQUANT    -> BSTART.TEPL 107
TSORT       -> BSTART.TEPL 108
TMRGSORT    -> BSTART.TEPL 109

示例复核命令:

rg -n 'BSTART\.TEPL (96|98|99|104|106|107|108|109)' include/jcore/template_asm.hpp

根因分类

这是 TileOP API lowering 与 PTO 指令目录不同步,不是模型应通过放宽检查兼容的旧 ISA。
高层 C++ API 名称可以作为便利接口继续存在,但不能继续生成已退休的直接 selector。

建议 owner

  • TileOP API include/jcore/template_asm.hpp / lowering 维护者
  • 与 SuperScalarModel ISA decode、SuperNPUBench corpus 维护者联动

最小修复方向

  1. 对仍有价值的高层 API,改成 PTO-SPEC 指定的基础操作软件序列。
  2. 暂无可审计替代序列的接口,编译期 fail-closed,并给出迁移诊断。
  3. 不要在 LLVM 或模型中重新启用已退休 selector 来维持旧 ELF。
  4. 更新文档,区分“高层便利 API”与“直接 PTO 指令”。

验收条件

  • 编译每个受影响 API 的最小样例并反汇编;不得出现上述退休 selector。
  • 增加 source/assembly guard,防止这些 BSTART.TEPL 直接形式回归。
  • make check 完整通过,而不只是 template_asm.hpp 的两个 contract tests。
  • 用新 API 重建对应 SuperNPUBench 用例,并由 gfrun/gfsim 对同一 ELF 做结果验证。

关联:

Activity

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

Metadata

Metadata

Assignees

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