已合并
Sync PyPTO Pro API annotations and docs #6873
xuxinlei321创建于 19 天前
Sync PyPTO Pro API annotations and docs #6873
已合并
共 206 个文件变更+625-503
| @@ -25,7 +25,7 @@ $$dstReg0_i = srcReg_{2i}, \quad dstReg1_i = srcReg_{2i+1}$$ | |||
| 25 | ## 函数原型 | 25 | ## 函数原型 |
| 26 | 26 | ||
| 27 | ```python | 27 | ```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 | ```python | 27 | ```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 | ```python | 33 | ```python |
| 34 | -pack(src, part: Optional[PackPart] = None, dtype: Optional[DType] = None) -> dst | 34 | +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 | ```python | 33 | ```python |
| 34 | -unpack(src, part: Optional[PackPart] = None, dtype: Optional[DType] = None) -> dst | 34 | +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 | ```python | 31 | ```python |
| 32 | -unsqueeze(preg) -> dst | 32 | +unsqueeze(preg, /) -> dst |
| 33 | ``` | 33 | ``` |
| 34 | 34 | ||
| 35 | ## 参数说明 | 35 | ## 参数说明 |
| @@ -33,7 +33,7 @@ | |||
| 33 | ## 函数原型 | 33 | ## 函数原型 |
| 34 | 34 | ||
| 35 | ```python | 35 | ```python |
| 36 | -abs(src, preg, mode: Optional[MergeMode] = None) -> dst | 36 | +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 | ```python | 31 | ```python |
| 32 | -add(src0, src1, preg, mode: Optional[MergeMode] = None) -> dst | 32 | +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 | ```python | 31 | ```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 | ```python | 23 | ```python |
| 24 | -adds(src, scalar, preg, mode: Optional[MergeMode] = None) -> dst | 24 | +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 | ```python | 23 | ```python |
| 24 | -div(src0, src1, preg, mode: Optional[MergeMode] = None, precision: Optional[bool] = None) -> dst | 24 | +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 | ```python | 23 | ```python |
| 24 | -exp(src, preg, mode: Optional[MergeMode] = None, precision: Optional[bool] = None) -> dst | 24 | +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 | ```python | 23 | ```python |
| 24 | -leaky_relu(src, scalar, preg, mode: Optional[MergeMode] = None) -> dst | 24 | +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 | ```python | 23 | ```python |
| 24 | -ln(src, preg, mode: Optional[MergeMode] = None, precision: Optional[bool] = None) -> dst | 24 | +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 | ```python | 23 | ```python |
| 24 | -log(src, preg, mode: Optional[MergeMode] = None, precision: Optional[bool] = None) -> dst | 24 | +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 | ```python | 25 | ```python |
| 26 | -log10(src, preg, mode: Optional[MergeMode] = None, precision: Optional[bool] = None) -> dst | 26 | +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 | ```python | 25 | ```python |
| 26 | -log2(src, preg, mode: Optional[MergeMode] = None, precision: Optional[bool] = None) -> dst | 26 | +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 | ```python | 23 | ```python |
| 24 | -max(src0, src1, preg, mode: Optional[MergeMode] = None) -> dst | 24 | +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 | ```python | 23 | ```python |
| 24 | -maxs(src, scalar, preg, mode: Optional[MergeMode] = None) -> dst | 24 | +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 | ```python | 23 | ```python |
| 24 | -min(src0, src1, preg, mode: Optional[MergeMode] = None) -> dst | 24 | +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 | ```python | 23 | ```python |
| 24 | -mins(src, scalar, preg, mode: Optional[MergeMode] = None) -> dst | 24 | +mins(src, scalar, preg, /, *, mode: Optional[MergeMode] = None) -> dst |
| 25 | ``` | 25 | ``` |
| 26 | 26 | ||
| 27 | ## 参数说明 | 27 | ## 参数说明 |
| @@ -29,7 +29,7 @@ $$dst\_hi_i = \lfloor (src0_i \times src1_i) / 2^{bit} \rfloor$$ | |||
| 29 | ## 函数原型 | 29 | ## 函数原型 |
| 30 | 30 | ||
| 31 | ```python | 31 | ```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 | ## 参数说明 |
| @@ -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 | ```python | 23 | ```python |
| 24 | -prelu(src, slope, preg, mode: Optional[MergeMode] = None) -> dst | 24 | +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 | ```python | 23 | ```python |
| 24 | -relu(src, preg, mode: Optional[MergeMode] = None) -> dst | 24 | +relu(src, preg, /, *, mode: Optional[MergeMode] = None) -> dst |
| 25 | ``` | 25 | ``` |
| 26 | 26 | ||
| 27 | ## 参数说明 | 27 | ## 参数说明 |
| @@ -29,7 +29,7 @@ $$dst_i = src0_i - src1_i$$ | |||
| 29 | ## 函数原型 | 29 | ## 函数原型 |
| 30 | 30 | ||
| 31 | ```python | 31 | ```python |
| 32 | -sub(src0, src1, preg, mode: Optional[MergeMode] = None) -> dst | 32 | +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 | ```python | 25 | ```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): | |||
| 34 | import pypto_pro.language as pl | 34 | import pypto_pro.language as pl |
| 35 | 35 | ||
| 36 | @pl.vector_function | 36 | @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_function | 32 | @pl.vector_function |
| 33 | def vf_kernel(): | 33 | def 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): | |||
| 30 | import pypto_pro.language as pl | 30 | import pypto_pro.language as pl |
| 31 | 31 | ||
| 32 | @pl.vector_function | 32 | @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): | |||
| 41 | import pypto_pro.language as pl | 41 | import pypto_pro.language as pl |
| 42 | 42 | ||
| 43 | @pl.vector_function | 43 | @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): | |||
| 30 | import pypto_pro.language as pl | 30 | import pypto_pro.language as pl |
| 31 | 31 | ||
| 32 | @pl.vector_function | 32 | @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): | |||
| 50 | import pypto_pro.language as pl | 50 | import pypto_pro.language as pl |
| 51 | 51 | ||
| 52 | @pl.vector_function | 52 | @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 | ``` |
| @@ -23,7 +23,7 @@ $$dstReg_i = \begin{cases} 1 & \text{if } src0_i > src1_i \\ 0 & \text{otherwise | |||
| 23 | ## 函数原型 | 23 | ## 函数原型 |
| 24 | 24 | ||
| 25 | ```python | 25 | ```python |
| 26 | -gt(src0, src1, preg) -> dst_mask | 26 | +gt(src0, src1, preg, /) -> dst_mask |
| 27 | ``` | 27 | ``` |
| 28 | 28 | ||
| 29 | ## 参数说明 | 29 | ## 参数说明 |
| @@ -21,7 +21,7 @@ $$dstReg_i = \begin{cases} srcTrueReg_i & \text{if } mask_i = 1 \\ srcFalseReg_i | |||
| 21 | ## 函数原型 | 21 | ## 函数原型 |
| 22 | 22 | ||
| 23 | ```python | 23 | ```python |
| 24 | -select(src0, src1, preg) -> dst | 24 | +select(src0, src1, preg, /) -> dst |
| 25 | ``` | 25 | ``` |
| 26 | 26 | ||
| 27 | ## 参数说明 | 27 | ## 参数说明 |
| @@ -23,7 +23,7 @@ $$ | |||
| 23 | ## 函数原型 | 23 | ## 函数原型 |
| 24 | 24 | ||
| 25 | ```python | 25 | ```python |
| 26 | -axpy(src, scalar, preg, mode: Optional[MergeMode] = None) -> dst | 26 | +axpy(src, scalar, preg, /, *, mode: Optional[MergeMode] = None) -> dst |
| 27 | ``` | 27 | ``` |
| 28 | 28 | ||
| 29 | ## 参数说明 | 29 | ## 参数说明 |
| @@ -31,7 +31,7 @@ $$ | |||
| 31 | ## 函数原型 | 31 | ## 函数原型 |
| 32 | 32 | ||
| 33 | ```python | 33 | ```python |
| 34 | -exp_sub(src0, src1, preg, layout: Optional[CastLayout] = None, dtype: Optional[DType] = None) -> dst | 34 | +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 | ```python | 29 | ```python |
| 30 | -mul_add_dst(src0, src1, preg, mode: Optional[MergeMode] = None) -> dst | 30 | +mul_add_dst(src0, src1, preg, /, *, mode: Optional[MergeMode] = None) -> dst |
| 31 | ``` | 31 | ``` |
| 32 | 32 | ||
| 33 | ## 参数说明 | 33 | ## 参数说明 |
| @@ -23,7 +23,7 @@ $$ | |||
| 23 | ## 函数原型 | 23 | ## 函数原型 |
| 24 | 24 | ||
| 25 | ```python | 25 | ```python |
| 26 | -muls_cast(src, scalar, preg, dtype: DType, layout: Optional[CastLayout] = None) -> dst | 26 | +muls_cast(src, scalar, preg, /, *, dtype: DType, layout: Optional[CastLayout] = None) -> dst |
| 27 | ``` | 27 | ``` |
| 28 | 28 | ||
| 29 | ## 参数说明 | 29 | ## 参数说明 |
| @@ -37,7 +37,7 @@ | |||
| 37 | ## 函数原型 | 37 | ## 函数原型 |
| 38 | 38 | ||
| 39 | ```python | 39 | ```python |
| 40 | -gather(src, index, preg, data_copy_mode: Optional[DataCopyMode] = None) -> dst | 40 | +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 | ```python | 26 | ```python |
| 27 | -get_mask_spr(width: MaskWidth = MaskWidth.B32) -> preg | 27 | +get_mask_spr(*, width: MaskWidth = MaskWidth.B32) -> preg |
| 28 | ``` | 28 | ``` |
| 29 | 29 | ||
| 30 | ## 参数说明 | 30 | ## 参数说明 |
| @@ -19,7 +19,7 @@ | |||
| 19 | ## 函数原型 | 19 | ## 函数原型 |
| 20 | 20 | ||
| 21 | ```python | 21 | ```python |
| 22 | -load(tile, stride) -> dst | 22 | +load(tile, stride=None, /) -> dst |
| 23 | ``` | 23 | ``` |
| 24 | 24 | ||
| 25 | ## 参数说明 | 25 | ## 参数说明 |
| @@ -61,7 +61,7 @@ mask_reg目标支持三种分布模式,通过dist关键字参数配置,能 | |||
| 61 | ## 函数原型 | 61 | ## 函数原型 |
| 62 | 62 | ||
| 63 | ```python | 63 | ```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) -> dst | 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) -> 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> - **整数或[row, col]列表**:整数偏移在代码生成时转换为指针算术Tile + offset。<br> [row, col]列表的线性偏移为row * shape[1] + col,row单位为Tile的列数(即set_validshape[m, n]的n),col单位为元素个数,两者均支持表达式。<br> - **AddrReg**(由vf.create_addr_reg创建):实际搬运Tile地址为Tile + AddrReg中存储的偏移量。<br> 每次迭代需先调用vf.create_addr_reg设定偏移量再调用搬运指令。<br>- **非连续搬运模式**(DataBlock加载模式,data_copy_mode=pypto_pro.language.DataCopyMode.DATA_BLOCK_COPY时):该模式下offset位置改为传入控制有效元素的mask_reg,<br> 某个DataBlock在mask中对应的32bit有任意一位为1时搬入,全为0时不读取且dst对应位置置0。<br> - 当post_update=True时,搬运后源地址自动累进repeat_stride步长,每次迭代无需手动更新地址。<br> - 当post_update=False时,搬运后地址不更新。<br>- **mask_reg模式**(需先用vf.create_mask预声明):<br> - **整数**:仅在post_update=True时生效;post_update=False时不支持整数offset。<br> - **AddrReg**(由vf.create_addr_reg创建):实际搬运Tile地址为srcAddr + AddrReg中存储的偏移量。 | | 72 | +| offset | 输入 | 可选,地址偏移参数,根据传入类型自动分派搬运接口。在**连续搬运模式**和**mask_reg模式**下单位为元素个数,在**非连续搬运模式**时为mask。<br>- **连续搬运模式**:<br> - **整数或[row, col]列表/元组**:整数偏移在代码生成时转换为指针算术Tile + offset。<br> [row, col]列表/元组的线性偏移为row * shape[1] + col,row单位为Tile的列数(即set_validshape[m, n]的n),col单位为元素个数,两者均支持表达式。<br> - **AddrReg**(由vf.create_addr_reg创建):实际搬运Tile地址为Tile + AddrReg中存储的偏移量。<br> 每次迭代需先调用vf.create_addr_reg设定偏移量再调用搬运指令。<br>- **非连续搬运模式**(DataBlock加载模式,data_copy_mode=pypto_pro.language.DataCopyMode.DATA_BLOCK_COPY时):该模式下offset位置改为传入控制有效元素的mask_reg,<br> 某个DataBlock在mask中对应的32bit有任意一位为1时搬入,全为0时不读取且dst对应位置置0。<br> - 当post_update=True时,搬运后源地址自动累进repeat_stride步长,每次迭代无需手动更新地址。<br> - 当post_update=False时,搬运后地址不更新。<br>- **mask_reg模式**(需先用vf.create_mask预声明):<br> - **整数**:仅在post_update=True时生效;post_update=False时不支持整数offset。<br> - **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。 | |
| @@ -42,7 +42,7 @@ | |||
| 42 | ## 函数原型 | 42 | ## 函数原型 |
| 43 | 43 | ||
| 44 | ```python | 44 | ```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 | ```python | 26 | ```python |
| 27 | -move(src, preg, mode: Optional[MergeMode] = None) -> dst | 27 | +move(src, preg=None, /, *, mode: Optional[MergeMode] = None) -> dst |
| 28 | ``` | 28 | ``` |
| 29 | 29 | ||
| 30 | ## 参数说明 | 30 | ## 参数说明 |
| @@ -23,7 +23,7 @@ | |||
| 23 | ## 函数原型 | 23 | ## 函数原型 |
| 24 | 24 | ||
| 25 | ```python | 25 | ```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 | ```python | 25 | ```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/squeeze_store_unalign_post.md+1-1文件内容审核中,请稍后刷新重试
| @@ -34,7 +34,7 @@ $$ | |||
| 34 | ## 函数原型 | 34 | ## 函数原型 |
| 35 | 35 | ||
| 36 | ```python | 36 | ```python |
| 37 | -shift_left(src, shift, preg, mode: Optional[MergeMode] = None) -> dst | 37 | +shift_left(src, shift, preg, /, *, mode: Optional[MergeMode] = None) -> dst |
| 38 | ``` | 38 | ``` |
| 39 | 39 | ||
| 40 | ## 参数说明 | 40 | ## 参数说明 |
| @@ -19,7 +19,7 @@ | |||
| 19 | ## 函数原型 | 19 | ## 函数原型 |
| 20 | 20 | ||
| 21 | ```python | 21 | ```python |
| 22 | -xor(src0, src1, preg, mode: Optional[MergeMode] = None) -> dst | 22 | +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/mask_gen_with_reg_tensor.md+1-1文件内容审核中,请稍后刷新重试
| @@ -23,7 +23,7 @@ | |||
| 23 | ## 函数原型 | 23 | ## 函数原型 |
| 24 | 24 | ||
| 25 | ```python | 25 | ```python |
| 26 | -update_mask(scalar, dtype: Optional[DType] = None) -> preg | 26 | +update_mask(scalar, /, *, dtype: Optional[DType] = None) -> preg |
| 27 | ``` | 27 | ``` |
| 28 | 28 | ||
| 29 | ## 参数说明 | 29 | ## 参数说明 |
| @@ -25,7 +25,7 @@ reg_tensor最大值归约:将源寄存器src中的所有有效元素(preg选 | |||
| 25 | ## 函数原型 | 25 | ## 函数原型 |
| 26 | 26 | ||
| 27 | ```python | 27 | ```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 | ## 参数说明 |
| @@ -27,7 +27,7 @@ reg_tensor求和归约:将源寄存器src中的所有有效元素(preg选中 | |||
| 27 | ## 函数原型 | 27 | ## 函数原型 |
| 28 | 28 | ||
| 29 | ```python | 29 | ```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 | ```python | 24 | ```python |
| 25 | -arange(start, dtype: DType, index_order: Optional[IndexOrder] = None) -> dst | 25 | +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 | ```python | 37 | ```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 | ## 参数说明 |
| @@ -39,7 +39,7 @@ pypto_pro.language.Tensor.__init__( | |||
| 39 | 39 | ||
| 40 | | 参数 | 输入/输出 | 说明 | | 40 | | 参数 | 输入/输出 | 说明 | |
| 41 | |---|---|---| | 41 | |---|---|---| |
| 42 | -| shape | 输入 | 各维大小列表。<br>- 表现形式如下:<br> - 固定维度:正整数表示,如[64, 128],调用时对应维度须等于该整数。<br> - 动态维度:pypto_pro.language.DYNAMIC表示,调用时读取实际维度,维度值不参与编译缓存键,不同取值复用同一编译变体。<br> - 编译期特化维度:pypto_pro.language.STATIC表示,调用时读取实际维度,维度值固化到当前编译变体,取值变化时生成新的编译变体。<br> - 末尾...:展开剩余维度,各维均按pypto_pro.language.STATIC处理。<br> - 不同策略可混用,如[64, pl.DYNAMIC, pl.STATIC]。<br>- Kernel内可通过tensor.shape[i]读取对应维度,返回值类型为DT_INT64。 | | 42 | +| shape | 输入 | 各维大小序列(列表或元组)。<br>- 表现形式如下:<br> - 固定维度:正整数表示,如[64, 128],调用时对应维度须等于该整数。<br> - 动态维度:pypto_pro.language.DYNAMIC表示,调用时读取实际维度,维度值不参与编译缓存键,不同取值复用同一编译变体。<br> - 编译期特化维度:pypto_pro.language.STATIC表示,调用时读取实际维度,维度值固化到当前编译变体,取值变化时生成新的编译变体。<br> - 末尾...:展开剩余维度,各维均按pypto_pro.language.STATIC处理。<br> - 不同策略可混用,如[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。 | |
| @@ -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 | ) -> None | 30 | ) -> 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 | ) -> None | 31 | ) -> 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> - DT_FP32:直接传原始比例值(如0.5)。<br> - DT_INT32、DT_INT64:传预编码的float32位模式转成的整数(如struct.pack("!f", 0.5))。<br>- **Tile类型**:每列使用独立比例,需满足以下要求:<br> - 目标存储区域必须为Fixpipe Buffer。<br> - shape为[1, N](列量化),N必须是16的倍数且N ≤ 512。<br> - dtype为DT_INT64。<br> - 目的操作数的Tile数据类型为DT_INT8时,Fixpipe Buffer中的Tile每个DT_INT64元素的bit46需置1,用于选择有符号量化;未置位时L0C Buffer中的负值会被按无符号解读。<br> - 用户需要先把比例数据从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> - DT_FP32:直接传原始比例值(如0.5)。<br> - DT_INT32、DT_INT64:传预编码的float32位模式转成的整数(如0.5对应的位模式整数0x3F000000)。<br>- **Tile类型**:每列使用独立比例,需满足以下要求:<br> - 目标存储区域必须为Fixpipe Buffer。<br> - shape为[1, N](列量化),N必须是16的倍数且N ≤ 512。<br> - dtype为DT_INT64。<br> - 目的操作数的Tile数据类型为DT_INT8时,Fixpipe Buffer中的Tile每个DT_INT64元素的bit46需置1,用于选择有符号量化;未置位时L0C Buffer中的负值会被按无符号解读。<br> - 用户需要先把比例数据从GM搬到L1 Buffer,再搬到Fixpipe Buffer,并完成MTE1→FIX同步。 | |
| 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 | ## 约束说明 |
| @@ -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 | ) -> None | 32 | ) -> 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> - DT_FP32:直接传原始比例值(如0.5)。<br> - DT_INT32、DT_INT64:传预编码的float32位模式转成的整数(如struct.pack("!f", 0.5))。<br>- **Tile类型**:每列使用独立比例,需满足以下要求:<br> - 目标存储区域必须为Fixpipe Buffer。<br> - shape为[1, N](列量化),N必须是16的倍数且N ≤ 512。<br> - dtype为DT_INT64。<br> - 目的操作数的Tile数据类型为DT_INT8时,Fixpipe Buffer中的Tile每个DT_INT64元素的bit46需置1,用于选择有符号量化;未置位时L0C Buffer中的负值会被按无符号解读。<br> - 用户需要先把比例数据从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> - DT_FP32:直接传原始比例值(如0.5)。<br> - DT_INT32、DT_INT64:传预编码的float32位模式转成的整数(如0.5对应的位模式整数0x3F000000)。<br>- **Tile类型**:每列使用独立比例,需满足以下要求:<br> - 目标存储区域必须为Fixpipe Buffer。<br> - shape为[1, N](列量化),N必须是16的倍数且N ≤ 512。<br> - dtype为DT_INT64。<br> - 目的操作数的Tile数据类型为DT_INT8时,Fixpipe Buffer中的Tile每个DT_INT64元素的bit46需置1,用于选择有符号量化;未置位时L0C Buffer中的负值会被按无符号解读。<br> - 用户需要先把比例数据从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> - DT_FP32:直接传原始比例值(如0.5)。<br> - DT_INT32、DT_INT64:传预编码的float32位模式转成的整数(如`struct.pack("!f", 0.5)`)。<br>- **Tile类型**:每列使用独立比例,需满足以下要求:<br> - target_memory必须为pl.MemorySpace.Scaling。<br> - shape为[1, N](列量化),N必须是16的倍数且N ≤ 512。<br> - dtype为DT_INT64。<br> - 目的操作数的Tile数据类型为DT_INT8时,Scaling tile每个DT_INT64元素的bit46需置1,用于选择有符号量化;未置位时L0C Buffer中的负值会被按无符号解读。<br> - 用户需要先把比例数据从GM搬到L1 Buffer,再搬到Scaling,并完成MTE1→FIX同步。<br> - 不支持与atomic同时使用。 | | 44 | +| scale | 输入 | 可选,是否使能量化功能及设置量化模式下的量化参数,数据在搬出L0C时由Fixpipe乘以该比例并转换到目的数据类型。不同的传入形式会影响量化粒度,支持如下类型:<br>- **整型或浮点型常量**:先按数值转换为浮点值,再编码为FP32位模式(如scale = 2与scale = 2.0的编码结果相同),适用于整块tile使用同一比例。<br>- **运行时标量表达式**:量化比例在运行时确定,需按数据类型传值。<br> - DT_FP32:直接传原始比例值(如0.5)。<br> - DT_INT32、DT_INT64:传预编码的float32位模式转成的整数(如0.5对应的位模式整数0x3F000000)。<br>- **Tile类型**:每列使用独立比例,需满足以下要求:<br> - target_memory必须为pl.MemorySpace.Scaling。<br> - shape为[1, N](列量化),N必须是16的倍数且N ≤ 512。<br> - dtype为DT_INT64。<br> - 目的操作数的Tile数据类型为DT_INT8时,Scaling tile每个DT_INT64元素的bit46需置1,用于选择有符号量化;未置位时L0C Buffer中的负值会被按无符号解读。<br> - 用户需要先把比例数据从GM搬到L1 Buffer,再搬到Scaling,并完成MTE1→FIX同步。<br> - 不支持与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)类型。 | |
scale类型为整型或浮点型常量,和函数原型不符 scale: Optional[Union[float, Scalar, Tile]]