From fb02a8bfc83a14f8996ff421eec426f618e1ebd2 Mon Sep 17 00:00:00 2001 From: LinxISA Automation Date: Tue, 8 Sep 2026 14:31:40 +0800 Subject: [PATCH] docs: document options+groupM overloads across the TMATMUL family - TMATMUL_ACC/BIAS/MX/MX_ACC/MX_BIAS usage pages: add the (options, groupM) overload signature with its template declaration; the overload-selection entry now notes both basic and options forms - options.md: explicit group_M entry list extended with the five options+groupM forms - pto-0583-migration.md: family-wide options+groupM migration entries --- docs/tileop-usage/cube/matrix-matrix/TMATMUL_ACC.md | 7 ++++++- docs/tileop-usage/cube/matrix-matrix/TMATMUL_BIAS.md | 8 +++++++- docs/tileop-usage/cube/matrix-matrix/TMATMUL_MX.md | 8 +++++++- .../tileop-usage/cube/matrix-matrix/TMATMUL_MX_ACC.md | 9 ++++++++- .../cube/matrix-matrix/TMATMUL_MX_BIAS.md | 9 ++++++++- docs/tileop-usage/migration/pto-0583-migration.md | 11 +++++++++++ docs/tileop-usage/options.md | 7 +++++++ 7 files changed, 54 insertions(+), 5 deletions(-) diff --git a/docs/tileop-usage/cube/matrix-matrix/TMATMUL_ACC.md b/docs/tileop-usage/cube/matrix-matrix/TMATMUL_ACC.md index 69f14e8..582331b 100644 --- a/docs/tileop-usage/cube/matrix-matrix/TMATMUL_ACC.md +++ b/docs/tileop-usage/cube/matrix-matrix/TMATMUL_ACC.md @@ -31,6 +31,11 @@ PTO_SHARED_INLINE void TMATMUL_ACC( tile_shape_b &b, size_t groupM); +template +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); ``` ### 支持的数据类型 @@ -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 类型必须满足接口模板约束; diff --git a/docs/tileop-usage/cube/matrix-matrix/TMATMUL_BIAS.md b/docs/tileop-usage/cube/matrix-matrix/TMATMUL_BIAS.md index c3c5eb4..31572b1 100644 --- a/docs/tileop-usage/cube/matrix-matrix/TMATMUL_BIAS.md +++ b/docs/tileop-usage/cube/matrix-matrix/TMATMUL_BIAS.md @@ -31,6 +31,12 @@ PTO_SHARED_INLINE void TMATMUL_BIAS( tile_shape_bias &bias, size_t groupM); +template +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); ``` ### 支持的数据类型 @@ -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 类型必须满足接口模板约束; diff --git a/docs/tileop-usage/cube/matrix-matrix/TMATMUL_MX.md b/docs/tileop-usage/cube/matrix-matrix/TMATMUL_MX.md index d45dddc..027ae92 100644 --- a/docs/tileop-usage/cube/matrix-matrix/TMATMUL_MX.md +++ b/docs/tileop-usage/cube/matrix-matrix/TMATMUL_MX.md @@ -58,6 +58,12 @@ PTO_SHARED_INLINE void TMATMUL_MX( tile_shape_b &b, tile_shape_bscale &bscale, size_t groupM); +template +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); ``` ### 支持的数据类型 @@ -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 类型必须满足接口模板约束; diff --git a/docs/tileop-usage/cube/matrix-matrix/TMATMUL_MX_ACC.md b/docs/tileop-usage/cube/matrix-matrix/TMATMUL_MX_ACC.md index f9176d4..524d173 100644 --- a/docs/tileop-usage/cube/matrix-matrix/TMATMUL_MX_ACC.md +++ b/docs/tileop-usage/cube/matrix-matrix/TMATMUL_MX_ACC.md @@ -65,6 +65,13 @@ PTO_SHARED_INLINE void TMATMUL_MX_ACC( tile_shape_b &b, tile_shape_sb &scale_b, size_t groupM); +template +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); ``` ### 支持的数据类型 @@ -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 类型必须满足接口模板约束; diff --git a/docs/tileop-usage/cube/matrix-matrix/TMATMUL_MX_BIAS.md b/docs/tileop-usage/cube/matrix-matrix/TMATMUL_MX_BIAS.md index 5533f6d..b89c19f 100644 --- a/docs/tileop-usage/cube/matrix-matrix/TMATMUL_MX_BIAS.md +++ b/docs/tileop-usage/cube/matrix-matrix/TMATMUL_MX_BIAS.md @@ -77,6 +77,13 @@ PTO_SHARED_INLINE void TMATMUL_MX_BIAS( tile_shape_sb &scale_b, tile_shape_bias &bias, size_t groupM); +template +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); ``` ### 支持的数据类型 @@ -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 类型必须满足接口模板约束; diff --git a/docs/tileop-usage/migration/pto-0583-migration.md b/docs/tileop-usage/migration/pto-0583-migration.md index 3ecc23f..14152b8 100644 --- a/docs/tileop-usage/migration/pto-0583-migration.md +++ b/docs/tileop-usage/migration/pto-0583-migration.md @@ -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 diff --git a/docs/tileop-usage/options.md b/docs/tileop-usage/options.md index a556403..51cd748 100644 --- a/docs/tileop-usage/options.md +++ b/docs/tileop-usage/options.md @@ -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); ``` 其中: