Skip to content

Commit b1351ae

Browse files
committed
Revert "docs: remove TBinOp intrinsic plan page"
This reverts commit 5bd8ba3.
1 parent 5bd8ba3 commit b1351ae

3 files changed

Lines changed: 46 additions & 1 deletion

File tree

docs/README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@
66

77
1. [A3 版 TROWMAX 详细分析(面向小白到进阶)](./intrin-intro.md)
88
2. [BinIntrinsic 设计与参数映射说明](./bin-intrinsic.md)
9-
3. [PTO IR Reference](./pto-ir-manual.md)
9+
3. [A2/A3 TBinOp 无循环 Intrinsic 化改造方案(含公开 Low-Level API)](./pto-intrinsic-plan.md)
10+
4. [PTO IR Reference](./pto-ir-manual.md)
1011

1112
## 说明
1213

docs/pto-intrinsic-plan.md

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
# A2/A3 TBinOp 无循环 Intrinsic 化改造方案(含公开 Low-Level API)
2+
3+
4+
### 摘要
5+
目标是把 `include/pto/npu/a2a3/TBinOp.hpp` 的“循环切分调度”与“单次 CCE intrinsic 发射”解耦,新增一个最小粒度(single-issue)的公开 API,直接映射 `vadd/vsub/vmul/vmax/vmin``repeat/blockStride/repeatStride` 参数,不在该 low-level API 内做任何循环。
6+
同时保留现有高层 TADD/TMUL 等 API 兼容路径(可继续循环),实现 Both + Intrinsic-Only API。
7+
8+
### 参数语义
9+
1. repeat: 发射 repeat 次数,范围 0..255;repeat=0 仅用于 count mode。
10+
2. block stride(dst/src0/src1): 同一 repeat 内相邻 block 的步长,单位 block(32B)。
11+
3. repeat stride(dst/src0/src1): 相邻 repeat 的步长,单位 block(32B)。
12+
4. 单次 issue 粒度: 一次调用覆盖 repeat * REPEAT_BYTE 的逻辑窗口,尾部由 mask/count 裁剪。
13+
14+
### 公共接口与内部接口改造
15+
1. 新增公开 low-level API(A2/A3 专用):
16+
TBIN_INTRIN<T, OpTag>(dst, src0, src1, BinIssueDesc desc)
17+
2. BinIssueDesc 字段:
18+
- mask_mode (NORMAL / COUNT)
19+
- vector_count (COUNT 模式)
20+
- tail_elements (NORMAL tail 模式)
21+
- repeat
22+
- dst/src0/src1 block stride
23+
- dst/src0/src1 repeat stride
24+
- repeat_stride_mode / stride_size_mode (默认 false)
25+
3. 在 a2a3/TBinOp.hpp 增加 BinaryIssueOnce:
26+
- 仅参数校验 + mask 设置 + Op::BinInstr 一次调用
27+
- 不含循环
28+
4. 在 TAdd/TSub/TMul/TMax/TMin 增加 IssueByDesc,复用现有 BinInstr。
29+
30+
### 失败策略
31+
1. low-level API 不做自动 split,不隐式循环补偿。
32+
2. repeat/stride 越界直接报错。
33+
3. COUNT 模式要求 repeat=0。
34+
35+
### 测试验收
36+
1. 正例: repeat=1/8/255、连续 stride、广播 block stride=0、非连续 repeat stride。
37+
2. 负例: repeat=256、stride 越界、COUNT + repeat!=0。
38+
3. 回归: 现有 TADD/TMUL/TSUB/TMAX/TMIN 行为不变。
39+
40+
### 假设与默认
41+
1. 先落地 A2/A3(MEMORY_BASE)。
42+
2. 默认 repeatStrideMode=false, strideSizeMode=false,stride 单位 block(32B)。
43+
3. 旧高级 API 保持兼容;无循环要求仅作用于新增 low-level API。

mkdocs.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,5 @@ nav:
77
- 首页: README.md
88
- TROWMAX 分析: intrin-intro.md
99
- BinIntrinsic 设计: bin-intrinsic.md
10+
- TBinOp 改造方案: pto-intrinsic-plan.md
1011
- PTO IR Manual: pto-ir-manual.md

0 commit comments

Comments
 (0)