Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 6 additions & 1 deletion docs/tileop-usage/cube/matrix-matrix/TMATMUL_ACC.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,11 @@ PTO_SHARED_INLINE void TMATMUL_ACC(
tile_shape_b &b,
size_t groupM);

template <is_tile_data_v tile_shape_d, is_tile_data_v tile_shape_c,
is_local_or_shared_left tile_shape_a,
is_local_or_shared_right tile_shape_b, fixp::is_options_v Options>
PTO_SHARED_INLINE void TMATMUL_ACC(tile_shape_d &d, tile_shape_c &c, tile_shape_a &a,
tile_shape_b &b, const Options &options, size_t groupM);
```

### 支持的数据类型
Expand Down Expand Up @@ -60,7 +65,7 @@ PTO_SHARED_INLINE void TMATMUL_ACC(
- **带 `Options` 的重载**:需要量化、激活、转置、scale 或辅助输出时传入 `options`。它不是重复声明,而是在相同核心操作数上增加显式属性;仅可启用本操作支持的属性。详见 [fixp::Options 指南](../../options.md)。


- **带 `groupM` 的重载**:仅用于 cooperative 的 `Local-A/Shared-B` 语义;`groupM` 显式提供 LB0 的 core-total `group_M`,而不是从 Local A shard 推导。`D`(以及 ACC 形式的 `C`)的 valid 行数必须等于 per-PE A shard 大小(`M_per_PE`:CubeM16 对应 `group_M <= 64`,CubeM32 对应 `group_M > 64`)。
- **带 `groupM` 的重载**(basic 与 `options`+`groupM` 两种形式):仅用于 cooperative 的 `Local-A/Shared-B` 语义;`groupM` 显式提供 LB0 的 core-total `group_M`,而不是从 Local A shard 推导。`D`(以及 ACC 形式的 `C`)的 valid 行数必须等于 per-PE A shard 大小(`M_per_PE`:CubeM16 对应 `group_M <= 64`,CubeM32 对应 `group_M > 64`)。
## 使用要求

- Tile 类型必须满足接口模板约束;
Expand Down
8 changes: 7 additions & 1 deletion docs/tileop-usage/cube/matrix-matrix/TMATMUL_BIAS.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,12 @@ PTO_SHARED_INLINE void TMATMUL_BIAS(
tile_shape_bias &bias,
size_t groupM);

template <is_tile_data_v tile_shape_c,
is_local_or_shared_left tile_shape_a,
is_local_or_shared_right tile_shape_b,
is_tile_data_v tile_shape_bias, fixp::is_options_v Options>
PTO_SHARED_INLINE void TMATMUL_BIAS(tile_shape_c &c, tile_shape_a &a, tile_shape_b &b,
tile_shape_bias &bias, const Options &options, size_t groupM);
```

### 支持的数据类型
Expand Down Expand Up @@ -70,7 +76,7 @@ CUBE layout,不能用于 Bias。
- **带 `Options` 的重载**:需要量化、激活、转置、scale 或辅助输出时传入 `options`。它不是重复声明,而是在相同核心操作数上增加显式属性;仅可启用本操作支持的属性。详见 [fixp::Options 指南](../../options.md)。


- **带 `groupM` 的重载**:仅用于 cooperative 的 `Local-A/Shared-B` 语义;`groupM` 显式提供 LB0 的 core-total `group_M`,而不是从 Local A shard 推导。`D`(以及 ACC 形式的 `C`)的 valid 行数必须等于 per-PE A shard 大小(`M_per_PE`:CubeM16 对应 `group_M <= 64`,CubeM32 对应 `group_M > 64`)。
- **带 `groupM` 的重载**(basic 与 `options`+`groupM` 两种形式):仅用于 cooperative 的 `Local-A/Shared-B` 语义;`groupM` 显式提供 LB0 的 core-total `group_M`,而不是从 Local A shard 推导。`D`(以及 ACC 形式的 `C`)的 valid 行数必须等于 per-PE A shard 大小(`M_per_PE`:CubeM16 对应 `group_M <= 64`,CubeM32 对应 `group_M > 64`)。
## 使用要求

- Tile 类型必须满足接口模板约束;
Expand Down
8 changes: 7 additions & 1 deletion docs/tileop-usage/cube/matrix-matrix/TMATMUL_MX.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,12 @@ PTO_SHARED_INLINE void TMATMUL_MX(
tile_shape_b &b,
tile_shape_bscale &bscale,
size_t groupM);
template <FixpAttr Attr = FixpAttr{}, is_tile_data_v tile_shape_c,
is_local_or_shared_left tile_shape_a, typename tile_shape_ascale,
is_local_or_shared_right tile_shape_b, typename tile_shape_bscale,
fixp::is_options_v Options>
PTO_SHARED_INLINE void TMATMUL_MX(tile_shape_c &c, tile_shape_a &a, tile_shape_ascale &ascale,
tile_shape_b &b, tile_shape_bscale &bscale, const Options &options, size_t groupM);
```

### 支持的数据类型
Expand Down Expand Up @@ -92,7 +98,7 @@ PTO_SHARED_INLINE void TMATMUL_MX(
- **带 `Options` 的重载**:需要量化、激活、转置、scale 或辅助输出时传入 `options`。它不是重复声明,而是在相同核心操作数上增加显式属性;仅可启用本操作支持的属性。详见 [fixp::Options 指南](../../options.md)。


- **带 `groupM` 的重载**:仅用于 cooperative 的 `Local-A/Shared-B` 语义;`groupM` 显式提供 LB0 的 core-total `group_M`,而不是从 Local A shard 推导。`D`(以及 ACC 形式的 `C`)的 valid 行数必须等于 per-PE A shard 大小(`M_per_PE`:CubeM16 对应 `group_M <= 64`,CubeM32 对应 `group_M > 64`)。MX 形式的 scale 操作数与其主操作数存储一致(Local A 配 Local scale,Shared B 配 Shared scale)。
- **带 `groupM` 的重载**(basic 与 `options`+`groupM` 两种形式):仅用于 cooperative 的 `Local-A/Shared-B` 语义;`groupM` 显式提供 LB0 的 core-total `group_M`,而不是从 Local A shard 推导。`D`(以及 ACC 形式的 `C`)的 valid 行数必须等于 per-PE A shard 大小(`M_per_PE`:CubeM16 对应 `group_M <= 64`,CubeM32 对应 `group_M > 64`)。MX 形式的 scale 操作数与其主操作数存储一致(Local A 配 Local scale,Shared B 配 Shared scale)。
## 使用要求

- Tile 类型必须满足接口模板约束;
Expand Down
9 changes: 8 additions & 1 deletion docs/tileop-usage/cube/matrix-matrix/TMATMUL_MX_ACC.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,13 @@ PTO_SHARED_INLINE void TMATMUL_MX_ACC(
tile_shape_b &b,
tile_shape_sb &scale_b,
size_t groupM);
template <FixpAttr Attr = FixpAttr{}, is_tile_data_v tile_shape_d, is_tile_data_v tile_shape_c,
is_local_or_shared_left tile_shape_a, typename tile_shape_sa,
is_local_or_shared_right tile_shape_b, typename tile_shape_sb,
fixp::is_options_v Options>
PTO_SHARED_INLINE void TMATMUL_MX_ACC(tile_shape_d &d, tile_shape_c &c, tile_shape_a &a,
tile_shape_sa &scale_a, tile_shape_b &b, tile_shape_sb &scale_b,
const Options &options, size_t groupM);
```

### 支持的数据类型
Expand Down Expand Up @@ -99,7 +106,7 @@ PTO_SHARED_INLINE void TMATMUL_MX_ACC(
- **带 `Options` 的重载**:需要量化、激活、转置、scale 或辅助输出时传入 `options`。它不是重复声明,而是在相同核心操作数上增加显式属性;仅可启用本操作支持的属性。详见 [fixp::Options 指南](../../options.md)。


- **带 `groupM` 的重载**:仅用于 cooperative 的 `Local-A/Shared-B` 语义;`groupM` 显式提供 LB0 的 core-total `group_M`,而不是从 Local A shard 推导。`D`(以及 ACC 形式的 `C`)的 valid 行数必须等于 per-PE A shard 大小(`M_per_PE`:CubeM16 对应 `group_M <= 64`,CubeM32 对应 `group_M > 64`)。MX 形式的 scale 操作数与其主操作数存储一致(Local A 配 Local scale,Shared B 配 Shared scale)。
- **带 `groupM` 的重载**(basic 与 `options`+`groupM` 两种形式):仅用于 cooperative 的 `Local-A/Shared-B` 语义;`groupM` 显式提供 LB0 的 core-total `group_M`,而不是从 Local A shard 推导。`D`(以及 ACC 形式的 `C`)的 valid 行数必须等于 per-PE A shard 大小(`M_per_PE`:CubeM16 对应 `group_M <= 64`,CubeM32 对应 `group_M > 64`)。MX 形式的 scale 操作数与其主操作数存储一致(Local A 配 Local scale,Shared B 配 Shared scale)。
## 使用要求

- Tile 类型必须满足接口模板约束;
Expand Down
9 changes: 8 additions & 1 deletion docs/tileop-usage/cube/matrix-matrix/TMATMUL_MX_BIAS.md
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,13 @@ PTO_SHARED_INLINE void TMATMUL_MX_BIAS(
tile_shape_sb &scale_b,
tile_shape_bias &bias,
size_t groupM);
template <FixpAttr Attr = FixpAttr{}, is_tile_data_v tile_shape_d,
is_local_or_shared_left tile_shape_a, typename tile_shape_sa,
is_local_or_shared_right tile_shape_b, typename tile_shape_sb,
is_tile_data_v tile_shape_bias, fixp::is_options_v Options>
PTO_SHARED_INLINE void TMATMUL_MX_BIAS(tile_shape_d &d, tile_shape_a &a,
tile_shape_sa &scale_a, tile_shape_b &b, tile_shape_sb &scale_b,
tile_shape_bias &bias, const Options &options, size_t groupM);
```

### 支持的数据类型
Expand Down Expand Up @@ -111,7 +118,7 @@ PTO_SHARED_INLINE void TMATMUL_MX_BIAS(
- **带 `Options` 的重载**:需要量化、激活、转置、scale 或辅助输出时传入 `options`。它不是重复声明,而是在相同核心操作数上增加显式属性;仅可启用本操作支持的属性。详见 [fixp::Options 指南](../../options.md)。


- **带 `groupM` 的重载**:仅用于 cooperative 的 `Local-A/Shared-B` 语义;`groupM` 显式提供 LB0 的 core-total `group_M`,而不是从 Local A shard 推导。`D`(以及 ACC 形式的 `C`)的 valid 行数必须等于 per-PE A shard 大小(`M_per_PE`:CubeM16 对应 `group_M <= 64`,CubeM32 对应 `group_M > 64`)。MX 形式的 scale 操作数与其主操作数存储一致(Local A 配 Local scale,Shared B 配 Shared scale)。
- **带 `groupM` 的重载**(basic 与 `options`+`groupM` 两种形式):仅用于 cooperative 的 `Local-A/Shared-B` 语义;`groupM` 显式提供 LB0 的 core-total `group_M`,而不是从 Local A shard 推导。`D`(以及 ACC 形式的 `C`)的 valid 行数必须等于 per-PE A shard 大小(`M_per_PE`:CubeM16 对应 `group_M <= 64`,CubeM32 对应 `group_M > 64`)。MX 形式的 scale 操作数与其主操作数存储一致(Local A 配 Local scale,Shared B 配 Shared scale)。
## 使用要求

- Tile 类型必须满足接口模板约束;
Expand Down
11 changes: 11 additions & 0 deletions docs/tileop-usage/migration/pto-0583-migration.md
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,17 @@ TMATMUL_MX_ACC(d, c, local_a, scale_a, shared_b, scale_b, groupM);
TMATMUL_MX_BIAS(d, local_a, scale_a, shared_b, scale_b, bias, groupM);
```

Every family member also accepts `options` combined with the explicit
`groupM` (full PostProcess capability with the core-total group_M):

```cpp
TMATMUL_ACC(d, c, local_a, shared_b, options, groupM);
TMATMUL_BIAS(d, local_a, shared_b, bias, options, groupM);
TMATMUL_MX(d, local_a, scale_a, shared_b, scale_b, options, groupM);
TMATMUL_MX_ACC(d, c, local_a, scale_a, shared_b, scale_b, options, groupM);
TMATMUL_MX_BIAS(d, local_a, scale_a, shared_b, scale_b, bias, options, groupM);
```

For a non-CUBE Tile, the same spelling remains the normal `B.IOT` transport:

```cpp
Expand Down
7 changes: 7 additions & 0 deletions docs/tileop-usage/options.md
Original file line number Diff line number Diff line change
Expand Up @@ -346,6 +346,13 @@ TMATMUL_BIAS(d, local_a, shared_b, bias, groupM);
TMATMUL_MX(d, local_a, scale_a, shared_b, scale_b, groupM);
TMATMUL_MX_ACC(d, c, local_a, scale_a, shared_b, scale_b, groupM);
TMATMUL_MX_BIAS(d, local_a, scale_a, shared_b, scale_b, bias, groupM);

// 每个接口同样提供 options + groupM 组合(完整后处理能力与显式 group_M 并用):
TMATMUL_ACC(d, c, local_a, shared_b, options, groupM);
TMATMUL_BIAS(d, local_a, shared_b, bias, options, groupM);
TMATMUL_MX(d, local_a, scale_a, shared_b, scale_b, options, groupM);
TMATMUL_MX_ACC(d, c, local_a, scale_a, shared_b, scale_b, options, groupM);
TMATMUL_MX_BIAS(d, local_a, scale_a, shared_b, scale_b, bias, options, groupM);
```

其中:
Expand Down
Loading