已合并
Sync PyPTO Pro API annotations and docs #6873
xuxinlei321创建于 19 天前
Sync PyPTO Pro API annotations and docs #6873
已合并
xuxinlei321创建于 19 天前
共 206 个文件变更+625-503
@@ -25,7 +25,7 @@ $$dstReg0_i = srcReg_{2i}, \quad dstReg1_i = srcReg_{2i+1}$$
25## 函数原型25## 函数原型
26 26 
27```python27```python
28-de_interleave(src0, src1, dtype: Optional[DType] = None) -> (dst0, dst1)28+de_interleave(src0, src1, /, *, dtype: Optional[DType] = None) -> (dst0, dst1)
29```29```
30 30 
31## 参数说明31## 参数说明
@@ -25,7 +25,7 @@ $$dstReg0_{2i} = srcReg0_i, \quad dstReg1_{2i+1} = srcReg1_i$$
25## 函数原型25## 函数原型
26 26 
27```python27```python
28-interleave(src0, src1, dtype: Optional[DType] = None) -> (dst0, dst1)28+interleave(src0, src1, /, *, dtype: Optional[DType] = None) -> (dst0, dst1)
29```29```
30 30 
31## 参数说明31## 参数说明
@@ -31,7 +31,7 @@
31## 函数原型31## 函数原型
32 32 
33```python33```python
34-pack(src, part: Optional[PackPart] = None, dtype: Optional[DType] = None) -> dst34+pack(src, /, *, part: Optional[PackPart] = None, dtype: Optional[DType] = None) -> dst
35```35```
36 36 
37## 参数说明37## 参数说明
@@ -31,7 +31,7 @@
31## 函数原型31## 函数原型
32 32 
33```python33```python
34-unpack(src, part: Optional[PackPart] = None, dtype: Optional[DType] = None) -> dst34+unpack(src, /, *, part: Optional[PackPart] = None, dtype: Optional[DType] = None) -> dst
35```35```
36 36 
37## 参数说明37## 参数说明
@@ -29,7 +29,7 @@ mask_reg由vf.create_mask或vf.update_mask产生,作为mask_reg类型的参数
29## 函数原型29## 函数原型
30 30 
31```python31```python
32-unsqueeze(preg) -> dst32+unsqueeze(preg, /) -> dst
33```33```
34 34 
35## 参数说明35## 参数说明
@@ -33,7 +33,7 @@
33## 函数原型33## 函数原型
34 34 
35```python35```python
36-abs(src, preg, mode: Optional[MergeMode] = None) -> dst36+abs(src, preg, /, *, mode: Optional[MergeMode] = None) -> dst
37```37```
38 38 
39## 参数说明39## 参数说明
@@ -29,7 +29,7 @@ $$dst_i = src0_i + src1_i$$
29## 函数原型29## 函数原型
30 30 
31```python31```python
32-add(src0, src1, preg, mode: Optional[MergeMode] = None) -> dst32+add(src0, src1, preg, /, *, mode: Optional[MergeMode] = None) -> dst
33```33```
34 34 
35## 参数说明35## 参数说明
@@ -29,7 +29,7 @@ Carry flag(进位标志)用于表示加法进位,若src0、src1、carry_sr
29## 函数原型29## 函数原型
30 30 
31```python31```python
32-addc(src0, src1, carry_src, preg) -> (carry, dst)32+addc(src0, src1, carry_src, preg, /) -> (carry, dst)
33```33```
34 34 
35## 参数说明35## 参数说明
@@ -21,7 +21,7 @@ $$dst_i = src_i + scalar$$
21## 函数原型21## 函数原型
22 22 
23```python23```python
24-adds(src, scalar, preg, mode: Optional[MergeMode] = None) -> dst24+adds(src, scalar, preg, /, *, mode: Optional[MergeMode] = None) -> dst
25```25```
26 26 
27## 参数说明27## 参数说明
@@ -21,7 +21,7 @@ $$dstReg_i = srcReg0_i \div srcReg1_i$$
21## 函数原型21## 函数原型
22 22 
23```python23```python
24-div(src0, src1, preg, mode: Optional[MergeMode] = None, precision: Optional[bool] = None) -> dst24+div(src0, src1, preg, /, *, mode: Optional[MergeMode] = None, precision: Optional[bool] = None) -> dst
25```25```
26 26 
27## 参数说明27## 参数说明
@@ -21,7 +21,7 @@ $$dst_i = e^{src_i}$$
21## 函数原型21## 函数原型
22 22 
23```python23```python
24-exp(src, preg, mode: Optional[MergeMode] = None, precision: Optional[bool] = None) -> dst24+exp(src, preg, /, *, mode: Optional[MergeMode] = None, precision: Optional[bool] = None) -> dst
25```25```
26 26 
27## 参数说明27## 参数说明
@@ -21,7 +21,7 @@ $$dst_i = \begin{cases} src_i & src_i \geq 0 \\ src_i \times scalar & src_i < 0
21## 函数原型21## 函数原型
22 22 
23```python23```python
24-leaky_relu(src, scalar, preg, mode: Optional[MergeMode] = None) -> dst24+leaky_relu(src, scalar, preg, /, *, mode: Optional[MergeMode] = None) -> dst
25```25```
26 26 
27## 参数说明27## 参数说明
@@ -21,7 +21,7 @@ $$dst_i = \ln(src_i)$$
21## 函数原型21## 函数原型
22 22 
23```python23```python
24-ln(src, preg, mode: Optional[MergeMode] = None, precision: Optional[bool] = None) -> dst24+ln(src, preg, /, *, mode: Optional[MergeMode] = None, precision: Optional[bool] = None) -> dst
25```25```
26 26 
27## 参数说明27## 参数说明
@@ -21,7 +21,7 @@ $$dst_i = \log(src_i)$$
21## 函数原型21## 函数原型
22 22 
23```python23```python
24-log(src, preg, mode: Optional[MergeMode] = None, precision: Optional[bool] = None) -> dst24+log(src, preg, /, *, mode: Optional[MergeMode] = None, precision: Optional[bool] = None) -> dst
25```25```
26 26 
27## 参数说明27## 参数说明
@@ -23,7 +23,7 @@ $$dst_i = \log_{10}(src_i)$$
23## 函数原型23## 函数原型
24 24 
25```python25```python
26-log10(src, preg, mode: Optional[MergeMode] = None, precision: Optional[bool] = None) -> dst26+log10(src, preg, /, *, mode: Optional[MergeMode] = None, precision: Optional[bool] = None) -> dst
27```27```
28 28 
29## 参数说明29## 参数说明
@@ -23,7 +23,7 @@ $$dst_i = \log_2(src_i)$$
23## 函数原型23## 函数原型
24 24 
25```python25```python
26-log2(src, preg, mode: Optional[MergeMode] = None, precision: Optional[bool] = None) -> dst26+log2(src, preg, /, *, mode: Optional[MergeMode] = None, precision: Optional[bool] = None) -> dst
27```27```
28 28 
29## 参数说明29## 参数说明
@@ -21,7 +21,7 @@ $$dst_i = \max(src0_i, src1_i)$$
21## 函数原型21## 函数原型
22 22 
23```python23```python
24-max(src0, src1, preg, mode: Optional[MergeMode] = None) -> dst24+max(src0, src1, preg, /, *, mode: Optional[MergeMode] = None) -> dst
25```25```
26 26 
27## 参数说明27## 参数说明
@@ -21,7 +21,7 @@ $$dst_i = \max(src_i, scalar)$$
21## 函数原型21## 函数原型
22 22 
23```python23```python
24-maxs(src, scalar, preg, mode: Optional[MergeMode] = None) -> dst24+maxs(src, scalar, preg, /, *, mode: Optional[MergeMode] = None) -> dst
25```25```
26 26 
27## 参数说明27## 参数说明
@@ -21,7 +21,7 @@ $$dst_i = \min(src0_i, src1_i)$$
21## 函数原型21## 函数原型
22 22 
23```python23```python
24-min(src0, src1, preg, mode: Optional[MergeMode] = None) -> dst24+min(src0, src1, preg, /, *, mode: Optional[MergeMode] = None) -> dst
25```25```
26 26 
27## 参数说明27## 参数说明
@@ -21,7 +21,7 @@ $$dst_i = \min(src_i, scalar)$$
21## 函数原型21## 函数原型
22 22 
23```python23```python
24-mins(src, scalar, preg, mode: Optional[MergeMode] = None) -> dst24+mins(src, scalar, preg, /, *, mode: Optional[MergeMode] = None) -> dst
25```25```
26 26 
27## 参数说明27## 参数说明
Mdocs/zh/api/pro_api/SIMD-API/Reg-API/basic_arithmetic/mul.md+1-1文件内容审核中,请稍后刷新重试
@@ -29,7 +29,7 @@ $$dst\_hi_i = \lfloor (src0_i \times src1_i) / 2^{bit} \rfloor$$
29## 函数原型29## 函数原型
30 30 
31```python31```python
32-mull(src0, src1, preg) -> (dst_lo, dst_hi)32+mull(src0, src1, preg, /) -> (dst_lo, dst_hi)
33```33```
34 34 
35## 参数说明35## 参数说明
Mdocs/zh/api/pro_api/SIMD-API/Reg-API/basic_arithmetic/muls.md+1-1文件内容审核中,请稍后刷新重试
Mdocs/zh/api/pro_api/SIMD-API/Reg-API/basic_arithmetic/neg.md+1-1文件内容审核中,请稍后刷新重试
@@ -21,7 +21,7 @@ $$dst_i = \begin{cases} src_i & src_i \geq 0 \\ src_i \times slope_i & src_i < 0
21## 函数原型21## 函数原型
22 22 
23```python23```python
24-prelu(src, slope, preg, mode: Optional[MergeMode] = None) -> dst24+prelu(src, slope, preg, /, *, mode: Optional[MergeMode] = None) -> dst
25```25```
26 26 
27## 参数说明27## 参数说明
@@ -21,7 +21,7 @@ $$dst_i = \max(0, src_i)$$
21## 函数原型21## 函数原型
22 22 
23```python23```python
24-relu(src, preg, mode: Optional[MergeMode] = None) -> dst24+relu(src, preg, /, *, mode: Optional[MergeMode] = None) -> dst
25```25```
26 26 
27## 参数说明27## 参数说明
Mdocs/zh/api/pro_api/SIMD-API/Reg-API/basic_arithmetic/sqrt.md+1-1文件内容审核中,请稍后刷新重试
@@ -29,7 +29,7 @@ $$dst_i = src0_i - src1_i$$
29## 函数原型29## 函数原型
30 30 
31```python31```python
32-sub(src0, src1, preg, mode: Optional[MergeMode] = None) -> dst32+sub(src0, src1, preg, /, *, mode: Optional[MergeMode] = None) -> dst
33```33```
34 34 
35## 参数说明35## 参数说明
@@ -23,7 +23,7 @@ Borrow flag(借位标志)用于表示减法借位,减法运算在硬件底
23## 函数原型23## 函数原型
24 24 
25```python25```python
26-subc(src0, src1, borrow_src, preg) -> (borrow, dst)26+subc(src0, src1, borrow_src, preg, /) -> (borrow, dst)
27```27```
28 28 
29## 参数说明29## 参数说明
@@ -34,7 +34,7 @@ class CastLayout(enum.Enum):
34import pypto_pro.language as pl34import pypto_pro.language as pl
35 35 
36@pl.vector_function36@pl.vector_function
37-def vf_kernel():37+def vf_kernel(src, preg):
38- dst = vf.astype(src, dtype=pl.DT_INT8, layout=pl.CastLayout.ZERO,38+ dst = vf.astype(src, preg, dtype=pl.DT_INT8, layout=pl.CastLayout.ZERO,
39- round_mode=pl.VFRoundMode.CAST_RINT, saturate=pl.SaturateMode.OFF)39+ round_mode=pl.VFRoundMode.CAST_RINT, saturate=pl.SaturateMode.OFF)
40```40```
@@ -31,5 +31,5 @@ import pypto_pro.language as pl
31 31 
32@pl.vector_function32@pl.vector_function
33def vf_kernel():33def vf_kernel():
34- dst = vf.arange(start=0, order=pl.IndexOrder.INCREASE_ORDER)34+ dst = vf.arange(0, dtype=pl.DT_INT32, index_order=pl.IndexOrder.INCREASE_ORDER)
35```35```
@@ -30,6 +30,6 @@ class PackPart(enum.Enum):
30import pypto_pro.language as pl30import pypto_pro.language as pl
31 31 
32@pl.vector_function32@pl.vector_function
33-def vf_kernel():33+def vf_kernel(src):
34- dst = vf.pack(src0, src1, preg, part=pl.PackPart.LOWER)34+ dst = vf.pack(src, part=pl.PackPart.LOWER, dtype=pl.DT_UINT8)
35```35```
@@ -41,6 +41,6 @@ class SaturateMode(enum.Enum):
41import pypto_pro.language as pl41import pypto_pro.language as pl
42 42 
43@pl.vector_function43@pl.vector_function
44-def vf_kernel():44+def vf_kernel(src, preg):
45- dst = vf.astype(src, dtype=pl.DT_INT8, saturate=pl.SaturateMode.ON)45+ dst = vf.astype(src, preg, dtype=pl.DT_INT8, saturate=pl.SaturateMode.ON)
46```46```
@@ -30,6 +30,6 @@ class SqueezeMode(enum.Enum):
30import pypto_pro.language as pl30import pypto_pro.language as pl
31 31 
32@pl.vector_function32@pl.vector_function
33-def vf_kernel():33+def vf_kernel(src, preg):
34- dst = vf.squeeze(src, preg, mode=pl.SqueezeMode.STORE_REG)34+ dst = vf.squeeze(src, preg, gather_mode=pl.SqueezeMode.STORE_REG)
35```35```
@@ -50,6 +50,6 @@ class VFRoundMode(enum.Enum):
50import pypto_pro.language as pl50import pypto_pro.language as pl
51 51 
52@pl.vector_function52@pl.vector_function
53-def vf_kernel():53+def vf_kernel(src, preg):
54- dst = vf.astype(src, dtype=pl.DT_INT32, round_mode=pl.VFRoundMode.CAST_FLOOR)54+ dst = vf.astype(src, preg, dtype=pl.DT_INT32, round_mode=pl.VFRoundMode.CAST_FLOOR)
55```55```
Mdocs/zh/api/pro_api/SIMD-API/Reg-API/comparison_and_selection/eq.md+1-1文件内容审核中,请稍后刷新重试
Mdocs/zh/api/pro_api/SIMD-API/Reg-API/comparison_and_selection/ge.md+1-1文件内容审核中,请稍后刷新重试
@@ -23,7 +23,7 @@ $$dstReg_i = \begin{cases} 1 & \text{if } src0_i > src1_i \\ 0 & \text{otherwise
23## 函数原型23## 函数原型
24 24 
25```python25```python
26-gt(src0, src1, preg) -> dst_mask26+gt(src0, src1, preg, /) -> dst_mask
27```27```
28 28 
29## 参数说明29## 参数说明
Mdocs/zh/api/pro_api/SIMD-API/Reg-API/comparison_and_selection/le.md+1-1文件内容审核中,请稍后刷新重试
Mdocs/zh/api/pro_api/SIMD-API/Reg-API/comparison_and_selection/lt.md+1-1文件内容审核中,请稍后刷新重试
Mdocs/zh/api/pro_api/SIMD-API/Reg-API/comparison_and_selection/ne.md+1-1文件内容审核中,请稍后刷新重试
@@ -21,7 +21,7 @@ $$dstReg_i = \begin{cases} srcTrueReg_i & \text{if } mask_i = 1 \\ srcFalseReg_i
21## 函数原型21## 函数原型
22 22 
23```python23```python
24-select(src0, src1, preg) -> dst24+select(src0, src1, preg, /) -> dst
25```25```
26 26 
27## 参数说明27## 参数说明
Mdocs/zh/api/pro_api/SIMD-API/Reg-API/comparison_and_selection/squeeze.md+1-1文件内容审核中,请稍后刷新重试
Mdocs/zh/api/pro_api/SIMD-API/Reg-API/composite_computation/abs_sub.md+1-1文件内容审核中,请稍后刷新重试
@@ -23,7 +23,7 @@ $$
23## 函数原型23## 函数原型
24 24 
25```python25```python
26-axpy(src, scalar, preg, mode: Optional[MergeMode] = None) -> dst26+axpy(src, scalar, preg, /, *, mode: Optional[MergeMode] = None) -> dst
27```27```
28 28 
29## 参数说明29## 参数说明
@@ -31,7 +31,7 @@ $$
31## 函数原型31## 函数原型
32 32 
33```python33```python
34-exp_sub(src0, src1, preg, layout: Optional[CastLayout] = None, dtype: Optional[DType] = None) -> dst34+exp_sub(src0, src1, preg, /, *, layout: Optional[CastLayout] = None, dtype: Optional[DType] = None) -> dst
35```35```
36 36 
37## 参数说明37## 参数说明
@@ -27,7 +27,7 @@ dst寄存器既被读取(作为加数)又被写入(存储结果),调
27## 函数原型27## 函数原型
28 28 
29```python29```python
30-mul_add_dst(src0, src1, preg, mode: Optional[MergeMode] = None) -> dst30+mul_add_dst(src0, src1, preg, /, *, mode: Optional[MergeMode] = None) -> dst
31```31```
32 32 
33## 参数说明33## 参数说明
Mdocs/zh/api/pro_api/SIMD-API/Reg-API/composite_computation/mul_dst_add.md+1-1文件内容审核中,请稍后刷新重试
@@ -23,7 +23,7 @@ $$
23## 函数原型23## 函数原型
24 24 
25```python25```python
26-muls_cast(src, scalar, preg, dtype: DType, layout: Optional[CastLayout] = None) -> dst26+muls_cast(src, scalar, preg, /, *, dtype: DType, layout: Optional[CastLayout] = None) -> dst
27```27```
28 28 
29## 参数说明29## 参数说明
Mdocs/zh/api/pro_api/SIMD-API/Reg-API/data_movement/create_addr_reg.md+1-1文件内容审核中,请稍后刷新重试
Mdocs/zh/api/pro_api/SIMD-API/Reg-API/data_movement/full.md+1-1文件内容审核中,请稍后刷新重试
@@ -37,7 +37,7 @@
37## 函数原型37## 函数原型
38 38 
39```python39```python
40-gather(src, index, preg, data_copy_mode: Optional[DataCopyMode] = None) -> dst40+gather(src, index, preg=None, /, *, data_copy_mode: Optional[DataCopyMode] = None) -> dst
41```41```
42 42 
43## 参数说明43## 参数说明
@@ -24,7 +24,7 @@
24## 函数原型24## 函数原型
25 25 
26```python26```python
27-get_mask_spr(width: MaskWidth = MaskWidth.B32) -> preg27+get_mask_spr(*, width: MaskWidth = MaskWidth.B32) -> preg
28```28```
29 29 
30## 参数说明30## 参数说明
@@ -19,7 +19,7 @@
19## 函数原型19## 函数原型
20 20 
21```python21```python
22-load(tile, stride) -> dst22+load(tile, stride=None, /) -> dst
23```23```
24 24 
25## 参数说明25## 参数说明
@@ -61,7 +61,7 @@ mask_reg目标支持三种分布模式,通过dist关键字参数配置,能
61## 函数原型61## 函数原型
62 62 
63```python63```python
64-load_align(tile, offset=None, dist: Optional[LoadDist] = None, dtype: Optional[DType] = None, post_update: bool = False, block_stride=None, repeat_stride=None, data_copy_mode: Optional[DataCopyMode] = None) -> dst64+load_align(tile, offset=None, /, *, dist: Optional[LoadDist] = None, dtype: Optional[DType] = None, post_update: bool = False, block_stride=None, repeat_stride=None, data_copy_mode: Optional[DataCopyMode] = None) -> dst
65```65```
66 66 
67## 参数说明67## 参数说明
@@ -69,7 +69,7 @@ load_align(tile, offset=None, dist: Optional[LoadDist] = None, dtype: Optional[D
69| 参数 | 输入/输出 | 说明 |69| 参数 | 输入/输出 | 说明 |
70|---|---|---|70|---|---|---|
71| tile | 输入 | 源操作数,Tile地址。地址需要32字节对齐。支持的数据类型为:DT_INT8、DT_UINT8、DT_INT16、DT_UINT16、DT_FP16、DT_BF16、DT_INT32、DT_UINT32、DT_FP32、DT_INT64、DT_UINT64、DT_FP8E4M3FN、DT_FP8E5M2、DT_FP8E8M0、DT_HF8、DT_FP4E2M1、DT_FP4E1M2。 |71| tile | 输入 | 源操作数,Tile地址。地址需要32字节对齐。支持的数据类型为:DT_INT8、DT_UINT8、DT_INT16、DT_UINT16、DT_FP16、DT_BF16、DT_INT32、DT_UINT32、DT_FP32、DT_INT64、DT_UINT64、DT_FP8E4M3FN、DT_FP8E5M2、DT_FP8E8M0、DT_HF8、DT_FP4E2M1、DT_FP4E1M2。 |
72-| offset | 输入 | 可选,地址偏移参数,根据传入类型自动分派搬运接口。在**连续搬运模式**和**mask_reg模式**下单位为元素个数,在**非连续搬运模式**时为mask。<br>- **连续搬运模式**:<br>&nbsp;&nbsp;- **整数或[row, col]列表**:整数偏移在代码生成时转换为指针算术Tile + offset。<br>&nbsp;&nbsp;&nbsp;&nbsp;[row, col]列表的线性偏移为row * shape[1] + col,row单位为Tile的列数(即set_validshape[m, n]的n),col单位为元素个数,两者均支持表达式。<br>&nbsp;&nbsp;- **AddrReg**(由vf.create_addr_reg创建):实际搬运Tile地址为Tile + AddrReg中存储的偏移量。<br>&nbsp;&nbsp;&nbsp;&nbsp;每次迭代需先调用vf.create_addr_reg设定偏移量再调用搬运指令。<br>- **非连续搬运模式**(DataBlock加载模式,data_copy_mode=pypto_pro.language.DataCopyMode.DATA_BLOCK_COPY时):该模式下offset位置改为传入控制有效元素的mask_reg,<br>&nbsp;&nbsp;某个DataBlock在mask中对应的32bit有任意一位为1时搬入,全为0时不读取且dst对应位置置0。<br>&nbsp;&nbsp;- 当post_update=True时,搬运后源地址自动累进repeat_stride步长,每次迭代无需手动更新地址。<br>&nbsp;&nbsp;- 当post_update=False时,搬运后地址不更新。<br>- **mask_reg模式**(需先用vf.create_mask预声明):<br>&nbsp;&nbsp;- **整数**:仅在post_update=True时生效;post_update=False时不支持整数offset。<br>&nbsp;&nbsp;- **AddrReg**(由vf.create_addr_reg创建):实际搬运Tile地址为srcAddr + AddrReg中存储的偏移量。 |72+| offset | 输入 | 可选,地址偏移参数,根据传入类型自动分派搬运接口。在**连续搬运模式**和**mask_reg模式**下单位为元素个数,在**非连续搬运模式**时为mask。<br>- **连续搬运模式**:<br>&nbsp;&nbsp;- **整数或[row, col]列表/元组**:整数偏移在代码生成时转换为指针算术Tile + offset。<br>&nbsp;&nbsp;&nbsp;&nbsp;[row, col]列表/元组的线性偏移为row * shape[1] + col,row单位为Tile的列数(即set_validshape[m, n]的n),col单位为元素个数,两者均支持表达式。<br>&nbsp;&nbsp;- **AddrReg**(由vf.create_addr_reg创建):实际搬运Tile地址为Tile + AddrReg中存储的偏移量。<br>&nbsp;&nbsp;&nbsp;&nbsp;每次迭代需先调用vf.create_addr_reg设定偏移量再调用搬运指令。<br>- **非连续搬运模式**(DataBlock加载模式,data_copy_mode=pypto_pro.language.DataCopyMode.DATA_BLOCK_COPY时):该模式下offset位置改为传入控制有效元素的mask_reg,<br>&nbsp;&nbsp;某个DataBlock在mask中对应的32bit有任意一位为1时搬入,全为0时不读取且dst对应位置置0。<br>&nbsp;&nbsp;- 当post_update=True时,搬运后源地址自动累进repeat_stride步长,每次迭代无需手动更新地址。<br>&nbsp;&nbsp;- 当post_update=False时,搬运后地址不更新。<br>- **mask_reg模式**(需先用vf.create_mask预声明):<br>&nbsp;&nbsp;- **整数**:仅在post_update=True时生效;post_update=False时不支持整数offset。<br>&nbsp;&nbsp;- **AddrReg**(由vf.create_addr_reg创建):实际搬运Tile地址为srcAddr + AddrReg中存储的偏移量。 |
73| dist | 输入 | 可选,数据分布模式,对应[LoadDist](../basic_data_structures/LoadDist.md)类型,具体模式根据是**reg_tensor单搬入模式**、**reg_tensor双搬入模式**还是**mask_reg模式**请分别参见[约束说明](#约束说明)中各表。 |73| dist | 输入 | 可选,数据分布模式,对应[LoadDist](../basic_data_structures/LoadDist.md)类型,具体模式根据是**reg_tensor单搬入模式**、**reg_tensor双搬入模式**还是**mask_reg模式**请分别参见[约束说明](#约束说明)中各表。 |
74| dtype | 输入 | 可选,指定目标[reg_tensor](../basic_data_structures/reg_tensor.md)或者[mask_reg](../basic_data_structures/mask_reg.md)的数据类型。当源Tile的数据类型与期望的寄存器数据类型不一致时需要指定(例如源Tile为DT_FP32但需要按DT_UINT32位重解释加载到寄存器)。默认从源Tile的数据类型推断。 |74| dtype | 输入 | 可选,指定目标[reg_tensor](../basic_data_structures/reg_tensor.md)或者[mask_reg](../basic_data_structures/mask_reg.md)的数据类型。当源Tile的数据类型与期望的寄存器数据类型不一致时需要指定(例如源Tile为DT_FP32但需要按DT_UINT32位重解释加载到寄存器)。默认从源Tile的数据类型推断。 |
75| post_update | 输入 | 可选,True时搬运后源地址自动累进,默认False。适用于循环内连续加载,避免手动更新offset。 |75| post_update | 输入 | 可选,True时搬运后源地址自动累进,默认False。适用于循环内连续加载,避免手动更新offset。 |
Mdocs/zh/api/pro_api/SIMD-API/Reg-API/data_movement/load_unalign.md+1-1文件内容审核中,请稍后刷新重试
Mdocs/zh/api/pro_api/SIMD-API/Reg-API/data_movement/load_unalign_pre.md+1-1文件内容审核中,请稍后刷新重试
@@ -42,7 +42,7 @@
42## 函数原型42## 函数原型
43 43 
44```python44```python
45-mem_bar(mode: Optional[MemBarMode] = None)45+mem_bar(*, mode: Optional[MemBarMode] = None)
46```46```
47 47 
48## 参数说明48## 参数说明
@@ -24,7 +24,7 @@
24## 函数原型24## 函数原型
25 25 
26```python26```python
27-move(src, preg, mode: Optional[MergeMode] = None) -> dst27+move(src, preg=None, /, *, mode: Optional[MergeMode] = None) -> dst
28```28```
29 29 
30## 参数说明30## 参数说明
@@ -23,7 +23,7 @@
23## 函数原型23## 函数原型
24 24 
25```python25```python
26-scatter(tile, src, index, preg)26+scatter(tile, src, index, preg, /)
27```27```
28 28 
29## 参数说明29## 参数说明
@@ -23,7 +23,7 @@
23## 函数原型23## 函数原型
24 24 
25```python25```python
26-squeeze_store_unalign(tile, src, align_reg)26+squeeze_store_unalign(tile, src, align_reg, /)
27```27```
28 28 
29## 参数说明29## 参数说明
Mdocs/zh/api/pro_api/SIMD-API/Reg-API/data_movement/store.md+1-1文件内容审核中,请稍后刷新重试
Mdocs/zh/api/pro_api/SIMD-API/Reg-API/data_movement/store_align.md+2-2文件内容审核中,请稍后刷新重试
Mdocs/zh/api/pro_api/SIMD-API/Reg-API/data_movement/store_unalign.md+1-1文件内容审核中,请稍后刷新重试
Mdocs/zh/api/pro_api/SIMD-API/Reg-API/data_movement/store_unalign_post.md+1-1文件内容审核中,请稍后刷新重试
Mdocs/zh/api/pro_api/SIMD-API/Reg-API/logical_computation/and_.md+1-1文件内容审核中,请稍后刷新重试
Mdocs/zh/api/pro_api/SIMD-API/Reg-API/logical_computation/not_.md+1-1文件内容审核中,请稍后刷新重试
Mdocs/zh/api/pro_api/SIMD-API/Reg-API/logical_computation/or_.md+1-1文件内容审核中,请稍后刷新重试
@@ -34,7 +34,7 @@ $$
34## 函数原型34## 函数原型
35 35 
36```python36```python
37-shift_left(src, shift, preg, mode: Optional[MergeMode] = None) -> dst37+shift_left(src, shift, preg, /, *, mode: Optional[MergeMode] = None) -> dst
38```38```
39 39 
40## 参数说明40## 参数说明
Mdocs/zh/api/pro_api/SIMD-API/Reg-API/logical_computation/shift_right.md+1-1文件内容审核中,请稍后刷新重试
@@ -19,7 +19,7 @@
19## 函数原型19## 函数原型
20 20 
21```python21```python
22-xor(src0, src1, preg, mode: Optional[MergeMode] = None) -> dst22+xor(src0, src1, preg, /, *, mode: Optional[MergeMode] = None) -> dst
23```23```
24 24 
25## 参数说明25## 参数说明
Mdocs/zh/api/pro_api/SIMD-API/Reg-API/mask_operations/create_mask.md+1-1文件内容审核中,请稍后刷新重试
@@ -23,7 +23,7 @@
23## 函数原型23## 函数原型
24 24 
25```python25```python
26-update_mask(scalar, dtype: Optional[DType] = None) -> preg26+update_mask(scalar, /, *, dtype: Optional[DType] = None) -> preg
27```27```
28 28 
29## 参数说明29## 参数说明
Mdocs/zh/api/pro_api/SIMD-API/Reg-API/reduction/pair_reduce_sum.md+1-1文件内容审核中,请稍后刷新重试
@@ -25,7 +25,7 @@ reg_tensor最大值归约:将源寄存器src中的所有有效元素(preg选
25## 函数原型25## 函数原型
26 26 
27```python27```python
28-reduce_max(src, preg, datablock: bool = False, merge_mode: Optional[MergeMode] = None)28+reduce_max(src, preg, /, *, datablock: bool = False, merge_mode: Optional[MergeMode] = None)
29```29```
30 30 
31## 参数说明31## 参数说明
Mdocs/zh/api/pro_api/SIMD-API/Reg-API/reduction/reduce_min.md+1-1文件内容审核中,请稍后刷新重试
@@ -27,7 +27,7 @@ reg_tensor求和归约:将源寄存器src中的所有有效元素(preg选中
27## 函数原型27## 函数原型
28 28 
29```python29```python
30-reduce_sum(src, preg, datablock: bool = False, merge_mode: Optional[MergeMode] = None)30+reduce_sum(src, preg, /, *, datablock: bool = False, merge_mode: Optional[MergeMode] = None)
31```31```
32 32 
33## 参数说明33## 参数说明
@@ -22,7 +22,7 @@
22## 函数原型22## 函数原型
23 23 
24```python24```python
25-arange(start, dtype: DType, index_order: Optional[IndexOrder] = None) -> dst25+arange(start, dtype: DType, *, index_order: Optional[IndexOrder] = None) -> dst
26```26```
27 27 
28## 参数说明28## 参数说明
@@ -35,7 +35,7 @@
35## 函数原型35## 函数原型
36 36 
37```python37```python
38-histograms(src, preg, bin_type: Optional[BinType] = None, hist_type: Optional[HistType] = None)38+histograms(src, preg, /, *, bin_type: Optional[BinType] = None, hist_type: Optional[HistType] = None)
39```39```
40 40 
41## 参数说明41## 参数说明
Mdocs/zh/api/pro_api/SIMD-API/Reg-API/type_conversion/astype.md+1-1文件内容审核中,请稍后刷新重试
Mdocs/zh/api/pro_api/SIMD-API/Reg-API/type_conversion/bit_cast.md+1-1文件内容审核中,请稍后刷新重试
Mdocs/zh/api/pro_api/SIMD-API/Reg-API/type_conversion/truncate.md+1-1文件内容审核中,请稍后刷新重试
@@ -39,7 +39,7 @@ pypto_pro.language.Tensor.__init__(
39 39 
40| 参数 | 输入/输出 | 说明 |40| 参数 | 输入/输出 | 说明 |
41|---|---|---|41|---|---|---|
42-| shape | 输入 | 各维大小列表。<br>- 表现形式如下:<br>&nbsp;&nbsp;- 固定维度:正整数表示,如[64, 128],调用时对应维度须等于该整数。<br>&nbsp;&nbsp;- 动态维度:pypto_pro.language.DYNAMIC表示,调用时读取实际维度,维度值不参与编译缓存键,不同取值复用同一编译变体。<br>&nbsp;&nbsp;- 编译期特化维度:pypto_pro.language.STATIC表示,调用时读取实际维度,维度值固化到当前编译变体,取值变化时生成新的编译变体。<br>&nbsp;&nbsp;- 末尾...:展开剩余维度,各维均按pypto_pro.language.STATIC处理。<br>&nbsp;&nbsp;- 不同策略可混用,如[64, pl.DYNAMIC, pl.STATIC]。<br>- Kernel内可通过tensor.shape[i]读取对应维度,返回值类型为DT_INT64。 |42+| shape | 输入 | 各维大小序列(列表或元组)。<br>- 表现形式如下:<br>&nbsp;&nbsp;- 固定维度:正整数表示,如[64, 128],调用时对应维度须等于该整数。<br>&nbsp;&nbsp;- 动态维度:pypto_pro.language.DYNAMIC表示,调用时读取实际维度,维度值不参与编译缓存键,不同取值复用同一编译变体。<br>&nbsp;&nbsp;- 编译期特化维度:pypto_pro.language.STATIC表示,调用时读取实际维度,维度值固化到当前编译变体,取值变化时生成新的编译变体。<br>&nbsp;&nbsp;- 末尾...:展开剩余维度,各维均按pypto_pro.language.STATIC处理。<br>&nbsp;&nbsp;- 不同策略可混用,如[64, pl.DYNAMIC, pl.STATIC]。<br>- Kernel内可通过tensor.shape[i]读取对应维度,返回值类型为DT_INT64。 |
43| dtype | 输入 | 元素数据类型,[pypto_pro.language.DataType](DataType.md)枚举值。 |43| dtype | 输入 | 元素数据类型,[pypto_pro.language.DataType](DataType.md)枚举值。 |
44| expr | 输入 | 可选,框架内部使用的IR表达式,用于构造与底层Expr关联的运行时Tensor对象。不能与shape或dtype同时配置,用户无需设置。 |44| expr | 输入 | 可选,框架内部使用的IR表达式,用于构造与底层Expr关联的运行时Tensor对象。不能与shape或dtype同时配置,用户无需设置。 |
45| layout | 输入 | 可选,内存布局,[pypto_pro.language.TensorLayout](TensorLayout.md)枚举值。<br>- 支持ND和NZ,不指定时按ND处理。<br>- 配置为NZ时只声明布局,不执行ND→NZ转换。 |45| layout | 输入 | 可选,内存布局,[pypto_pro.language.TensorLayout](TensorLayout.md)枚举值。<br>- 支持ND和NZ,不指定时按ND处理。<br>- 配置为NZ时只声明布局,不执行ND→NZ转换。 |
@@ -38,10 +38,10 @@ pypto_pro.language.TileType(
38 38 
39| 参数 | 输入/输出 | 说明 |39| 参数 | 输入/输出 | 说明 |
40|---|---|---|40|---|---|---|
41-| shape | 输入 | Tile各维大小,如[64, 128]。长度为2的编译期常量整数列表,各维大小须为正整数;仅支持二维Tile。对齐及分形布局约束由使用该TileType的具体API检查。 |41+| shape | 输入 | Tile各维大小,如[64, 128]。长度为2的编译期常量整数序列(列表或元组),各维大小须为正整数;仅支持二维Tile。对齐及分形布局约束由使用该TileType的具体API检查。 |
42| dtype | 输入 | 元素的数据类型,[pypto_pro.language.DataType](DataType.md)类型。 |42| dtype | 输入 | 元素的数据类型,[pypto_pro.language.DataType](DataType.md)类型。 |
43| target_memory | 输入 | 目标内存空间,[pypto_pro.language.MemorySpace](MemorySpace.md)枚举值,默认为UB。 |43| target_memory | 输入 | 目标内存空间,[pypto_pro.language.MemorySpace](MemorySpace.md)枚举值,默认为UB。 |
44-| valid_shape | 输入 | 可选,有效形状(处理尾块/非满块场景)。编译期常量整数列表或None(默认)。<br>- 具体整数(如[32, 64]):编译期确定有效形状。<br>- None(默认):等同于[-1, -1](动态模式)。<br>- [-1, -1]:运行时动态设置有效形状,配合pypto_pro.language.set_validshape使用。 |44+| valid_shape | 输入 | 可选,有效形状(处理尾块/非满块场景)。编译期常量整数序列(列表或元组)或None(默认)。<br>- 具体整数(如[32, 64]):编译期确定有效形状。<br>- None(默认):等同于[-1, -1](动态模式)。<br>- [-1, -1]:运行时动态设置有效形状,配合pypto_pro.language.set_validshape使用。 |
45| layout | 输入 | 可选,排布方式,[pypto_pro.language.TensorLayout](TensorLayout.md)枚举值或None(默认)。不指定时按内存空间取默认值(详见[约束说明](#约束说明))。L1 Buffer未指定layout时使用NZ,也可以显式指定ZN;数据类型为DT_UINT64或DT_INT64时,还可以显式指定ND。BiasTable Buffer默认且仅支持ND;L0A_MX Buffer仅支持ZZ,L0B_MX Buffer仅支持NN;UB的可用布局由具体Tile API约束。 |45| layout | 输入 | 可选,排布方式,[pypto_pro.language.TensorLayout](TensorLayout.md)枚举值或None(默认)。不指定时按内存空间取默认值(详见[约束说明](#约束说明))。L1 Buffer未指定layout时使用NZ,也可以显式指定ZN;数据类型为DT_UINT64或DT_INT64时,还可以显式指定ND。BiasTable Buffer默认且仅支持ND;L0A_MX Buffer仅支持ZZ,L0B_MX Buffer仅支持NN;UB的可用布局由具体Tile API约束。 |
46| fractal | 输入 | 可选,分形大小,整数或None(默认)。L0C Buffer中的FP32/INT32 Tile在未指定时自动设为1024;L1 Buffer中layout为ZZ或NN的DT_FP8E8M0 Tile及L0A_MX Buffer/L0B_MX Buffer中的Tile默认且仅支持fractal=32;其他取值要求由具体Tile API决定。 |46| fractal | 输入 | 可选,分形大小,整数或None(默认)。L0C Buffer中的FP32/INT32 Tile在未指定时自动设为1024;L1 Buffer中layout为ZZ或NN的DT_FP8E8M0 Tile及L0A_MX Buffer/L0B_MX Buffer中的Tile默认且仅支持fractal=32;其他取值要求由具体Tile API决定。 |
47| pad | 输入 | 可选,填充模式,支持[pypto_pro.language.TilePad](TilePad.md)类型或int类型。当为int类型时取值范围为[0, 3]:<br>- 0:不填充。<br>- 1:补零。<br>- 2:补最大值。<br>- 3:补最小值。<br>非法值报ValueError,非法类型报TypeError。 |47| pad | 输入 | 可选,填充模式,支持[pypto_pro.language.TilePad](TilePad.md)类型或int类型。当为int类型时取值范围为[0, 3]:<br>- 0:不填充。<br>- 1:补零。<br>- 2:补最大值。<br>- 3:补最小值。<br>非法值报ValueError,非法类型报TypeError。 |
Mdocs/zh/api/pro_api/SIMD-API/cache_control/dcci.md+1-1文件内容审核中,请稍后刷新重试
Mdocs/zh/api/pro_api/SIMD-API/controlflow/range.md+3-3文件内容审核中,请稍后刷新重试
@@ -26,7 +26,7 @@ pypto_pro.language.init_output(
26 *,26 *,
27 offset: int = 0,27 offset: int = 0,
28 size: int,28 size: int,
29- value: Union[int, float, Scalar] = 0,29+ value: Union[int, float] = 0,
30) -> None30) -> None
31```31```
32 32 
@@ -35,9 +35,9 @@ pypto_pro.language.init_output(
35| 参数 | 输入/输出 | 说明 |35| 参数 | 输入/输出 | 说明 |
36|---|---|---|36|---|---|---|
37| tensor | 输出 | 目的操作数,Tensor类型,存储空间为GM。支持的数据类型为DT_UINT8、DT_INT8、DT_UINT16、DT_INT16、DT_BF16、DT_FP16、DT_UINT32、DT_INT32、DT_FP32、DT_UINT64、DT_INT64;layout支持ND、NZ,offset和size按Tensor的物理元素计数,layout不影响填充语义。 |37| tensor | 输出 | 目的操作数,Tensor类型,存储空间为GM。支持的数据类型为DT_UINT8、DT_INT8、DT_UINT16、DT_INT16、DT_BF16、DT_FP16、DT_UINT32、DT_INT32、DT_FP32、DT_UINT64、DT_INT64;layout支持ND、NZ,offset和size按Tensor的物理元素计数,layout不影响填充语义。 |
38-| offset | 输入 | 可选,元素级偏移,int或Scalar类型,表示从Tensor起始地址开始的偏移量,单位为元素个数,默认`0`。<br>- 非负整数,不支持浮点。<br>- 与size之和不得超过Tensor总元素数。<br>- 支持传入运行时标量(如循环变量、shape表达式)。 |38+| offset | 输入 | 可选,元素级偏移,整型常量或运行时整型标量表达式,表示从Tensor起始地址开始的偏移量,单位为元素个数,默认`0`。<br>- 非负整数,不支持浮点。<br>- 与size之和不得超过Tensor总元素数。<br>- 支持传入运行时标量(如循环变量、shape表达式)。 |
39-| size | 输入 | 待初始化的元素个数,int或Scalar类型,单位为元素个数。<br>- 正整数,不支持浮点。<br>- 支持传入运行时标量。 |39+| size | 输入 | 待初始化的元素个数,整型常量或运行时整型标量表达式,单位为元素个数。<br>- 正整数,不支持浮点。<br>- 支持传入运行时标量。 |
40-| value | 输入 | 可选,填充值,int、float或Scalar类型,默认`0`。<br>- 支持整型或浮点型常量(如`0`、`0.0`)、[pypto_pro.language.const](../../Utils-API/python_syntax_sugar/const.md)构造的标量,以及运行时标量表达式。<br>- 类型须与tensor元素类型兼容;整型字面量须能被tensor的数据类型表示。 |40+| value | 输入 | 可选,填充值,整型或浮点型常量,或相应类型的运行时标量表达式,默认`0`。<br>- 支持整型或浮点型常量(如`0`、`0.0`)、[pypto_pro.language.const](../../Utils-API/python_syntax_sugar/const.md)构造的标量,以及运行时标量表达式。<br>- 类型须与tensor元素类型兼容;整型字面量须能被tensor的数据类型表示。 |
41 41 
42## 约束说明42## 约束说明
43 43 
@@ -23,10 +23,10 @@ pypto_pro.language.insert(
23 dst_tile: Tile,23 dst_tile: Tile,
24 src_tile: Tile,24 src_tile: Tile,
25 /,25 /,
26- offset: List[int],26+ offset: Sequence[int],
27 *,27 *,
28 relu_pre_mode: Optional[ReluPreMode] = None,28 relu_pre_mode: Optional[ReluPreMode] = None,
29- scale: Optional[Union[float, Scalar, Tile]] = None,29+ scale: Optional[Union[int, float, Tile]] = None,
30 phase: Optional[STPhase] = None,30 phase: Optional[STPhase] = None,
31) -> None31) -> None
32```32```
@@ -37,9 +37,9 @@ pypto_pro.language.insert(
37|---|---|---|37|---|---|---|
38| dst_tile | 输出 | 目的操作数,Tile类型;L0C Buffer → L1 Buffer路径必须使用NZ布局,首地址必须32字节对齐。支持的数据类型和分形组合详见[约束说明](#约束说明)。 |38| dst_tile | 输出 | 目的操作数,Tile类型;L0C Buffer → L1 Buffer路径必须使用NZ布局,首地址必须32字节对齐。支持的数据类型和分形组合详见[约束说明](#约束说明)。 |
39| src_tile | 输入 | 源操作数,Tile类型,支持的数据类型和分形组合详见[约束说明](#约束说明)。 |39| src_tile | 输入 | 源操作数,Tile类型,支持的数据类型和分形组合详见[约束说明](#约束说明)。 |
40-| offset | 输入 | 位置偏移,List[int]类型,长度必须为2,格式为[row, col],单位为元素个数。源Tile的左上角对齐到目标Tile的offset位置;row和col必须是非负整数或运行时整数表达式,并满足row + src行数 ≤ dst行数、col + src列数 ≤ dst列数。 |40+| offset | 输入 | 位置偏移,整数序列(列表或元组),长度必须为2,格式为[row, col],单位为元素个数。源Tile的左上角对齐到目标Tile的offset位置;row和col必须是非负整数或运行时整数表达式,并满足row + src行数 ≤ dst行数、col + src列数 ≤ dst列数。 |
41| relu_pre_mode | 输入 | 可选;L0C Buffer → L1 Buffer搬运时是否开启随路ReLU操作,[pypto_pro.language.ReluPreMode](../basic_data_structures/ReluPreMode.md)类型。其他路径不支持。 |41| relu_pre_mode | 输入 | 可选;L0C Buffer → L1 Buffer搬运时是否开启随路ReLU操作,[pypto_pro.language.ReluPreMode](../basic_data_structures/ReluPreMode.md)类型。其他路径不支持。 |
42-| scale | 输入 | 可选,仅用于L0C Buffer → L1 Buffer搬运,设置随路量化参数。数据在搬出L0C Buffer时由Fixpipe乘以该比例并转换到目的数据类型。不同的传入形式会影响量化粒度,支持如下类型:<br>- **float类型**:直接传入固定值(如scale = 2.0),适用于整块Tile使用同一比例。<br>- **Scalar类型**:量化比例在运行时确定,需按数据类型传值。<br>&nbsp;&nbsp;- DT_FP32:直接传原始比例值(如0.5)。<br>&nbsp;&nbsp;- DT_INT32、DT_INT64:传预编码的float32位模式转成的整数(如struct.pack("!f", 0.5))。<br>- **Tile类型**:每列使用独立比例,需满足以下要求:<br>&nbsp;&nbsp;- 目标存储区域必须为Fixpipe Buffer。<br>&nbsp;&nbsp;- shape为[1, N](列量化),N必须是16的倍数且N ≤ 512。<br>&nbsp;&nbsp;- dtype为DT_INT64。<br>&nbsp;&nbsp;- 目的操作数的Tile数据类型为DT_INT8时,Fixpipe Buffer中的Tile每个DT_INT64元素的bit46需置1,用于选择有符号量化;未置位时L0C Buffer中的负值会被按无符号解读。<br>&nbsp;&nbsp;- 用户需要先把比例数据从GM搬到L1 Buffer,再搬到Fixpipe Buffer,并完成MTE1→FIX同步。 |42+| scale | 输入 | 可选,仅用于L0C Buffer → L1 Buffer搬运,设置随路量化参数。数据在搬出L0C Buffer时由Fixpipe乘以该比例并转换到目的数据类型。不同的传入形式会影响量化粒度,支持如下类型:<br>- **整型或浮点型常量**:先按数值转换为浮点值,再编码为FP32位模式(如scale = 2与scale = 2.0的编码结果相同),适用于整块Tile使用同一比例。<br>- **运行时标量表达式**:量化比例在运行时确定,需按数据类型传值。<br>&nbsp;&nbsp;- DT_FP32:直接传原始比例值(如0.5)。<br>&nbsp;&nbsp;- DT_INT32、DT_INT64:传预编码的float32位模式转成的整数(如0.5对应的位模式整数0x3F000000)。<br>- **Tile类型**:每列使用独立比例,需满足以下要求:<br>&nbsp;&nbsp;- 目标存储区域必须为Fixpipe Buffer。<br>&nbsp;&nbsp;- shape为[1, N](列量化),N必须是16的倍数且N ≤ 512。<br>&nbsp;&nbsp;- dtype为DT_INT64。<br>&nbsp;&nbsp;- 目的操作数的Tile数据类型为DT_INT8时,Fixpipe Buffer中的Tile每个DT_INT64元素的bit46需置1,用于选择有符号量化;未置位时L0C Buffer中的负值会被按无符号解读。<br>&nbsp;&nbsp;- 用户需要先把比例数据从GM搬到L1 Buffer,再搬到Fixpipe Buffer,并完成MTE1→FIX同步。 |
lyz0328
lyz0328lyz032817 天前

scale类型为整型或浮点型常量,和函数原型不符 scale: Optional[Union[float, Scalar, Tile]]

likedislike
43| phase | 输入 | 可选,L0C Buffer → L1 Buffer搬运时是否启用unit_flag同步,详见[Cube计算进阶](../../../../guide/programming_guide/pro/advanced_programming/cube_computation_advanced_usage.md)。 |43| phase | 输入 | 可选,L0C Buffer → L1 Buffer搬运时是否启用unit_flag同步,详见[Cube计算进阶](../../../../guide/programming_guide/pro/advanced_programming/cube_computation_advanced_usage.md)。 |
44 44 
45## 约束说明45## 约束说明
Mdocs/zh/api/pro_api/SIMD-API/memory_data_movement/load.md+2-2文件内容审核中,请稍后刷新重试
Mdocs/zh/api/pro_api/SIMD-API/memory_data_movement/load_tile.md+2-2文件内容审核中,请稍后刷新重试
@@ -23,11 +23,11 @@ pypto_pro.language.move(
23 dst_tile: Tile,23 dst_tile: Tile,
24 src_tile: Tile,24 src_tile: Tile,
25 /,25 /,
26- offset: Optional[Offset] = None,26+ offset: Optional[Sequence[int]] = None,
27 *,27 *,
28 acc_to_vec_mode: Optional[AccToVecMode] = None,28 acc_to_vec_mode: Optional[AccToVecMode] = None,
29 relu_pre_mode: Optional[ReluPreMode] = None,29 relu_pre_mode: Optional[ReluPreMode] = None,
30- scale: Optional[Union[float, Scalar, Tile]] = None,30+ scale: Optional[Union[int, float, Tile]] = None,
31 phase: Optional[STPhase] = None,31 phase: Optional[STPhase] = None,
32) -> None32) -> None
33```33```
@@ -38,10 +38,10 @@ pypto_pro.language.move(
38|---|---|---|38|---|---|---|
39| dst_tile | 输出 | 目的操作数,Tile类型,支持的数据类型与分形详见[约束说明](#约束说明)。 |39| dst_tile | 输出 | 目的操作数,Tile类型,支持的数据类型与分形详见[约束说明](#约束说明)。 |
40| src_tile | 输入 | 源操作数,Tile类型,支持的数据类型与分形详见[约束说明](#约束说明)。 |40| src_tile | 输入 | 源操作数,Tile类型,支持的数据类型与分形详见[约束说明](#约束说明)。 |
41-| offset | 输入 | 可选,表示小Tile在大Tile中的相对位置,格式为[offset_m, offset_n],单位为元素个数。<br>- 当源操作数的shape >= 目的操作数的shape时,表示从源操作数的第offset_m行offset_n列开始读,数据的搬运量取自目的操作数的valid_shape。<br>- 当源操作数的shape < 目的操作数的shape时,表示从目的操作数的第offset_m行offset_n列开始写,数据的搬运量取自源操作数的valid_shape。 |41+| offset | 输入 | 可选,以列表或元组传入,表示小Tile在大Tile中的相对位置,长度为2,格式为[offset_m, offset_n],两项均可为整型常量或运行时整型标量表达式,单位为元素个数。<br>- 当源操作数的shape >= 目的操作数的shape时,表示从源操作数的第offset_m行offset_n列开始读,数据的搬运量取自目的操作数的valid_shape。<br>- 当源操作数的shape < 目的操作数的shape时,表示从目的操作数的第offset_m行offset_n列开始写,数据的搬运量取自源操作数的valid_shape。 |
42| acc_to_vec_mode | 输入 | 可选,L0C Buffer→UB搬运时的数据分发模式,[pypto_pro.language.AccToVecMode](../basic_data_structures/AccToVecMode.md)类型,默认值为`None`。<br>- 不配置或配置为`None`时,仅将数据搬运至Vec0,不搬运至Vec1。<br>- DualModeSplitN与phase同时使用时,若N未32对齐,可能出现卡死现象。可以在矩阵乘运算前对L0B Buffer的N设置valid shape,使其向上对齐到32的倍数。 |42| acc_to_vec_mode | 输入 | 可选,L0C Buffer→UB搬运时的数据分发模式,[pypto_pro.language.AccToVecMode](../basic_data_structures/AccToVecMode.md)类型,默认值为`None`。<br>- 不配置或配置为`None`时,仅将数据搬运至Vec0,不搬运至Vec1。<br>- DualModeSplitN与phase同时使用时,若N未32对齐,可能出现卡死现象。可以在矩阵乘运算前对L0B Buffer的N设置valid shape,使其向上对齐到32的倍数。 |
43| relu_pre_mode | 输入 | 可选,L0C Buffer→UB或L1 Buffer搬运时是否开启随路ReLU操作,[pypto_pro.language.ReluPreMode](../basic_data_structures/ReluPreMode.md)类型。 |43| relu_pre_mode | 输入 | 可选,L0C Buffer→UB或L1 Buffer搬运时是否开启随路ReLU操作,[pypto_pro.language.ReluPreMode](../basic_data_structures/ReluPreMode.md)类型。 |
44-| scale | 输入 | 可选,是否使能量化功能及设置量化模式下的量化参数,数据在搬出L0C Buffer时由Fixpipe乘以该比例并转换到目的数据类型。不支持与双目标搬运(AccToVecMode.DualModeSplitM / AccToVecMode.DualModeSplitN)同时使用。不同的传入形式会影响量化粒度,支持如下类型:<br>- **float类型**:直接传入固定值(如scale = 2.0),适用于整块Tile使用同一比例。<br>- **Scalar类型**:量化比例在运行时确定,需按数据类型传值。<br>&nbsp;&nbsp;- DT_FP32:直接传原始比例值(如0.5)。<br>&nbsp;&nbsp;- DT_INT32、DT_INT64:传预编码的float32位模式转成的整数(如struct.pack("!f", 0.5))。<br>- **Tile类型**:每列使用独立比例,需满足以下要求:<br>&nbsp;&nbsp;- 目标存储区域必须为Fixpipe Buffer。<br>&nbsp;&nbsp;- shape为[1, N](列量化),N必须是16的倍数且N ≤ 512。<br>&nbsp;&nbsp;- dtype为DT_INT64。<br>&nbsp;&nbsp;- 目的操作数的Tile数据类型为DT_INT8时,Fixpipe Buffer中的Tile每个DT_INT64元素的bit46需置1,用于选择有符号量化;未置位时L0C Buffer中的负值会被按无符号解读。<br>&nbsp;&nbsp;- 用户需要先把比例数据从GM搬到L1 Buffer,再搬到Fixpipe Buffer,并完成MTE1→FIX同步。|44+| scale | 输入 | 可选,是否使能量化功能及设置量化模式下的量化参数,数据在搬出L0C Buffer时由Fixpipe乘以该比例并转换到目的数据类型。不支持与双目标搬运(AccToVecMode.DualModeSplitM / AccToVecMode.DualModeSplitN)同时使用。不同的传入形式会影响量化粒度,支持如下类型:<br>- **整型或浮点型常量**:先按数值转换为浮点值,再编码为FP32位模式(如scale = 2与scale = 2.0的编码结果相同),适用于整块Tile使用同一比例。<br>- **运行时标量表达式**:量化比例在运行时确定,需按数据类型传值。<br>&nbsp;&nbsp;- DT_FP32:直接传原始比例值(如0.5)。<br>&nbsp;&nbsp;- DT_INT32、DT_INT64:传预编码的float32位模式转成的整数(如0.5对应的位模式整数0x3F000000)。<br>- **Tile类型**:每列使用独立比例,需满足以下要求:<br>&nbsp;&nbsp;- 目标存储区域必须为Fixpipe Buffer。<br>&nbsp;&nbsp;- shape为[1, N](列量化),N必须是16的倍数且N ≤ 512。<br>&nbsp;&nbsp;- dtype为DT_INT64。<br>&nbsp;&nbsp;- 目的操作数的Tile数据类型为DT_INT8时,Fixpipe Buffer中的Tile每个DT_INT64元素的bit46需置1,用于选择有符号量化;未置位时L0C Buffer中的负值会被按无符号解读。<br>&nbsp;&nbsp;- 用户需要先把比例数据从GM搬到L1 Buffer,再搬到Fixpipe Buffer,并完成MTE1→FIX同步。|
45| phase | 输入 | 可选,L0C Buffer搬运时是否启用unit_flag同步,详见[Cube计算进阶](../../../../guide/programming_guide/pro/advanced_programming/cube_computation_advanced_usage.md)。 |45| phase | 输入 | 可选,L0C Buffer搬运时是否启用unit_flag同步,详见[Cube计算进阶](../../../../guide/programming_guide/pro/advanced_programming/cube_computation_advanced_usage.md)。 |
46 46 
47## 约束说明47## 约束说明
@@ -23,10 +23,10 @@ pypto_pro.language.store(
23 dst_tensor: Tensor,23 dst_tensor: Tensor,
24 src_tile: Tile,24 src_tile: Tile,
25 /,25 /,
26- offsets: Offset,26+ offsets: Sequence[int],
27 *,27 *,
28 relu_pre_mode: Optional[ReluPreMode] = None,28 relu_pre_mode: Optional[ReluPreMode] = None,
29- scale: Optional[Union[float, Scalar, Tile]] = None,29+ scale: Optional[Union[int, float, Tile]] = None,
30 order: Optional[List[int]] = None,30 order: Optional[List[int]] = None,
31 atomic: AtomicType = AtomicType.AtomicNone,31 atomic: AtomicType = AtomicType.AtomicNone,
32 phase: Optional[STPhase] = None,32 phase: Optional[STPhase] = None,
@@ -39,9 +39,9 @@ pypto_pro.language.store(
39|---|---|---|39|---|---|---|
40| dst_tensor | 输出 | 目的操作数,Tensor类型,存储空间为GM。支持的数据类型和分形组合详见[约束说明](#约束说明)。 |40| dst_tensor | 输出 | 目的操作数,Tensor类型,存储空间为GM。支持的数据类型和分形组合详见[约束说明](#约束说明)。 |
41| src_tile | 输入 | 源操作数,Tile类型,存储空间为UB或L0C Buffer。<br>- UB Tile的首地址须按32字节对齐;<br>- L0C Buffer Tile的首地址须按64字节对齐。 |41| src_tile | 输入 | 源操作数,Tile类型,存储空间为UB或L0C Buffer。<br>- UB Tile的首地址须按32字节对齐;<br>- L0C Buffer Tile的首地址须按64字节对齐。 |
42-| offsets | 输入 | 可选,表示目的Tensor各维度的绝对元素坐标,List[int或Scalar]类型,长度须与目的Tensor的维数相同。<br>- 不支持负数。<br>- 对于高维NZ Tensor,最后两项对应M、N方向。 |42+| offsets | 输入 | 表示目的Tensor各维度的绝对元素坐标,整数序列(列表或元组),每项可为整型常量或运行时整型标量表达式,长度须与目的Tensor的维数相同。<br>- 不支持负数。<br>- 对于高维NZ Tensor,最后两项对应M、N方向。 |
43| relu_pre_mode | 输入 | 可选,L0C Buffer→GM搬运时是否开启随路ReLU操作,[pypto_pro.language.ReluPreMode](../basic_data_structures/ReluPreMode.md)类型。 |43| relu_pre_mode | 输入 | 可选,L0C Buffer→GM搬运时是否开启随路ReLU操作,[pypto_pro.language.ReluPreMode](../basic_data_structures/ReluPreMode.md)类型。 |
44-| scale | 输入 | 可选,是否使能量化功能及设置量化模式下的量化参数,数据在搬出L0C时由Fixpipe乘以该比例并转换到目的数据类型。不同的传入形式会影响量化粒度,支持如下类型:<br>- **float类型**:直接传入固定值(如scale = 2.0),适用于整块tile使用同一比例。<br>- **Scalar类型**:量化比例在运行时确定,需按数据类型传值。<br>&nbsp;&nbsp;- DT_FP32:直接传原始比例值(如0.5)。<br>&nbsp;&nbsp;- DT_INT32、DT_INT64:传预编码的float32位模式转成的整数(如`struct.pack("!f", 0.5)`)。<br>- **Tile类型**:每列使用独立比例,需满足以下要求:<br>&nbsp;&nbsp;- target_memory必须为pl.MemorySpace.Scaling。<br>&nbsp;&nbsp;- shape为[1, N](列量化),N必须是16的倍数且N ≤ 512。<br>&nbsp;&nbsp;- dtype为DT_INT64。<br>&nbsp;&nbsp;- 目的操作数的Tile数据类型为DT_INT8时,Scaling tile每个DT_INT64元素的bit46需置1,用于选择有符号量化;未置位时L0C Buffer中的负值会被按无符号解读。<br>&nbsp;&nbsp;- 用户需要先把比例数据从GM搬到L1 Buffer,再搬到Scaling,并完成MTE1→FIX同步。<br>&nbsp;&nbsp;- 不支持与atomic同时使用。 |44+| scale | 输入 | 可选,是否使能量化功能及设置量化模式下的量化参数,数据在搬出L0C时由Fixpipe乘以该比例并转换到目的数据类型。不同的传入形式会影响量化粒度,支持如下类型:<br>- **整型或浮点型常量**:先按数值转换为浮点值,再编码为FP32位模式(如scale = 2与scale = 2.0的编码结果相同),适用于整块tile使用同一比例。<br>- **运行时标量表达式**:量化比例在运行时确定,需按数据类型传值。<br>&nbsp;&nbsp;- DT_FP32:直接传原始比例值(如0.5)。<br>&nbsp;&nbsp;- DT_INT32、DT_INT64:传预编码的float32位模式转成的整数(如0.5对应的位模式整数0x3F000000)。<br>- **Tile类型**:每列使用独立比例,需满足以下要求:<br>&nbsp;&nbsp;- target_memory必须为pl.MemorySpace.Scaling。<br>&nbsp;&nbsp;- shape为[1, N](列量化),N必须是16的倍数且N ≤ 512。<br>&nbsp;&nbsp;- dtype为DT_INT64。<br>&nbsp;&nbsp;- 目的操作数的Tile数据类型为DT_INT8时,Scaling tile每个DT_INT64元素的bit46需置1,用于选择有符号量化;未置位时L0C Buffer中的负值会被按无符号解读。<br>&nbsp;&nbsp;- 用户需要先把比例数据从GM搬到L1 Buffer,再搬到Scaling,并完成MTE1→FIX同步。<br>&nbsp;&nbsp;- 不支持与atomic同时使用。 |
45| order | 输入 | 可选,维度映射,List[int]类型,指定源Tile各维度对应的目标Tensor维度。<br>- 各维度编号必须在目标Tensor的维度范围内、不能重复。<br>- 仅支持按升序排列。<br>- 省略时对应目标Tensor的最后两个维度。GM分型为NZ时,只能指定为目标Tensor的最后两个维度。<br>- 当Tensor为1维时,不支持传入order参数。 |45| order | 输入 | 可选,维度映射,List[int]类型,指定源Tile各维度对应的目标Tensor维度。<br>- 各维度编号必须在目标Tensor的维度范围内、不能重复。<br>- 仅支持按升序排列。<br>- 省略时对应目标Tensor的最后两个维度。GM分型为NZ时,只能指定为目标Tensor的最后两个维度。<br>- 当Tensor为1维时,不支持传入order参数。 |
46| atomic | 输入 | 可选,原子写模式,[pypto_pro.language.AtomicType](../basic_data_structures/AtomicType.md)类型。 |46| atomic | 输入 | 可选,原子写模式,[pypto_pro.language.AtomicType](../basic_data_structures/AtomicType.md)类型。 |
47| phase | 输入 | 可选,unitFlag机制,[pypto_pro.language.STPhase](../basic_data_structures/STPhase.md)类型。 |47| phase | 输入 | 可选,unitFlag机制,[pypto_pro.language.STPhase](../basic_data_structures/STPhase.md)类型。 |
Mdocs/zh/api/pro_api/SIMD-API/memory_data_movement/store_tile.md+4-4文件内容审核中,请稍后刷新重试
Mdocs/zh/api/pro_api/SIMD-API/resource_management/addptr.md+2-2文件内容审核中,请稍后刷新重试
Mdocs/zh/api/pro_api/SIMD-API/resource_management/make_tensor.md+4-4文件内容审核中,请稍后刷新重试
Mdocs/zh/api/pro_api/SIMD-API/resource_management/make_tile_group.md+3-3文件内容审核中,请稍后刷新重试
Mdocs/zh/api/pro_api/SIMD-API/resource_management/reinterpret.md+2-2文件内容审核中,请稍后刷新重试
Mdocs/zh/api/pro_api/SIMD-API/synchronization/mutex_lock.md+2-2文件内容审核中,请稍后刷新重试
Mdocs/zh/api/pro_api/SIMD-API/synchronization/mutex_unlock.md+2-2文件内容审核中,请稍后刷新重试
Mdocs/zh/api/pro_api/SIMD-API/synchronization/set_cross_core.md+2-2文件内容审核中,请稍后刷新重试
Mdocs/zh/api/pro_api/SIMD-API/synchronization/sync_dst.md+2-2文件内容审核中,请稍后刷新重试
Mdocs/zh/api/pro_api/SIMD-API/synchronization/sync_src.md+2-2文件内容审核中,请稍后刷新重试
Mdocs/zh/api/pro_api/SIMD-API/synchronization/wait_cross_core.md+2-2文件内容审核中,请稍后刷新重试
Mdocs/zh/api/pro_api/SIMD-API/tile_computation/composite_computation/axpy.md+2-2文件内容审核中,请稍后刷新重试
Mdocs/zh/api/pro_api/SIMD-API/tile_computation/elementwise/add.md+3-3文件内容审核中,请稍后刷新重试
Mdocs/zh/api/pro_api/SIMD-API/tile_computation/elementwise/div.md+3-3文件内容审核中,请稍后刷新重试
Mdocs/zh/api/pro_api/SIMD-API/tile_computation/elementwise/maximum.md+2-2文件内容审核中,请稍后刷新重试
Mdocs/zh/api/pro_api/SIMD-API/tile_computation/elementwise/mul.md+3-3文件内容审核中,请稍后刷新重试
Mdocs/zh/api/pro_api/SIMD-API/tile_computation/elementwise/sub.md+3-3文件内容审核中,请稍后刷新重试
Mdocs/zh/api/pro_api/SIMD-API/tile_computation/math_functions/expands.md+1-1文件内容审核中,请稍后刷新重试
Mdocs/zh/api/pro_api/SIMD-API/tile_computation/math_functions/max.md+2-2文件内容审核中,请稍后刷新重试
Mdocs/zh/api/pro_api/SIMD-API/tile_computation/math_functions/min.md+2-2文件内容审核中,请稍后刷新重试
Mdocs/zh/api/pro_api/SIMD-API/transpose_and_element_access/fill_index.md+1-1文件内容审核中,请稍后刷新重试
Mdocs/zh/api/pro_api/SIMD-API/transpose_and_element_access/set_validshape.md+2-2文件内容审核中,请稍后刷新重试
Mdocs/zh/api/pro_api/SIMD-API/transpose_and_element_access/setval.md+1-1文件内容审核中,请稍后刷新重试
Mdocs/zh/api/pro_api/SIMT-API/scalar_compute/asin.md+2-2文件内容审核中,请稍后刷新重试
Mdocs/zh/api/pro_api/SIMT-API/scalar_compute/asinh.md+2-2文件内容审核中,请稍后刷新重试
Mdocs/zh/api/pro_api/SIMT-API/scalar_compute/atan.md+2-2文件内容审核中,请稍后刷新重试
Mdocs/zh/api/pro_api/SIMT-API/scalar_compute/atan2.md+4-4文件内容审核中,请稍后刷新重试
Mdocs/zh/api/pro_api/SIMT-API/scalar_compute/copysign.md+4-4文件内容审核中,请稍后刷新重试
Mdocs/zh/api/pro_api/SIMT-API/scalar_compute/cospi.md+2-2文件内容审核中,请稍后刷新重试
Mdocs/zh/api/pro_api/SIMT-API/scalar_compute/fmod.md+4-4文件内容审核中,请稍后刷新重试
Mdocs/zh/api/pro_api/SIMT-API/scalar_compute/isfinite.md+2-2文件内容审核中,请稍后刷新重试
Mdocs/zh/api/pro_api/SIMT-API/scalar_compute/log10.md+2-2文件内容审核中,请稍后刷新重试
Mdocs/zh/api/pro_api/SIMT-API/scalar_compute/mul_hi.md+4-4文件内容审核中,请稍后刷新重试
Mdocs/zh/api/pro_api/SIMT-API/scalar_compute/nextafter.md+4-4文件内容审核中,请稍后刷新重试
Mdocs/zh/api/pro_api/SIMT-API/scalar_compute/popcount.md+2-2文件内容审核中,请稍后刷新重试
Mdocs/zh/api/pro_api/SIMT-API/scalar_compute/rcbrt.md+2-2文件内容审核中,请稍后刷新重试
Mdocs/zh/api/pro_api/SIMT-API/scalar_compute/rcp.md+2-2文件内容审核中,请稍后刷新重试
Mdocs/zh/api/pro_api/SIMT-API/warp/warp_all.md+2-2文件内容审核中,请稍后刷新重试
Mdocs/zh/api/pro_api/SIMT-API/warp/warp_shfl.md+5-5文件内容审核中,请稍后刷新重试
Mdocs/zh/api/pro_api/SIMT-API/warp/warp_shfl_xor.md+5-5文件内容审核中,请稍后刷新重试