Merged
统一C API文档格式 #6641
GRJ_XIDUOAdd on 28 days ago
统一C API文档格式 #6641
Merged
Total: 249 files changed+1401-1230
| @@ -6,7 +6,7 @@ | |||
| 6 | 6 | ||
| 7 |  | 7 |  |
| 8 | 8 | ||
| 9 | -**表1** 数据搬运随路原子操作接口<a id="datamove_atomic_operation_interface"></a> | 9 | +**表1** 数据搬运随路原子操作接口<a id="datamove_atomic_operation_interface"></a> |
| 10 | 10 | ||
| 11 | | 对应接口 | 接口功能描述 | | 11 | | 对应接口 | 接口功能描述 | |
| 12 | | --- | --- | | 12 | | --- | --- | |
| @@ -28,7 +28,7 @@ Scalar原子操作接口,能够在指定GM地址上进行单点原子计算操 | |||
| 28 | 28 | ||
| 29 |  | 29 |  |
| 30 | 30 | ||
| 31 | -**表2** Scalar原子操作接口<a id="scalar_atomic_operation_interface"></a> | 31 | +**表2** Scalar原子操作接口<a id="scalar_atomic_operation_interface"></a> |
| 32 | 32 | ||
| 33 | | 对应接口 | 接口功能描述 | | 33 | | 对应接口 | 接口功能描述 | |
| 34 | | --- | --- | | 34 | | --- | --- | |
| @@ -126,7 +126,7 @@ if (block_idx == 0) { | |||
| 126 | 126 | ||
| 127 | 搬运指令和开启原子操作的指令流水类型如下表所示,当上述指令在同一个核内执行时,开发者按需插入[asc_sync_pipe](../sync/intra_core_sync/asc_sync_pipe.md)或者[asc_sync_notify](../sync/intra_core_sync/asc_sync_notify.md)与[asc_sync_wait](../sync/intra_core_sync/asc_sync_wait.md)。 | 127 | 搬运指令和开启原子操作的指令流水类型如下表所示,当上述指令在同一个核内执行时,开发者按需插入[asc_sync_pipe](../sync/intra_core_sync/asc_sync_pipe.md)或者[asc_sync_notify](../sync/intra_core_sync/asc_sync_notify.md)与[asc_sync_wait](../sync/intra_core_sync/asc_sync_wait.md)。 |
| 128 | 128 | ||
| 129 | -**表1** 原子操作确定性计算相关指令的流水类型 | 129 | +**表1** 原子操作确定性计算相关指令的流水类型 |
| 130 | 130 | ||
| 131 | | 指令名称 | 流水类型 | | 131 | | 指令名称 | 流水类型 | |
| 132 | | --- | --- | | 132 | | --- | --- | |
| @@ -39,7 +39,7 @@ __aicore__ inline <dtype> asc_atomic_add(__gm__ <dtype>* address, | |||
| 39 | 39 | ||
| 40 | ### dtype支持数据类型 | 40 | ### dtype支持数据类型 |
| 41 | 41 | ||
| 42 | -dtype支持的数据类型为`int32_t`、`uint32_t`、`float`、`int64_t`、`uint64_t`。 | 42 | +`dtype`取值为:`int32_t`、`uint32_t`、`float`、`int64_t`、`uint64_t`。 |
| 43 | 43 | ||
| 44 | ### 函数原型典型示例 | 44 | ### 函数原型典型示例 |
| 45 | 45 | ||
| @@ -39,7 +39,7 @@ __aicore__ inline <dtype> asc_atomic_and(__gm__ <dtype>* address, | |||
| 39 | 39 | ||
| 40 | ### dtype支持数据类型 | 40 | ### dtype支持数据类型 |
| 41 | 41 | ||
| 42 | -dtype支持的数据类型为`int32_t`、`uint32_t`、`int64_t`、`uint64_t`。 | 42 | +`dtype`取值为:`int32_t`、`uint32_t`、`int64_t`、`uint64_t`。 |
| 43 | 43 | ||
| 44 | ### 函数原型典型示例 | 44 | ### 函数原型典型示例 |
| 45 | 45 | ||
| @@ -46,7 +46,7 @@ __aicore__ inline <dtype> asc_atomic_cas(__gm__ <dtype>* address, | |||
| 46 | 46 | ||
| 47 | ### dtype支持数据类型 | 47 | ### dtype支持数据类型 |
| 48 | 48 | ||
| 49 | -dtype支持的数据类型为`int32_t`、`uint32_t`、`float`、`int64_t`、`uint64_t`。 | 49 | +`dtype`取值为:`int32_t`、`uint32_t`、`float`、`int64_t`、`uint64_t`。 |
| 50 | 50 | ||
| 51 | ### 函数原型典型示例 | 51 | ### 函数原型典型示例 |
| 52 | 52 | ||
| @@ -45,7 +45,7 @@ __aicore__ inline <dtype> asc_atomic_dec(__gm__ <dtype>* address, | |||
| 45 | 45 | ||
| 46 | ### dtype支持数据类型 | 46 | ### dtype支持数据类型 |
| 47 | 47 | ||
| 48 | -dtype支持的数据类型为`uint32_t`、`uint64_t`。 | 48 | +`dtype`取值为:`uint32_t`、`uint64_t`。 |
| 49 | 49 | ||
| 50 | ### 函数原型典型示例 | 50 | ### 函数原型典型示例 |
| 51 | 51 | ||
| @@ -39,7 +39,7 @@ __aicore__ inline <dtype> asc_atomic_exch(__gm__ <dtype>* address, | |||
| 39 | 39 | ||
| 40 | ### dtype支持数据类型 | 40 | ### dtype支持数据类型 |
| 41 | 41 | ||
| 42 | -dtype支持的数据类型为`int32_t`、`uint32_t`、`float`、`int64_t`、`uint64_t`。 | 42 | +`dtype`取值为:`int32_t`、`uint32_t`、`float`、`int64_t`、`uint64_t`。 |
| 43 | 43 | ||
| 44 | ### 函数原型典型示例 | 44 | ### 函数原型典型示例 |
| 45 | 45 | ||
| @@ -45,7 +45,7 @@ __aicore__ inline <dtype> asc_atomic_inc(__gm__ <dtype>* address, | |||
| 45 | 45 | ||
| 46 | ### dtype支持数据类型 | 46 | ### dtype支持数据类型 |
| 47 | 47 | ||
| 48 | -dtype支持的数据类型为`uint32_t`、`uint64_t`。 | 48 | +`dtype`取值为:`uint32_t`、`uint64_t`。 |
| 49 | 49 | ||
| 50 | ### 函数原型典型示例 | 50 | ### 函数原型典型示例 |
| 51 | 51 | ||
| @@ -8,7 +8,7 @@ | |||
| 8 | 8 | ||
| 9 | 标量原子操作接口如表1所示,各接口支持的数据类型如表2所示。其中`old_value`为`address`指向的GM地址上的旧值,`new_value`为写回该地址的新值,表1中的原子计算接口均返回`old_value`。 | 9 | 标量原子操作接口如表1所示,各接口支持的数据类型如表2所示。其中`old_value`为`address`指向的GM地址上的旧值,`new_value`为写回该地址的新值,表1中的原子计算接口均返回`old_value`。 |
| 10 | 10 | ||
| 11 | -**表1** 标量原子操作接口 | 11 | +**表1** 标量原子操作接口 |
| 12 | 12 | ||
| 13 | | 对应接口 | 接口功能描述 | 计算公式 | | 13 | | 对应接口 | 接口功能描述 | 计算公式 | |
| 14 | | --- | --- | --- | | 14 | | --- | --- | --- | |
| @@ -32,7 +32,7 @@ | |||
| 32 | - [asc_set_store_atomic_config_v1](asc_set_store_atomic_config_v1.md):仅Atlas A2系列产品、Atlas A3系列产品支持,Ascend 950PR&950DT系列产品不支持,在Ascend 950PR&950DT系列产品可使用[asc_atomic_add](asc_atomic_add.md)实现原子累加。 | 32 | - [asc_set_store_atomic_config_v1](asc_set_store_atomic_config_v1.md):仅Atlas A2系列产品、Atlas A3系列产品支持,Ascend 950PR&950DT系列产品不支持,在Ascend 950PR&950DT系列产品可使用[asc_atomic_add](asc_atomic_add.md)实现原子累加。 |
| 33 | - [asc_get_store_atomic_config](asc_get_store_atomic_config.md):Atlas A2系列产品、Atlas A3系列产品、Ascend 950PR&950DT系列产品均支持,但在Ascend 950PR&950DT系列产品上已废弃,该系列产品可直接使用[asc_atomic_add](asc_atomic_add.md)实现原子累加。 | 33 | - [asc_get_store_atomic_config](asc_get_store_atomic_config.md):Atlas A2系列产品、Atlas A3系列产品、Ascend 950PR&950DT系列产品均支持,但在Ascend 950PR&950DT系列产品上已废弃,该系列产品可直接使用[asc_atomic_add](asc_atomic_add.md)实现原子累加。 |
| 34 | 34 | ||
| 35 | -**表2** 标量原子操作接口支持的数据类型 | 35 | +**表2** 标量原子操作接口支持的数据类型 |
| 36 | 36 | ||
| 37 | | 对应接口 | `dtype`支持的数据类型 | | 37 | | 对应接口 | `dtype`支持的数据类型 | |
| 38 | | --- | --- | | 38 | | --- | --- | |
| @@ -18,7 +18,7 @@ Cache(缓存)的主要作用是在搬运单元或Scalar单元与外部存储 | |||
| 18 |  | 18 |  |
| 19 | <!-- end id2 --> | 19 | <!-- end id2 --> |
| 20 | 20 | ||
| 21 | -**表1** Cache类型及功能说明<a name="table_cache_type"></a> | 21 | +**表1** Cache类型及功能说明<a name="table_cache_type"></a> |
| 22 | 22 | ||
| 23 | | Cache类型 | 说明 | | 23 | | Cache类型 | 说明 | |
| 24 | |------------|------| | 24 | |------------|------| |
| @@ -34,7 +34,7 @@ Cache(缓存)的主要作用是在搬运单元或Scalar单元与外部存储 | |||
| 34 | 34 | ||
| 35 | 表2介绍了缓存的四种基础操作及其核心功能。 | 35 | 表2介绍了缓存的四种基础操作及其核心功能。 |
| 36 | 36 | ||
| 37 | -**表2** Cache操作及功能说明 | 37 | +**表2** Cache操作及功能说明 |
| 38 | 38 | ||
| 39 | | 操作名称 | 功能说明 | | 39 | | 操作名称 | 功能说明 | |
| 40 | |---------|---------| | 40 | |---------|---------| |
| @@ -95,7 +95,7 @@ Cache一致性是多核中确保数据正确性的核心机制。简单来说, | |||
| 95 | 95 | ||
| 96 | 表3按照Cache类型(L2 Cache、DCache、ICache、NDDMA Cache)汇总了与缓存控制相关的接口及其功能说明。 | 96 | 表3按照Cache类型(L2 Cache、DCache、ICache、NDDMA Cache)汇总了与缓存控制相关的接口及其功能说明。 |
| 97 | 97 | ||
| 98 | -**表3** 缓存控制接口汇总 | 98 | +**表3** 缓存控制接口汇总 |
| 99 | 99 | ||
| 100 | | Cache类型 | 接口名称 | 功能简述 | | 100 | | Cache类型 | 接口名称 | 功能简述 | |
| 101 | |-----------|---------|---------| | 101 | |-----------|---------|---------| |
| @@ -98,7 +98,7 @@ __aicore__ inline void asc_mmad(__cc__ <c_dtype>* c_matrix, | |||
| 98 | bool disable_gemv) | 98 | bool disable_gemv) |
| 99 | ``` | 99 | ``` |
| 100 | 100 | ||
| 101 | -**dtype支持的数据类型:** | 101 | +#### dtype支持数据类型 |
| 102 | 102 | ||
| 103 | `c_dtype`、`a_dtype`、`b_dtype`的取值组合见下表: | 103 | `c_dtype`、`a_dtype`、`b_dtype`的取值组合见下表: |
| 104 | 104 | ||
| @@ -116,7 +116,7 @@ __aicore__ inline void asc_mmad(__cc__ <c_dtype>* c_matrix, | |||
| 116 | | `bfloat16_t` | `bfloat16_t` | `float` | `float` | | 116 | | `bfloat16_t` | `bfloat16_t` | `float` | `float` | |
| 117 | | `float` | `float` | `float` | `float` | | 117 | | `float` | `float` | `float` | `float` | |
| 118 | 118 | ||
| 119 | -**典型示例:** | 119 | +#### 函数原型典型示例 |
| 120 | 120 | ||
| 121 | ```c | 121 | ```c |
| 122 | // 不显式传入Bias起始地址 | 122 | // 不显式传入Bias起始地址 |
| @@ -151,25 +151,60 @@ __aicore__ inline void asc_mmad(__cc__ float* c_matrix, | |||
| 151 | 151 | ||
| 152 | ```c | 152 | ```c |
| 153 | // 占位符形式 | 153 | // 占位符形式 |
| 154 | - __aicore__ inline void asc_mmad(__cc__ <c_dtype>* c_matrix, __ca__ <a_dtype>* a_matrix, __cb__ <b_dtype>* b_matrix, uint16_t m, uint16_t k, uint16_t n, asc_unit_flag_mode unit_flag_mode, bool k_direction_align, bool c_matrix_source, bool c_matrix_init_val) | 154 | + __aicore__ inline void asc_mmad(__cc__ <c_dtype>* c_matrix, |
| 155 | + __ca__ <a_dtype>* a_matrix, | ||
| 156 | + __cb__ <b_dtype>* b_matrix, | ||
| 157 | + uint16_t m, | ||
| 158 | + uint16_t k, | ||
| 159 | + uint16_t n, | ||
| 160 | + asc_unit_flag_mode unit_flag_mode, | ||
| 161 | + bool k_direction_align, | ||
| 162 | + bool c_matrix_source, | ||
| 163 | + bool c_matrix_init_val) | ||
| 155 | ``` | 164 | ``` |
| 156 | 165 | ||
| 157 | - `c_dtype`、`a_dtype`、`b_dtype`的取值组合见下表: | 166 | +#### dtype支持数据类型 |
| 158 | 167 | ||
| 159 | - **表** 支持的数据类型组合([NPU架构版本2201](../../../../../guide/programming_guide/language_extension/simd_builtin_keywords.md)) | 168 | +`c_dtype`、`a_dtype`、`b_dtype`的取值组合见下表: |
| 160 | 169 | ||
| 161 | - | a_dtype | b_dtype | c_dtype | Bias数据类型 | | 170 | +**表** 支持的数据类型组合([NPU架构版本2201](../../../../../guide/programming_guide/language_extension/simd_builtin_keywords.md)) |
| 162 | - | --- | --- | --- | --- | | 171 | + |
| 163 | - | `int8_t` | `int8_t` | `int32_t` | `int32_t` | | 172 | +| a_dtype | b_dtype | c_dtype | Bias数据类型 | |
| 164 | - | `half` | `half` | `float` | `float` | | 173 | +| --- | --- | --- | --- | |
| 165 | - | `bfloat16_t` | `bfloat16_t` | `float` | `float` | | 174 | +| `int8_t` | `int8_t` | `int32_t` | `int32_t` | |
| 166 | - | `float` | `float` | `float` | `float` | | 175 | +| `half` | `half` | `float` | `float` | |
| 176 | +| `bfloat16_t` | `bfloat16_t` | `float` | `float` | | ||
| 177 | +| `float` | `float` | `float` | `float` | | ||
| 167 | 178 | ||
| 168 | - asc_mmad_s4接口,当输入矩阵数据类型为`int4b_t`时调用此类接口: | 179 | - asc_mmad_s4接口,当输入矩阵数据类型为`int4b_t`时调用此类接口: |
| 169 | 180 | ||
| 170 | ```c | 181 | ```c |
| 171 | - __aicore__ inline void asc_mmad_s4(__cc__ int32_t* c_matrix, __ca__ int4b_t* a_matrix, __cb__ int4b_t* b_matrix, uint16_t m, uint16_t k, uint16_t n, asc_unit_flag_mode unit_flag_mode, bool k_direction_align, bool c_matrix_source, bool c_matrix_init_val) | 182 | + __aicore__ inline void asc_mmad_s4(__cc__ int32_t* c_matrix, |
| 183 | + __ca__ int4b_t* a_matrix, | ||
| 184 | + __cb__ int4b_t* b_matrix, | ||
| 185 | + uint16_t m, | ||
| 186 | + uint16_t k, | ||
| 187 | + uint16_t n, | ||
| 188 | + asc_unit_flag_mode unit_flag_mode, | ||
| 189 | + bool k_direction_align, | ||
| 190 | + bool c_matrix_source, | ||
| 191 | + bool c_matrix_init_val) | ||
| 172 | ``` | 192 | ``` |
| 193 | + | ||
| 194 | +#### 函数原型典型示例 | ||
| 195 | + | ||
| 196 | +```c | ||
| 197 | +__aicore__ inline void asc_mmad(__cc__ float* c_matrix, | ||
| 198 | + __ca__ bfloat16_t* a_matrix, | ||
| 199 | + __cb__ bfloat16_t* b_matrix, | ||
| 200 | + uint16_t m, | ||
| 201 | + uint16_t k, | ||
| 202 | + uint16_t n, | ||
| 203 | + asc_unit_flag_mode unit_flag_mode, | ||
| 204 | + bool k_direction_align, | ||
| 205 | + bool c_matrix_source, | ||
| 206 | + bool c_matrix_init_val) | ||
| 207 | +``` | ||
| 173 | <!-- end id13 --> | 208 | <!-- end id13 --> |
| 174 | 209 | ||
| 175 | ## 参数说明 | 210 | ## 参数说明 |
| @@ -60,29 +60,29 @@ $$ | |||
| 60 | ```c | 60 | ```c |
| 61 | // 不显式传入Bias起始地址,通过参数控制C矩阵初始化方式(占位符形式) | 61 | // 不显式传入Bias起始地址,通过参数控制C矩阵初始化方式(占位符形式) |
| 62 | __aicore__ inline void asc_mmad_mx(__cc__ float* c_matrix, | 62 | __aicore__ inline void asc_mmad_mx(__cc__ float* c_matrix, |
| 63 | - __ca__ <a_dtype>* a_matrix, | 63 | + __ca__ <a_dtype>* a_matrix, |
| 64 | - __cb__ <b_dtype>* b_matrix, | 64 | + __cb__ <b_dtype>* b_matrix, |
| 65 | - uint16_t m, | 65 | + uint16_t m, |
| 66 | - uint16_t k, | 66 | + uint16_t k, |
| 67 | - uint16_t n, | 67 | + uint16_t n, |
| 68 | - asc_unit_flag_mode unit_flag_mode, | 68 | + asc_unit_flag_mode unit_flag_mode, |
| 69 | - bool disable_gemv, | 69 | + bool disable_gemv, |
| 70 | - bool c_matrix_source, | 70 | + bool c_matrix_source, |
| 71 | - bool c_matrix_init_val) | 71 | + bool c_matrix_init_val) |
| 72 | 72 | ||
| 73 | // 显式传入Bias起始地址,C矩阵使用Bias矩阵初始化(占位符形式) | 73 | // 显式传入Bias起始地址,C矩阵使用Bias矩阵初始化(占位符形式) |
| 74 | __aicore__ inline void asc_mmad_mx(__cc__ float* c_matrix, | 74 | __aicore__ inline void asc_mmad_mx(__cc__ float* c_matrix, |
| 75 | - __ca__ <a_dtype>* a_matrix, | 75 | + __ca__ <a_dtype>* a_matrix, |
| 76 | - __cb__ <b_dtype>* b_matrix, | 76 | + __cb__ <b_dtype>* b_matrix, |
| 77 | - uint64_t bias, | 77 | + uint64_t bias, |
| 78 | - uint16_t m, | 78 | + uint16_t m, |
| 79 | - uint16_t k, | 79 | + uint16_t k, |
| 80 | - uint16_t n, | 80 | + uint16_t n, |
| 81 | - asc_unit_flag_mode unit_flag_mode, | 81 | + asc_unit_flag_mode unit_flag_mode, |
| 82 | - bool disable_gemv) | 82 | + bool disable_gemv) |
| 83 | ``` | 83 | ``` |
| 84 | 84 | ||
| 85 | -**dtype支持的数据类型:** | 85 | +### dtype支持数据类型 |
| 86 | 86 | ||
| 87 | `a_dtype`、`b_dtype`的取值组合见下表: | 87 | `a_dtype`、`b_dtype`的取值组合见下表: |
| 88 | 88 | ||
| @@ -99,31 +99,31 @@ __aicore__ inline void asc_mmad_mx(__cc__ float* c_matrix, | |||
| 99 | | `fp8_e5m2_t` | `fp8_e4m3fn_t` | `fp8_e8m0_t` | `float` | `float` | | 99 | | `fp8_e5m2_t` | `fp8_e4m3fn_t` | `fp8_e8m0_t` | `float` | `float` | |
| 100 | | `fp8_e5m2_t` | `fp8_e5m2_t` | `fp8_e8m0_t` | `float` | `float` | | 100 | | `fp8_e5m2_t` | `fp8_e5m2_t` | `fp8_e8m0_t` | `float` | `float` | |
| 101 | 101 | ||
| 102 | -**典型示例:** | 102 | +### 函数原型典型示例 |
| 103 | 103 | ||
| 104 | ```c | 104 | ```c |
| 105 | // 不显式传入Bias起始地址 | 105 | // 不显式传入Bias起始地址 |
| 106 | __aicore__ inline void asc_mmad_mx(__cc__ float* c_matrix, | 106 | __aicore__ inline void asc_mmad_mx(__cc__ float* c_matrix, |
| 107 | - __ca__ fp4x2_e1m2_t* a_matrix, | 107 | + __ca__ fp4x2_e1m2_t* a_matrix, |
| 108 | - __cb__ fp4x2_e2m1_t* b_matrix, | 108 | + __cb__ fp4x2_e2m1_t* b_matrix, |
| 109 | - uint16_t m, | 109 | + uint16_t m, |
| 110 | - uint16_t k, | 110 | + uint16_t k, |
| 111 | - uint16_t n, | 111 | + uint16_t n, |
| 112 | - asc_unit_flag_mode unit_flag_mode, | 112 | + asc_unit_flag_mode unit_flag_mode, |
| 113 | - bool disable_gemv, | 113 | + bool disable_gemv, |
| 114 | - bool c_matrix_source, | 114 | + bool c_matrix_source, |
| 115 | - bool c_matrix_init_val) | 115 | + bool c_matrix_init_val) |
| 116 | 116 | ||
| 117 | // 显式传入Bias起始地址 | 117 | // 显式传入Bias起始地址 |
| 118 | __aicore__ inline void asc_mmad_mx(__cc__ float* c_matrix, | 118 | __aicore__ inline void asc_mmad_mx(__cc__ float* c_matrix, |
| 119 | - __ca__ fp4x2_e1m2_t* a_matrix, | 119 | + __ca__ fp4x2_e1m2_t* a_matrix, |
| 120 | - __cb__ fp4x2_e2m1_t* b_matrix, | 120 | + __cb__ fp4x2_e2m1_t* b_matrix, |
| 121 | - uint64_t bias, | 121 | + uint64_t bias, |
| 122 | - uint16_t m, | 122 | + uint16_t m, |
| 123 | - uint16_t k, | 123 | + uint16_t k, |
| 124 | - uint16_t n, | 124 | + uint16_t n, |
| 125 | - asc_unit_flag_mode unit_flag_mode, | 125 | + asc_unit_flag_mode unit_flag_mode, |
| 126 | - bool disable_gemv) | 126 | + bool disable_gemv) |
| 127 | ``` | 127 | ``` |
| 128 | 128 | ||
| 129 | ## 参数说明 | 129 | ## 参数说明 |
| @@ -38,7 +38,6 @@ | |||
| 38 | __aicore__ inline void asc_mmad_sparse(__cc__ int32_t* c, __ca__ int8_t* a, __cb__ int8_t* b, uint16_t m, uint16_t k, uint16_t n, asc_unit_flag_mode unit_flag_mode, bool c_matrix_source, bool c_matrix_init_val) | 38 | __aicore__ inline void asc_mmad_sparse(__cc__ int32_t* c, __ca__ int8_t* a, __cb__ int8_t* b, uint16_t m, uint16_t k, uint16_t n, asc_unit_flag_mode unit_flag_mode, bool c_matrix_source, bool c_matrix_init_val) |
| 39 | ``` | 39 | ``` |
| 40 | 40 | ||
| 41 | - | ||
| 42 | ## 参数说明 | 41 | ## 参数说明 |
| 43 | 42 | ||
| 44 | **表1** 参数说明 | 43 | **表1** 参数说明 |
| @@ -55,7 +54,6 @@ __aicore__ inline void asc_mmad_sparse(__cc__ int32_t* c, __ca__ int8_t* a, __cb | |||
| 55 | | c_matrix_source | 输入 | 配置C矩阵初始值是否来源于BiasTable Buffer(存放Bias的硬件缓存区)。取值说明如下: <br>• true:来源于BiasTable Buffer。 <br>• false:来源于L0C Buffer。 | | 54 | | c_matrix_source | 输入 | 配置C矩阵初始值是否来源于BiasTable Buffer(存放Bias的硬件缓存区)。取值说明如下: <br>• true:来源于BiasTable Buffer。 <br>• false:来源于L0C Buffer。 | |
| 56 | | c_matrix_init_val | 输入 | 配置C矩阵初始值是否为0。取值说明如下: <br>• true:C矩阵初始值为0。 <br>• false:C矩阵初始值通过c_matrix_source参数进行配置。 | | 55 | | c_matrix_init_val | 输入 | 配置C矩阵初始值是否为0。取值说明如下: <br>• true:C矩阵初始值为0。 <br>• false:C矩阵初始值通过c_matrix_source参数进行配置。 | |
| 57 | 56 | ||
| 58 | - | ||
| 59 | ## 返回值说明 | 57 | ## 返回值说明 |
| 60 | 58 | ||
| 61 | 无 | 59 | 无 |
| @@ -36,8 +36,6 @@ | |||
| 36 | 36 | ||
| 37 | ## 函数原型 | 37 | ## 函数原型 |
| 38 | 38 | ||
| 39 | -### 模板原型 | ||
| 40 | - | ||
| 41 | ```cpp | 39 | ```cpp |
| 42 | // 占位符形式 | 40 | // 占位符形式 |
| 43 | __aicore__ inline void asc_copy_gm2l1(__cbuf__ <dtype>* dst, | 41 | __aicore__ inline void asc_copy_gm2l1(__cbuf__ <dtype>* dst, |
| @@ -45,14 +43,14 @@ __aicore__ inline void asc_copy_gm2l1(__cbuf__ <dtype>* dst, | |||
| 45 | uint32_t m_start_position, | 43 | uint32_t m_start_position, |
| 46 | uint32_t k_start_position, | 44 | uint32_t k_start_position, |
| 47 | uint16_t dst_stride, | 45 | uint16_t dst_stride, |
| 48 | - uint16_t m_step, | 46 | + uint16_t m_step, |
| 49 | - uint16_t k_step, | 47 | + uint16_t k_step, |
| 50 | - asc_load_l2_cache_mode l2_cache_mode) | 48 | + asc_load_l2_cache_mode l2_cache_mode) |
| 51 | ``` | 49 | ``` |
| 52 | 50 | ||
| 53 | -### dtype支持的数据类型 | 51 | +### dtype支持数据类型 |
| 54 | 52 | ||
| 55 | -dtype支持的数据类型为`int8_t`、`uint8_t`、`fp4x2_e2m1_t`、`fp4x2_e1m2_t`、`hifloat8_t`、`fp8_e5m2_t`、`fp8_e4m3fn_t`、`int16_t`、`uint16_t`、`half`、`bfloat16_t`、`int32_t`、`uint32_t`、`float`、`void`。 | 53 | +`dtype`取值为:`int8_t`、`uint8_t`、`fp4x2_e2m1_t`、`fp4x2_e1m2_t`、`hifloat8_t`、`fp8_e5m2_t`、`fp8_e4m3fn_t`、`int16_t`、`uint16_t`、`half`、`bfloat16_t`、`int32_t`、`uint32_t`、`float`、`void`。 |
| 56 | 54 | ||
| 57 | ### 函数原型典型示例 | 55 | ### 函数原型典型示例 |
| 58 | 56 | ||
| @@ -63,9 +61,9 @@ __aicore__ inline void asc_copy_gm2l1(__cbuf__ bfloat16_t* dst, | |||
| 63 | uint32_t m_start_position, | 61 | uint32_t m_start_position, |
| 64 | uint32_t k_start_position, | 62 | uint32_t k_start_position, |
| 65 | uint16_t dst_stride, | 63 | uint16_t dst_stride, |
| 66 | - uint16_t m_step, | 64 | + uint16_t m_step, |
| 67 | - uint16_t k_step, | 65 | + uint16_t k_step, |
| 68 | - asc_load_l2_cache_mode l2_cache_mode) | 66 | + asc_load_l2_cache_mode l2_cache_mode) |
| 69 | ``` | 67 | ``` |
| 70 | 68 | ||
| 71 | ## 参数说明 | 69 | ## 参数说明 |
| @@ -70,19 +70,19 @@ | |||
| 70 | // 占位符形式 | 70 | // 占位符形式 |
| 71 | __aicore__ inline void asc_copy_gm2l1_align(__cbuf__ <dtype>* dst, | 71 | __aicore__ inline void asc_copy_gm2l1_align(__cbuf__ <dtype>* dst, |
| 72 | __gm__ <dtype>* src, | 72 | __gm__ <dtype>* src, |
| 73 | - uint32_t burst_count, | 73 | + uint32_t burst_count, |
| 74 | - uint32_t burst_len, | 74 | + uint32_t burst_len, |
| 75 | uint8_t left_padding_count, | 75 | uint8_t left_padding_count, |
| 76 | uint8_t right_padding_count, | 76 | uint8_t right_padding_count, |
| 77 | - bool enable_data_select, | 77 | + bool enable_data_select, |
| 78 | - asc_load_l2_cache_mode l2_cache_mode, | 78 | + asc_load_l2_cache_mode l2_cache_mode, |
| 79 | - uint64_t src_stride, | 79 | + uint64_t src_stride, |
| 80 | - uint32_t dst_stride) | 80 | + uint32_t dst_stride) |
| 81 | ``` | 81 | ``` |
| 82 | 82 | ||
| 83 | -### dtype支持的数据类型 | 83 | +### dtype支持数据类型 |
| 84 | 84 | ||
| 85 | -dtype取值为:`int8_t`、`uint8_t`、`hifloat8_t`、`int16_t`、`uint16_t`、`half`、`bfloat16_t`、`int32_t`、`uint32_t`、`float`。 | 85 | +`dtype`取值为:`int8_t`、`uint8_t`、`hifloat8_t`、`int16_t`、`uint16_t`、`half`、`bfloat16_t`、`int32_t`、`uint32_t`、`float`。 |
| 86 | 86 | ||
| 87 | ### 函数原型典型示例 | 87 | ### 函数原型典型示例 |
| 88 | 88 | ||
| @@ -90,14 +90,14 @@ dtype取值为:`int8_t`、`uint8_t`、`hifloat8_t`、`int16_t`、`uint16_t`、 | |||
| 90 | // 示例:int8_t类型的搬运 | 90 | // 示例:int8_t类型的搬运 |
| 91 | __aicore__ inline void asc_copy_gm2l1_align(__cbuf__ int8_t* dst, | 91 | __aicore__ inline void asc_copy_gm2l1_align(__cbuf__ int8_t* dst, |
| 92 | __gm__ int8_t* src, | 92 | __gm__ int8_t* src, |
| 93 | - uint32_t burst_count, | 93 | + uint32_t burst_count, |
| 94 | - uint32_t burst_len, | 94 | + uint32_t burst_len, |
| 95 | uint8_t left_padding_count, | 95 | uint8_t left_padding_count, |
| 96 | uint8_t right_padding_count, | 96 | uint8_t right_padding_count, |
| 97 | - bool enable_data_select, | 97 | + bool enable_data_select, |
| 98 | - asc_load_l2_cache_mode l2_cache_mode, | 98 | + asc_load_l2_cache_mode l2_cache_mode, |
| 99 | - uint64_t src_stride, | 99 | + uint64_t src_stride, |
| 100 | - uint32_t dst_stride) | 100 | + uint32_t dst_stride) |
| 101 | ``` | 101 | ``` |
| 102 | 102 | ||
| 103 | ## 参数说明 | 103 | ## 参数说明 |
Mdocs/zh/api/SIMD-API/c_api/cube_datamove/cube_compute_load/asc_copy_gm2l1_dn2nz.md+10-12File content is under review, please try again later
Mdocs/zh/api/SIMD-API/c_api/cube_datamove/cube_compute_load/asc_copy_gm2l1_highdim_split_arch_3510.md+2-2File content is under review, please try again later
Mdocs/zh/api/SIMD-API/c_api/cube_datamove/cube_compute_load/asc_copy_gm2l1_nd2nz_arch_2201.md+0-1File content is under review, please try again later
| @@ -47,17 +47,17 @@ | |||
| 47 | ```cpp | 47 | ```cpp |
| 48 | __aicore__ inline void asc_copy_gm2l1_nd2nz(__cbuf__ <dtype>* dst, | 48 | __aicore__ inline void asc_copy_gm2l1_nd2nz(__cbuf__ <dtype>* dst, |
| 49 | __gm__ <dtype>* src, | 49 | __gm__ <dtype>* src, |
| 50 | - uint64_t src_d_value, | 50 | + uint64_t src_d_value, |
| 51 | - asc_load_l2_cache_mode l2_cache_mode, | 51 | + asc_load_l2_cache_mode l2_cache_mode, |
| 52 | - uint16_t n_value, | 52 | + uint16_t n_value, |
| 53 | - uint32_t d_value, | 53 | + uint32_t d_value, |
| 54 | - uint64_t src_nd_matrix_stride, | 54 | + uint64_t src_nd_matrix_stride, |
| 55 | - bool enable_small_c0) | 55 | + bool enable_small_c0) |
| 56 | ``` | 56 | ``` |
| 57 | 57 | ||
| 58 | -### dtype支持的数据类型 | 58 | +### dtype支持数据类型 |
| 59 | 59 | ||
| 60 | -dtype支持的数据类型为`int8_t`、`uint8_t`、`hifloat8_t`、`fp8_e5m2_t`、`fp8_e4m3fn_t`、`int16_t`、`uint16_t`、`half`、`bfloat16_t`、`int32_t`、`uint32_t`、`float`。 | 60 | +`dtype`取值为:`int8_t`、`uint8_t`、`hifloat8_t`、`fp8_e5m2_t`、`fp8_e4m3fn_t`、`int16_t`、`uint16_t`、`half`、`bfloat16_t`、`int32_t`、`uint32_t`、`float`。 |
| 61 | 61 | ||
| 62 | ### 函数原型典型示例 | 62 | ### 函数原型典型示例 |
| 63 | 63 | ||
| @@ -65,12 +65,12 @@ dtype支持的数据类型为`int8_t`、`uint8_t`、`hifloat8_t`、`fp8_e5m2_t` | |||
| 65 | // 示例:half类型的ND到Nz格式搬运。 | 65 | // 示例:half类型的ND到Nz格式搬运。 |
| 66 | __aicore__ inline void asc_copy_gm2l1_nd2nz(__cbuf__ half* dst, | 66 | __aicore__ inline void asc_copy_gm2l1_nd2nz(__cbuf__ half* dst, |
| 67 | __gm__ half* src, | 67 | __gm__ half* src, |
| 68 | - uint64_t src_d_value, | 68 | + uint64_t src_d_value, |
| 69 | - asc_load_l2_cache_mode l2_cache_mode, | 69 | + asc_load_l2_cache_mode l2_cache_mode, |
| 70 | - uint16_t n_value, | 70 | + uint16_t n_value, |
| 71 | - uint32_t d_value, | 71 | + uint32_t d_value, |
| 72 | - uint64_t src_nd_matrix_stride, | 72 | + uint64_t src_nd_matrix_stride, |
| 73 | - bool enable_small_c0) | 73 | + bool enable_small_c0) |
| 74 | ``` | 74 | ``` |
| 75 | 75 | ||
| 76 | ## 参数说明 | 76 | ## 参数说明 |
Mdocs/zh/api/SIMD-API/c_api/cube_datamove/cube_compute_load/asc_copy_l12bt_arch_3510.md+4-4File content is under review, please try again later
Mdocs/zh/api/SIMD-API/c_api/cube_datamove/cube_compute_load/asc_copy_l12l0a_2d_arch_3510.md+11-11File content is under review, please try again later
Mdocs/zh/api/SIMD-API/c_api/cube_datamove/cube_compute_load/asc_copy_l12l0a_3d_arch_3510.md+2-2File content is under review, please try again later
| @@ -144,8 +144,6 @@ repeatMode =1的时候filter窗口中读取数据的位置保持不变,每个r | |||
| 144 | 144 | ||
| 145 |  | 145 |  |
| 146 | 146 | ||
| 147 | - | ||
| 148 | - | ||
| 149 | ## 调用示例 | 147 | ## 调用示例 |
| 150 | 148 | ||
| 151 | ```cpp | 149 | ```cpp |
Mdocs/zh/api/SIMD-API/c_api/cube_datamove/cube_compute_load/asc_copy_l12l0b_2d_arch_3510.md+12-12File content is under review, please try again later
| @@ -60,9 +60,9 @@ __aicore__ inline void asc_copy_l12l0b(__cb__ <dtype>* dst, | |||
| 60 | uint16_t channel_size) | 60 | uint16_t channel_size) |
| 61 | ``` | 61 | ``` |
| 62 | 62 | ||
| 63 | -### dtype支持的数据类型 | 63 | +### dtype支持数据类型 |
| 64 | 64 | ||
| 65 | -dtype支持的数据类型为`int8_t`、`uint8_t`、`hifloat8_t`、`fp8_e5m2_t`、`fp8_e4m3fn_t`、`int16_t`、`uint16_t`、`half`、`bfloat16_t`、`int32_t`、`uint32_t`、`float`。 | 65 | +`dtype`取值为:`int8_t`、`uint8_t`、`hifloat8_t`、`fp8_e5m2_t`、`fp8_e4m3fn_t`、`int16_t`、`uint16_t`、`half`、`bfloat16_t`、`int32_t`、`uint32_t`、`float`。 |
| 66 | 66 | ||
| 67 | ### 函数原型典型示例 | 67 | ### 函数原型典型示例 |
| 68 | 68 | ||
| @@ -141,8 +141,6 @@ repeatMode =1的时候filter窗口中读取数据的位置保持不变,每个r | |||
| 141 | 141 | ||
| 142 |  | 142 |  |
| 143 | 143 | ||
| 144 | - | ||
| 145 | - | ||
| 146 | ## 调用示例 | 144 | ## 调用示例 |
| 147 | 145 | ||
| 148 | ```cpp | 146 | ```cpp |
Mdocs/zh/api/SIMD-API/c_api/cube_datamove/cube_compute_load/asc_copy_l12l0b_mx.md+1-1File content is under review, please try again later
| @@ -106,8 +106,6 @@ __aicore__ inline void asc_copy_l12l0b_trans(__cb__ float* dst, __cbuf__ float* | |||
| 106 | | enable_addr_decrement | 输入| 控制地址更新方式。<br>false: 递增,每次迭代在前一个地址的基础上加上src_stride。<br>true: 递减,每次迭代在前一个地址的基础上减去src_stride。 | | 106 | | enable_addr_decrement | 输入| 控制地址更新方式。<br>false: 递增,每次迭代在前一个地址的基础上加上src_stride。<br>true: 递减,每次迭代在前一个地址的基础上减去src_stride。 | |
| 107 | | dst_frac_gap | 输入 | 每个迭代内目的操作数转置前一个分形结束地址与后一个分形起始地址的间隔,单位为512B,仅在数据类型为float/int32_t/uint32_t/uint8_t/int8_t时有效。| | 107 | | dst_frac_gap | 输入 | 每个迭代内目的操作数转置前一个分形结束地址与后一个分形起始地址的间隔,单位为512B,仅在数据类型为float/int32_t/uint32_t/uint8_t/int8_t时有效。| |
| 108 | 108 | ||
| 109 | - | ||
| 110 | - | ||
| 111 | ## 返回值说明 | 109 | ## 返回值说明 |
| 112 | 110 | ||
| 113 | 无 | 111 | 无 |
| @@ -79,7 +79,7 @@ | |||
| 79 | - src_stride = 1,表示相邻迭代间,源操作数前一个方块矩阵与后一个方块矩阵起始地址的间隔为1(单位:64\*64\*0.5B),这里的单位实际上是拼接后的方块矩阵的大小; | 79 | - src_stride = 1,表示相邻迭代间,源操作数前一个方块矩阵与后一个方块矩阵起始地址的间隔为1(单位:64\*64\*0.5B),这里的单位实际上是拼接后的方块矩阵的大小; |
| 80 | - dst_gap = 1,表示相邻迭代间,目的操作数前一个迭代第一个分形的结束地址到下一个迭代第一个分形起始地址的间隔为1(单位:512B); | 80 | - dst_gap = 1,表示相邻迭代间,目的操作数前一个迭代第一个分形的结束地址到下一个迭代第一个分形起始地址的间隔为1(单位:512B); |
| 81 | - dst_frac_gap = 0,表示每个迭代内目的操作数前一个分形的结束地址与后一个分形起始地址的间隔为0(单位:512B)。 | 81 | - dst_frac_gap = 0,表示每个迭代内目的操作数前一个分形的结束地址与后一个分形起始地址的间隔为0(单位:512B)。 |
| 82 | - | 82 | + |
| 83 |  | 83 |  |
| 84 | 84 | ||
| 85 | 如下图示例: | 85 | 如下图示例: |
| @@ -108,9 +108,9 @@ __aicore__ inline void asc_copy_l12l0b_trans(__cb__ <dtype>* dst, | |||
| 108 | uint16_t src_frac_gap) | 108 | uint16_t src_frac_gap) |
| 109 | ``` | 109 | ``` |
| 110 | 110 | ||
| 111 | -### dtype支持的数据类型 | 111 | +### dtype支持数据类型 |
| 112 | 112 | ||
| 113 | -dtype支持的数据类型为`int4b_t`、`int8_t`、`uint8_t`、`fp4x2_e2m1_t`、`fp4x2_e1m2_t`、`hifloat8_t`、`fp8_e5m2_t`、`fp8_e4m3fn_t`、`half`、`bfloat16_t`、`int32_t`、`uint32_t`、`float`。 | 113 | +`dtype`取值为:`int4b_t`、`int8_t`、`uint8_t`、`fp4x2_e2m1_t`、`fp4x2_e1m2_t`、`hifloat8_t`、`fp8_e5m2_t`、`fp8_e4m3fn_t`、`half`、`bfloat16_t`、`int32_t`、`uint32_t`、`float`。 |
| 114 | 114 | ||
| 115 | ### 函数原型典型示例 | 115 | ### 函数原型典型示例 |
| 116 | 116 | ||
| @@ -55,7 +55,6 @@ | |||
| 55 | 55 | ||
| 56 | ## 参数说明 | 56 | ## 参数说明 |
| 57 | 57 | ||
| 58 | - | ||
| 59 | **表1** 参数说明 | 58 | **表1** 参数说明 |
| 60 | 59 | ||
| 61 | | 参数名 | 输入/输出 | 描述 | | 60 | | 参数名 | 输入/输出 | 描述 | |
Mdocs/zh/api/SIMD-API/c_api/cube_datamove/cube_compute_store/asc_copy_l0c2gm_arch_3510.md+1-1File content is under review, please try again later
| @@ -63,7 +63,6 @@ Scalar量化参数通过[asc_set_l0c_copy_prequant(uint64_t config)](../cube_sto | |||
| 63 | 63 | ||
| 64 | ## 参数说明 | 64 | ## 参数说明 |
| 65 | 65 | ||
| 66 | - | ||
| 67 | **表1** 参数说明 | 66 | **表1** 参数说明 |
| 68 | 67 | ||
| 69 | | 参数名 | 输入/输出 | 描述 | | 68 | | 参数名 | 输入/输出 | 描述 | |
Mdocs/zh/api/SIMD-API/c_api/cube_datamove/cube_compute_store/asc_copy_l0c2l1_arch_3510.md+1-1File content is under review, please try again later
| @@ -80,8 +80,6 @@ | |||
| 80 | 80 | ||
| 81 | ## 函数原型 | 81 | ## 函数原型 |
| 82 | 82 | ||
| 83 | -### 模板原型 | ||
| 84 | - | ||
| 85 | ```cpp | 83 | ```cpp |
| 86 | // 占位符形式 | 84 | // 占位符形式 |
| 87 | __aicore__ inline void asc_copy_l0c2ub(__ubuf__ <dst_dtype>* dst, | 85 | __aicore__ inline void asc_copy_l0c2ub(__ubuf__ <dst_dtype>* dst, |
| @@ -101,7 +99,7 @@ __aicore__ inline void asc_copy_l0c2ub(__ubuf__ <dst_dtype>* dst, | |||
| 101 | bool enable_clip_relu_pre) | 99 | bool enable_clip_relu_pre) |
| 102 | ``` | 100 | ``` |
| 103 | 101 | ||
| 104 | -### dtype支持的数据类型 | 102 | +### dtype支持数据类型 |
| 105 | 103 | ||
| 106 | src dtype与dst dtype支持以下组合: | 104 | src dtype与dst dtype支持以下组合: |
| 107 | 105 | ||
Mdocs/zh/api/SIMD-API/c_api/cube_datamove/cube_compute_store/asc_copy_l12gm.md+0-1File content is under review, please try again later
Mdocs/zh/api/SIMD-API/c_api/cube_datamove/cube_load_aux_config/asc_fill_l1.md+1-1File content is under review, please try again later
| @@ -105,7 +105,6 @@ bisheng example.asc -o main --npu-arch=dav-3510 && ./main | |||
| 105 | 105 | ||
| 106 | 示例中每次搬运一个16×16的`half`类型ND矩阵。目的Nz矩阵的相邻行起始地址偏移为1个32B块,相邻Z矩阵起始地址偏移为16个32B块;由于每次只搬运一个矩阵,相邻Nz矩阵起始地址偏移配置为0。 | 106 | 示例中每次搬运一个16×16的`half`类型ND矩阵。目的Nz矩阵的相邻行起始地址偏移为1个32B块,相邻Z矩阵起始地址偏移为16个32B块;由于每次只搬运一个矩阵,相邻Nz矩阵起始地址偏移配置为0。 |
| 107 | 107 | ||
| 108 | - | ||
| 109 | ```cpp | 108 | ```cpp |
| 110 | #include <cstdint> | 109 | #include <cstdint> |
| 111 | #include <iostream> | 110 | #include <iostream> |
| @@ -39,9 +39,9 @@ __aicore__ inline void asc_set_gm2l1_padding(<dtype> padding_value) | |||
| 39 | __aicore__ inline void asc_set_gm2l1_padding(uint64_t config) | 39 | __aicore__ inline void asc_set_gm2l1_padding(uint64_t config) |
| 40 | ``` | 40 | ``` |
| 41 | 41 | ||
| 42 | -### dtype支持的数据类型 | 42 | +### dtype支持数据类型 |
| 43 | 43 | ||
| 44 | -dtype支持的数据类型为`int8_t`、`uint8_t`、`int16_t`、`uint16_t`、`half`、`bfloat16_t`、`int32_t`、`uint32_t`、`float`。 | 44 | +`dtype`取值为:`int8_t`、`uint8_t`、`int16_t`、`uint16_t`、`half`、`bfloat16_t`、`int32_t`、`uint32_t`、`float`。 |
| 45 | 45 | ||
| 46 | ### 函数原型典型示例 | 46 | ### 函数原型典型示例 |
| 47 | 47 | ||
| @@ -39,9 +39,9 @@ __aicore__ inline void asc_set_l12l0a_3d_padding(<dtype> padding_value) | |||
| 39 | __aicore__ inline void asc_set_l12l0a_3d_padding(uint64_t config) | 39 | __aicore__ inline void asc_set_l12l0a_3d_padding(uint64_t config) |
| 40 | ``` | 40 | ``` |
| 41 | 41 | ||
| 42 | -### dtype支持的数据类型 | 42 | +### dtype支持数据类型 |
| 43 | 43 | ||
| 44 | -dtype支持的数据类型为`int8_t`、`uint8_t`、`int16_t`、`uint16_t`、`half`、`bfloat16_t`、`int32_t`、`uint32_t`、`float`。 | 44 | +`dtype`取值为:`int8_t`、`uint8_t`、`int16_t`、`uint16_t`、`half`、`bfloat16_t`、`int32_t`、`uint32_t`、`float`。 |
| 45 | 45 | ||
| 46 | ### 函数原型典型示例 | 46 | ### 函数原型典型示例 |
| 47 | 47 | ||
| @@ -39,9 +39,9 @@ __aicore__ inline void asc_set_l12l0b_3d_padding(<dtype> padding_value) | |||
| 39 | __aicore__ inline void asc_set_l12l0b_3d_padding(uint64_t config) | 39 | __aicore__ inline void asc_set_l12l0b_3d_padding(uint64_t config) |
| 40 | ``` | 40 | ``` |
| 41 | 41 | ||
| 42 | -### dtype支持的数据类型 | 42 | +### dtype支持数据类型 |
| 43 | 43 | ||
| 44 | -dtype支持的数据类型为`int8_t`、`uint8_t`、`int16_t`、`uint16_t`、`half`、`bfloat16_t`、`int32_t`、`uint32_t`、`float`。 | 44 | +`dtype`取值为:`int8_t`、`uint8_t`、`int16_t`、`uint16_t`、`half`、`bfloat16_t`、`int32_t`、`uint32_t`、`float`。 |
| 45 | 45 | ||
| 46 | ### 函数原型典型示例 | 46 | ### 函数原型典型示例 |
| 47 | 47 | ||
| @@ -59,8 +59,6 @@ PIPE_S | |||
| 59 | - 如果asc_copy_l12l0a/asc_copy_l12l0b的3D格式搬运接口的源操作数在L1 Buffer上的地址超出设置的边界值(value),则会从L1 Buffer起始地址开始读取数据。 | 59 | - 如果asc_copy_l12l0a/asc_copy_l12l0b的3D格式搬运接口的源操作数在L1 Buffer上的地址超出设置的边界值(value),则会从L1 Buffer起始地址开始读取数据。 |
| 60 | - 操作数地址对齐约束请参考[存储单元说明](../../general_description_and_constraints.md#存储单元说明)。 | 60 | - 操作数地址对齐约束请参考[存储单元说明](../../general_description_and_constraints.md#存储单元说明)。 |
| 61 | 61 | ||
| 62 | - | ||
| 63 | - | ||
| 64 | ## 调用示例 | 62 | ## 调用示例 |
| 65 | 63 | ||
| 66 | ```cpp | 64 | ```cpp |
| @@ -38,8 +38,8 @@ | |||
| 38 | 38 | ||
| 39 | ```c | 39 | ```c |
| 40 | __aicore__ inline void asc_set_l0c_copy_nz_para(uint16_t matrix_num, | 40 | __aicore__ inline void asc_set_l0c_copy_nz_para(uint16_t matrix_num, |
| 41 | - uint16_t src_nz_matrix_stride, | 41 | + uint16_t src_nz_matrix_stride, |
| 42 | - uint32_t dst_matrix_stride) | 42 | + uint32_t dst_matrix_stride) |
| 43 | ``` | 43 | ``` |
| 44 | 44 | ||
| 45 | ## 参数说明 | 45 | ## 参数说明 |
| @@ -43,7 +43,6 @@ Ascend 950PR&950DT系列产品使用[asc_set_l0c_copy_nz_para](asc_set_l0c_copy_ | |||
| 43 | __aicore__ inline void asc_set_l0c_copy_params(uint16_t nd_num, uint16_t src_nd_stride, uint16_t dst_nd_stride) | 43 | __aicore__ inline void asc_set_l0c_copy_params(uint16_t nd_num, uint16_t src_nd_stride, uint16_t dst_nd_stride) |
| 44 | ``` | 44 | ``` |
| 45 | 45 | ||
| 46 | - | ||
| 47 | ## 参数说明 | 46 | ## 参数说明 |
| 48 | 47 | ||
| 49 | **表1** 参数说明 | 48 | **表1** 参数说明 |
| @@ -54,9 +53,6 @@ __aicore__ inline void asc_set_l0c_copy_params(uint16_t nd_num, uint16_t src_nd_ | |||
| 54 | | src_nd_stride | 输入 | 以分形大小为单位的源步长,源相邻nz矩阵的起始地址间的偏移。<br> src_nd_stride∈[1, 512],单位:fractal_size 1024B。| | 53 | | src_nd_stride | 输入 | 以分形大小为单位的源步长,源相邻nz矩阵的起始地址间的偏移。<br> src_nd_stride∈[1, 512],单位:fractal_size 1024B。| |
| 55 | | dst_nd_stride | 输入 | 目的相邻ND矩阵的起始地址间的偏移。单位为元素。 <br> dst_nd_stride∈[1, 65535]。 | | 54 | | dst_nd_stride | 输入 | 目的相邻ND矩阵的起始地址间的偏移。单位为元素。 <br> dst_nd_stride∈[1, 65535]。 | |
| 56 | 55 | ||
| 57 | - | ||
| 58 | - | ||
| 59 | - | ||
| 60 | ## 返回值说明 | 56 | ## 返回值说明 |
| 61 | 57 | ||
| 62 | 无 | 58 | 无 |
| @@ -61,8 +61,6 @@ def asc_bfloat162float_v2(dst, src, mask): | |||
| 61 | 61 | ||
| 62 | ## 函数原型 | 62 | ## 函数原型 |
| 63 | 63 | ||
| 64 | -### 模板原型 | ||
| 65 | - | ||
| 66 | ```c | 64 | ```c |
| 67 | // 占位符形式 | 65 | // 占位符形式 |
| 68 | __simd_callee__ inline void asc_bfloat162float<position_mode>(vector_float& dst, | 66 | __simd_callee__ inline void asc_bfloat162float<position_mode>(vector_float& dst, |
| @@ -63,8 +63,6 @@ def asc_bfloat162int32_rn_v2(dst, src, mask): | |||
| 63 | 63 | ||
| 64 | ## 函数原型 | 64 | ## 函数原型 |
| 65 | 65 | ||
| 66 | -### 模板原型 | ||
| 67 | - | ||
| 68 | ```c | 66 | ```c |
| 69 | // 占位符形式 | 67 | // 占位符形式 |
| 70 | __simd_callee__ inline void asc_bfloat162int32_<round_mode><sat_mode><position_mode>(vector_int32_t& dst, | 68 | __simd_callee__ inline void asc_bfloat162int32_<round_mode><sat_mode><position_mode>(vector_int32_t& dst, |
| @@ -36,8 +36,6 @@ | |||
| 36 | 36 | ||
| 37 | ## 函数原型 | 37 | ## 函数原型 |
| 38 | 38 | ||
| 39 | -### 模板原型 | ||
| 40 | - | ||
| 41 | ```cpp | 39 | ```cpp |
| 42 | // 占位符形式 | 40 | // 占位符形式 |
| 43 | __aicore__ inline void asc_copy_gm2l1(__cbuf__ <dtype>* dst, | 41 | __aicore__ inline void asc_copy_gm2l1(__cbuf__ <dtype>* dst, |
| @@ -60,9 +58,9 @@ __aicore__ inline void asc_copy_gm2l1_sync(__cbuf__ <dtype>* dst, | |||
| 60 | uint8_t l2_cache_ctl) | 58 | uint8_t l2_cache_ctl) |
| 61 | ``` | 59 | ``` |
| 62 | 60 | ||
| 63 | -### dtype支持的数据类型 | 61 | +### dtype支持数据类型 |
| 64 | 62 | ||
| 65 | -dtype支持的数据类型为`int8_t`、`uint8_t`、`fp4x2_e2m1_t`、`fp4x2_e1m2_t`、`hifloat8_t`、`fp8_e5m2_t`、`fp8_e4m3fn_t`、`int16_t`、`uint16_t`、`half`、`bfloat16_t`、`int32_t`、`uint32_t`、`float`、`void`。 | 63 | +`dtype`取值为:`int8_t`、`uint8_t`、`fp4x2_e2m1_t`、`fp4x2_e1m2_t`、`hifloat8_t`、`fp8_e5m2_t`、`fp8_e4m3fn_t`、`int16_t`、`uint16_t`、`half`、`bfloat16_t`、`int32_t`、`uint32_t`、`float`、`void`。 |
| 66 | 64 | ||
| 67 | ### 函数原型典型示例 | 65 | ### 函数原型典型示例 |
| 68 | 66 | ||
| @@ -91,9 +91,9 @@ __aicore__ inline void asc_copy_gm2l1_align_sync(__cbuf__ <dtype>* dst, | |||
| 91 | uint32_t burst_dst_stride) | 91 | uint32_t burst_dst_stride) |
| 92 | ``` | 92 | ``` |
| 93 | 93 | ||
| 94 | -### dtype支持的数据类型 | 94 | +### dtype支持数据类型 |
| 95 | 95 | ||
| 96 | -dtype取值为:`int8_t`、`uint8_t`、`hifloat8_t`、`int16_t`、`uint16_t`、`half`、`bfloat16_t`、`int32_t`、`uint32_t`、`float`。 | 96 | +`dtype`取值为:`int8_t`、`uint8_t`、`hifloat8_t`、`int16_t`、`uint16_t`、`half`、`bfloat16_t`、`int32_t`、`uint32_t`、`float`。 |
| 97 | 97 | ||
| 98 | ### 函数原型典型示例 | 98 | ### 函数原型典型示例 |
| 99 | 99 | ||
| @@ -80,9 +80,9 @@ __aicore__ inline void asc_copy_gm2l1_align_sync(__cbuf__ <dtype>* dst, | |||
| 80 | uint32_t burst_dst_stride) | 80 | uint32_t burst_dst_stride) |
| 81 | ``` | 81 | ``` |
| 82 | 82 | ||
| 83 | -### dtype支持的数据类型 | 83 | +### dtype支持数据类型 |
| 84 | 84 | ||
| 85 | -dtype取值为:`int8_t`、`uint8_t`、`hifloat8_t`、`int16_t`、`uint16_t`、`half`、`bfloat16_t`、`int32_t`、`uint32_t`、`float`。 | 85 | +`dtype`取值为:`int8_t`、`uint8_t`、`hifloat8_t`、`int16_t`、`uint16_t`、`half`、`bfloat16_t`、`int32_t`、`uint32_t`、`float`。 |
| 86 | 86 | ||
| 87 | ## 参数说明 | 87 | ## 参数说明 |
| 88 | 88 | ||
| @@ -44,8 +44,6 @@ | |||
| 44 | 44 | ||
| 45 | ## 函数原型 | 45 | ## 函数原型 |
| 46 | 46 | ||
| 47 | -### 模板原型 | ||
| 48 | - | ||
| 49 | ```cpp | 47 | ```cpp |
| 50 | // 占位符形式 | 48 | // 占位符形式 |
| 51 | __aicore__ inline void asc_copy_gm2l1_dn2nz(__cbuf__ <dtype>* dst, | 49 | __aicore__ inline void asc_copy_gm2l1_dn2nz(__cbuf__ <dtype>* dst, |
| @@ -66,9 +64,9 @@ __aicore__ inline void asc_copy_gm2l1_dn2nz_sync(__cbuf__ <dtype>* dst, | |||
| 66 | bool smallc0_en) | 64 | bool smallc0_en) |
| 67 | ``` | 65 | ``` |
| 68 | 66 | ||
| 69 | -### dtype支持的数据类型 | 67 | +### dtype支持数据类型 |
| 70 | 68 | ||
| 71 | -dtype支持的数据类型为`int8_t`、`uint8_t`、`hifloat8_t`、`fp8_e5m2_t`、`fp8_e4m3fn_t`、`int16_t`、`uint16_t`、`half`、`bfloat16_t`、`int32_t`、`uint32_t`、`float`。 | 69 | +`dtype`取值为:`int8_t`、`uint8_t`、`hifloat8_t`、`fp8_e5m2_t`、`fp8_e4m3fn_t`、`int16_t`、`uint16_t`、`half`、`bfloat16_t`、`int32_t`、`uint32_t`、`float`。 |
| 72 | 70 | ||
| 73 | ### 典型示例 | 71 | ### 典型示例 |
| 74 | 72 | ||
| @@ -44,8 +44,6 @@ | |||
| 44 | 44 | ||
| 45 | ## 函数原型 | 45 | ## 函数原型 |
| 46 | 46 | ||
| 47 | -### 模板原型 | ||
| 48 | - | ||
| 49 | ```cpp | 47 | ```cpp |
| 50 | // 占位符形式 | 48 | // 占位符形式 |
| 51 | __aicore__ inline void asc_copy_gm2l1_dn2nz_sync(__cbuf__ <dtype>* dst, | 49 | __aicore__ inline void asc_copy_gm2l1_dn2nz_sync(__cbuf__ <dtype>* dst, |
| @@ -58,9 +56,9 @@ __aicore__ inline void asc_copy_gm2l1_dn2nz_sync(__cbuf__ <dtype>* dst, | |||
| 58 | bool smallc0_en) | 56 | bool smallc0_en) |
| 59 | ``` | 57 | ``` |
| 60 | 58 | ||
| 61 | -### dtype支持的数据类型 | 59 | +### dtype支持数据类型 |
| 62 | 60 | ||
| 63 | -dtype支持的数据类型为`int8_t`、`uint8_t`、`hifloat8_t`、`fp8_e5m2_t`、`fp8_e4m3fn_t`、`int16_t`、`uint16_t`、`half`、`bfloat16_t`、`int32_t`、`uint32_t`、`float`。 | 61 | +`dtype`取值为:`int8_t`、`uint8_t`、`hifloat8_t`、`fp8_e5m2_t`、`fp8_e4m3fn_t`、`int16_t`、`uint16_t`、`half`、`bfloat16_t`、`int32_t`、`uint32_t`、`float`。 |
| 64 | 62 | ||
| 65 | ## 参数说明 | 63 | ## 参数说明 |
| 66 | 64 | ||
| @@ -54,18 +54,18 @@ __aicore__ inline void asc_copy_gm2l1_nd2nz(__cbuf__ <dtype>* dst, | |||
| 54 | uint64_t loop4_src_stride, | 54 | uint64_t loop4_src_stride, |
| 55 | bool enable_small_c0) | 55 | bool enable_small_c0) |
| 56 | __aicore__ inline void asc_copy_gm2l1_nd2nz_sync(__cbuf__ <dtype>* dst, | 56 | __aicore__ inline void asc_copy_gm2l1_nd2nz_sync(__cbuf__ <dtype>* dst, |
| 57 | - __gm__ <dtype>* src, | 57 | + __gm__ <dtype>* src, |
| 58 | - uint64_t loop1_src_stride, | 58 | + uint64_t loop1_src_stride, |
| 59 | - uint8_t l2_cache_ctl, | 59 | + uint8_t l2_cache_ctl, |
| 60 | - uint16_t n_value, | 60 | + uint16_t n_value, |
| 61 | - uint32_t d_value, | 61 | + uint32_t d_value, |
| 62 | - uint64_t loop4_src_stride, | 62 | + uint64_t loop4_src_stride, |
| 63 | - bool enable_small_c0) | 63 | + bool enable_small_c0) |
| 64 | ``` | 64 | ``` |
| 65 | 65 | ||
| 66 | -### dtype支持的数据类型 | 66 | +### dtype支持数据类型 |
| 67 | 67 | ||
| 68 | -dtype支持的数据类型为`int8_t`、`uint8_t`、`hifloat8_t`、`fp8_e5m2_t`、`fp8_e4m3fn_t`、`int16_t`、`uint16_t`、`half`、`bfloat16_t`、`int32_t`、`uint32_t`、`float`。 | 68 | +`dtype`取值为:`int8_t`、`uint8_t`、`hifloat8_t`、`fp8_e5m2_t`、`fp8_e4m3fn_t`、`int16_t`、`uint16_t`、`half`、`bfloat16_t`、`int32_t`、`uint32_t`、`float`。 |
| 69 | 69 | ||
| 70 | ### 函数原型典型示例 | 70 | ### 函数原型典型示例 |
| 71 | 71 | ||
Mdocs/zh/api/SIMD-API/c_api/deprecated_interface/asc_copy_gm2l1_nd2nz_sync_arch_2201_deprecated.md+0-1
| @@ -65,7 +65,6 @@ | |||
| 65 | 65 | ||
| 66 | ## 参数说明 | 66 | ## 参数说明 |
| 67 | 67 | ||
| 68 | - | ||
| 69 | **表1** 参数说明 | 68 | **表1** 参数说明 |
| 70 | 69 | ||
| 71 | | 参数名 | 输入/输出 | 描述 | | 70 | | 参数名 | 输入/输出 | 描述 | |
Mdocs/zh/api/SIMD-API/c_api/deprecated_interface/asc_copy_gm2l1_nd2nz_sync_arch_3510_deprecated.md+9-9
| @@ -46,18 +46,18 @@ | |||
| 46 | 46 | ||
| 47 | ```cpp | 47 | ```cpp |
| 48 | __aicore__ inline void asc_copy_gm2l1_nd2nz_sync(__cbuf__ <dtype>* dst, | 48 | __aicore__ inline void asc_copy_gm2l1_nd2nz_sync(__cbuf__ <dtype>* dst, |
| 49 | - __gm__ <dtype>* src, | 49 | + __gm__ <dtype>* src, |
| 50 | - uint64_t loop1_src_stride, | 50 | + uint64_t loop1_src_stride, |
| 51 | - uint8_t l2_cache_ctl, | 51 | + uint8_t l2_cache_ctl, |
| 52 | - uint16_t n_value, | 52 | + uint16_t n_value, |
| 53 | - uint32_t d_value, | 53 | + uint32_t d_value, |
| 54 | - uint64_t loop4_src_stride, | 54 | + uint64_t loop4_src_stride, |
| 55 | - bool enable_small_c0) | 55 | + bool enable_small_c0) |
| 56 | ``` | 56 | ``` |
| 57 | 57 | ||
| 58 | -### dtype支持的数据类型 | 58 | +### dtype支持数据类型 |
| 59 | 59 | ||
| 60 | -dtype支持的数据类型为`int8_t`、`uint8_t`、`hifloat8_t`、`fp8_e5m2_t`、`fp8_e4m3fn_t`、`int16_t`、`uint16_t`、`half`、`bfloat16_t`、`int32_t`、`uint32_t`、`float`。 | 60 | +`dtype`取值为:`int8_t`、`uint8_t`、`hifloat8_t`、`fp8_e5m2_t`、`fp8_e4m3fn_t`、`int16_t`、`uint16_t`、`half`、`bfloat16_t`、`int32_t`、`uint32_t`、`float`。 |
| 61 | 61 | ||
| 62 | ### 函数原型典型示例 | 62 | ### 函数原型典型示例 |
| 63 | 63 | ||
| @@ -36,8 +36,6 @@ | |||
| 36 | 36 | ||
| 37 | ## 函数原型 | 37 | ## 函数原型 |
| 38 | 38 | ||
| 39 | -### 模板原型 | ||
| 40 | - | ||
| 41 | ```cpp | 39 | ```cpp |
| 42 | // 占位符形式 | 40 | // 占位符形式 |
| 43 | __aicore__ inline void asc_copy_gm2l1_sync(__cbuf__ <dtype>* dst, | 41 | __aicore__ inline void asc_copy_gm2l1_sync(__cbuf__ <dtype>* dst, |
| @@ -51,9 +49,9 @@ __aicore__ inline void asc_copy_gm2l1_sync(__cbuf__ <dtype>* dst, | |||
| 51 | uint8_t l2_cache_ctl) | 49 | uint8_t l2_cache_ctl) |
| 52 | ``` | 50 | ``` |
| 53 | 51 | ||
| 54 | -### dtype支持的数据类型 | 52 | +### dtype支持数据类型 |
| 55 | 53 | ||
| 56 | -dtype支持的数据类型为`int8_t`、`uint8_t`、`fp4x2_e2m1_t`、`fp4x2_e1m2_t`、`hifloat8_t`、`fp8_e5m2_t`、`fp8_e4m3fn_t`、`int16_t`、`uint16_t`、`half`、`bfloat16_t`、`int32_t`、`uint32_t`、`float`、`void`。 | 54 | +`dtype`取值为:`int8_t`、`uint8_t`、`fp4x2_e2m1_t`、`fp4x2_e1m2_t`、`hifloat8_t`、`fp8_e5m2_t`、`fp8_e4m3fn_t`、`int16_t`、`uint16_t`、`half`、`bfloat16_t`、`int32_t`、`uint32_t`、`float`、`void`。 |
| 57 | 55 | ||
| 58 | ## 参数说明 | 56 | ## 参数说明 |
| 59 | 57 | ||
| @@ -68,7 +68,6 @@ | |||
| 68 | __aicore__ inline void asc_copy_gm2ub_align(__ubuf__ float* dst, __gm__ float* src, uint16_t n_burst, uint32_t len_burst, uint8_t left_padding_num, uint8_t right_padding_num, bool enable_constant_pad, uint8_t l2_cache_mode, uint64_t src_stride, uint32_t dst_stride) | 68 | __aicore__ inline void asc_copy_gm2ub_align(__ubuf__ float* dst, __gm__ float* src, uint16_t n_burst, uint32_t len_burst, uint8_t left_padding_num, uint8_t right_padding_num, bool enable_constant_pad, uint8_t l2_cache_mode, uint64_t src_stride, uint32_t dst_stride) |
| 69 | ``` | 69 | ``` |
| 70 | 70 | ||
| 71 | - | ||
| 72 | ## 参数说明 | 71 | ## 参数说明 |
| 73 | 72 | ||
| 74 | **表1** 参数说明 | 73 | **表1** 参数说明 |
| @@ -103,29 +103,29 @@ __aicore__ inline void asc_copy_l0c2gm(__gm__ <dst_dtype>* dst, | |||
| 103 | bool broadcast_en, | 103 | bool broadcast_en, |
| 104 | bool enable_nz2dn) | 104 | bool enable_nz2dn) |
| 105 | __aicore__ inline void asc_copy_l0c2gm_sync(__gm__ <dst_dtype>* dst, | 105 | __aicore__ inline void asc_copy_l0c2gm_sync(__gm__ <dst_dtype>* dst, |
| 106 | - __cc__ <src_dtype>* src, | 106 | + __cc__ <src_dtype>* src, |
| 107 | - uint16_t n_size, | 107 | + uint16_t n_size, |
| 108 | - uint16_t m_size, | 108 | + uint16_t m_size, |
| 109 | - uint32_t dst_stride, | 109 | + uint32_t dst_stride, |
| 110 | - uint16_t src_stride, | 110 | + uint16_t src_stride, |
| 111 | - uint8_t l2_cache_mode, | 111 | + uint8_t l2_cache_mode, |
| 112 | - uint8_t enable_clip_relu_pre, | 112 | + uint8_t enable_clip_relu_pre, |
| 113 | - uint8_t unit_flag_mode, | 113 | + uint8_t unit_flag_mode, |
| 114 | - uint64_t quant_pre_mode, | 114 | + uint64_t quant_pre_mode, |
| 115 | - uint8_t relu_pre_mode, | 115 | + uint8_t relu_pre_mode, |
| 116 | - bool enable_channel_split, | 116 | + bool enable_channel_split, |
| 117 | - bool enable_nz2nd, | 117 | + bool enable_nz2nd, |
| 118 | - uint64_t quant_post, | 118 | + uint64_t quant_post, |
| 119 | - uint8_t relu_post, | 119 | + uint8_t relu_post, |
| 120 | - bool clip_relu_post, | 120 | + bool clip_relu_post, |
| 121 | - uint8_t eltwise_op, | 121 | + uint8_t eltwise_op, |
| 122 | - bool eltwise_antq_en, | 122 | + bool eltwise_antq_en, |
| 123 | - bool c0_pad_en, | 123 | + bool c0_pad_en, |
| 124 | - bool broadcast_en, | 124 | + bool broadcast_en, |
| 125 | - bool enable_nz2dn) | 125 | + bool enable_nz2dn) |
| 126 | ``` | 126 | ``` |
| 127 | 127 | ||
| 128 | -### dtype支持的数据类型 | 128 | +### dtype支持数据类型 |
| 129 | 129 | ||
| 130 | src dtype与dst dtype支持以下组合: | 130 | src dtype与dst dtype支持以下组合: |
| 131 | 131 | ||
| @@ -71,75 +71,62 @@ quant_pre_mode量化模式参数支持的枚举值如下: | |||
| 71 | ## 函数原型 | 71 | ## 函数原型 |
| 72 | 72 | ||
| 73 | ```cpp | 73 | ```cpp |
| 74 | -__aicore__ inline void asc_copy_l0c2l1( | 74 | +__aicore__ inline void asc_copy_l0c2l1(__cbuf__ half* dst, __cc__ float* src, uint16_t n_size, uint16_t m_size, uint32_t dst_stride, |
| 75 | - __cbuf__ half* dst, __cc__ float* src, uint16_t n_size, uint16_t m_size, uint32_t dst_stride, | 75 | + uint16_t src_stride, uint8_t enable_clip_relu_pre, uint8_t unit_flag_mode, uint64_t quant_pre_mode, |
| 76 | - uint16_t src_stride, uint8_t enable_clip_relu_pre, uint8_t unit_flag_mode, uint64_t quant_pre_mode, | 76 | + uint8_t relu_pre_mode, bool enable_channel_split, bool enable_nz2nd, uint64_t quant_post, |
| 77 | - uint8_t relu_pre_mode, bool enable_channel_split, bool enable_nz2nd, uint64_t quant_post, | 77 | + uint8_t relu_post, bool clip_relu_post, uint8_t eltwise_op, uint8_t eltwise_antq_en, bool c0_pad_en) |
| 78 | - uint8_t relu_post, bool clip_relu_post, uint8_t eltwise_op, uint8_t eltwise_antq_en, bool c0_pad_en) | 78 | +__aicore__ inline void asc_copy_l0c2l1(__cbuf__ bfloat16_t* dst, __cc__ float* src, uint16_t n_size, uint16_t m_size, uint32_t dst_stride, |
| 79 | -__aicore__ inline void asc_copy_l0c2l1( | 79 | + uint16_t src_stride, uint8_t enable_clip_relu_pre, uint8_t unit_flag_mode, uint64_t quant_pre_mode, |
| 80 | - __cbuf__ bfloat16_t* dst, __cc__ float* src, uint16_t n_size, uint16_t m_size, uint32_t dst_stride, | 80 | + uint8_t relu_pre_mode, bool enable_channel_split, bool enable_nz2nd, uint64_t quant_post, |
| 81 | - uint16_t src_stride, uint8_t enable_clip_relu_pre, uint8_t unit_flag_mode, uint64_t quant_pre_mode, | 81 | + uint8_t relu_post, bool clip_relu_post, uint8_t eltwise_op, uint8_t eltwise_antq_en, bool c0_pad_en) |
| 82 | - uint8_t relu_pre_mode, bool enable_channel_split, bool enable_nz2nd, uint64_t quant_post, | 82 | +__aicore__ inline void asc_copy_l0c2l1(__cbuf__ int8_t* dst, __cc__ float* src, uint16_t n_size, uint16_t m_size, uint32_t dst_stride, |
| 83 | - uint8_t relu_post, bool clip_relu_post, uint8_t eltwise_op, uint8_t eltwise_antq_en, bool c0_pad_en) | 83 | + uint16_t src_stride, uint8_t enable_clip_relu_pre, uint8_t unit_flag_mode, uint64_t quant_pre_mode, |
| 84 | -__aicore__ inline void asc_copy_l0c2l1( | 84 | + uint8_t relu_pre_mode, bool enable_channel_split, bool enable_nz2nd, uint64_t quant_post, |
| 85 | - __cbuf__ int8_t* dst, __cc__ float* src, uint16_t n_size, uint16_t m_size, uint32_t dst_stride, | 85 | + uint8_t relu_post, bool clip_relu_post, uint8_t eltwise_op, uint8_t eltwise_antq_en, bool c0_pad_en) |
| 86 | - uint16_t src_stride, uint8_t enable_clip_relu_pre, uint8_t unit_flag_mode, uint64_t quant_pre_mode, | 86 | +__aicore__ inline void asc_copy_l0c2l1(__cbuf__ uint8_t* dst, __cc__ float* src, uint16_t n_size, uint16_t m_size, uint32_t dst_stride, |
| 87 | - uint8_t relu_pre_mode, bool enable_channel_split, bool enable_nz2nd, uint64_t quant_post, | 87 | + uint16_t src_stride, uint8_t enable_clip_relu_pre, uint8_t unit_flag_mode, uint64_t quant_pre_mode, |
| 88 | - uint8_t relu_post, bool clip_relu_post, uint8_t eltwise_op, uint8_t eltwise_antq_en, bool c0_pad_en) | 88 | + uint8_t relu_pre_mode, bool enable_channel_split, bool enable_nz2nd, uint64_t quant_post, |
| 89 | -__aicore__ inline void asc_copy_l0c2l1( | 89 | + uint8_t relu_post, bool clip_relu_post, uint8_t eltwise_op, uint8_t eltwise_antq_en, bool c0_pad_en) |
| 90 | - __cbuf__ uint8_t* dst, __cc__ float* src, uint16_t n_size, uint16_t m_size, uint32_t dst_stride, | 90 | +__aicore__ inline void asc_copy_l0c2l1(__cbuf__ float* dst, __cc__ float* src, uint16_t n_size, uint16_t m_size, uint32_t dst_stride, |
| 91 | - uint16_t src_stride, uint8_t enable_clip_relu_pre, uint8_t unit_flag_mode, uint64_t quant_pre_mode, | 91 | + uint16_t src_stride, uint8_t enable_clip_relu_pre, uint8_t unit_flag_mode, uint64_t quant_pre_mode, |
| 92 | - uint8_t relu_pre_mode, bool enable_channel_split, bool enable_nz2nd, uint64_t quant_post, | 92 | + uint8_t relu_pre_mode, bool enable_channel_split, bool enable_nz2nd, uint64_t quant_post, |
| 93 | - uint8_t relu_post, bool clip_relu_post, uint8_t eltwise_op, uint8_t eltwise_antq_en, bool c0_pad_en) | 93 | + uint8_t relu_post, bool clip_relu_post, uint8_t eltwise_op, uint8_t eltwise_antq_en, bool c0_pad_en) |
| 94 | -__aicore__ inline void asc_copy_l0c2l1( | 94 | +__aicore__ inline void asc_copy_l0c2l1(__cbuf__ half* dst, __cc__ int32_t* src, uint16_t n_size, uint16_t m_size, uint32_t dst_stride, |
| 95 | - __cbuf__ float* dst, __cc__ float* src, uint16_t n_size, uint16_t m_size, uint32_t dst_stride, | 95 | + uint16_t src_stride, uint8_t enable_clip_relu_pre, uint8_t unit_flag_mode, uint64_t quant_pre_mode, |
| 96 | - uint16_t src_stride, uint8_t enable_clip_relu_pre, uint8_t unit_flag_mode, uint64_t quant_pre_mode, | 96 | + uint8_t relu_pre_mode, bool enable_channel_split, bool enable_nz2nd, uint64_t quant_post, |
| 97 | - uint8_t relu_pre_mode, bool enable_channel_split, bool enable_nz2nd, uint64_t quant_post, | 97 | + uint8_t relu_post, bool clip_relu_post, uint8_t eltwise_op, uint8_t eltwise_antq_en, bool c0_pad_en) |
| 98 | - uint8_t relu_post, bool clip_relu_post, uint8_t eltwise_op, uint8_t eltwise_antq_en, bool c0_pad_en) | 98 | +__aicore__ inline void asc_copy_l0c2l1(__cbuf__ int8_t* dst, __cc__ int32_t* src, uint16_t n_size, uint16_t m_size, uint32_t dst_stride, |
| 99 | -__aicore__ inline void asc_copy_l0c2l1( | 99 | + uint16_t src_stride, uint8_t enable_clip_relu_pre, uint8_t unit_flag_mode, uint64_t quant_pre_mode, |
| 100 | - __cbuf__ half* dst, __cc__ int32_t* src, uint16_t n_size, uint16_t m_size, uint32_t dst_stride, | 100 | + uint8_t relu_pre_mode, bool enable_channel_split, bool enable_nz2nd, uint64_t quant_post, |
| 101 | - uint16_t src_stride, uint8_t enable_clip_relu_pre, uint8_t unit_flag_mode, uint64_t quant_pre_mode, | 101 | + uint8_t relu_post, bool clip_relu_post, uint8_t eltwise_op, uint8_t eltwise_antq_en, bool c0_pad_en) |
| 102 | - uint8_t relu_pre_mode, bool enable_channel_split, bool enable_nz2nd, uint64_t quant_post, | 102 | +__aicore__ inline void asc_copy_l0c2l1(__cbuf__ uint8_t* dst, __cc__ int32_t* src, uint16_t n_size, uint16_t m_size, uint32_t dst_stride, |
| 103 | - uint8_t relu_post, bool clip_relu_post, uint8_t eltwise_op, uint8_t eltwise_antq_en, bool c0_pad_en) | 103 | + uint16_t src_stride, uint8_t enable_clip_relu_pre, uint8_t unit_flag_mode, uint64_t quant_pre_mode, |
| 104 | -__aicore__ inline void asc_copy_l0c2l1( | 104 | + uint8_t relu_pre_mode, bool enable_channel_split, bool enable_nz2nd, uint64_t quant_post, |
| 105 | - __cbuf__ int8_t* dst, __cc__ int32_t* src, uint16_t n_size, uint16_t m_size, uint32_t dst_stride, | 105 | + uint8_t relu_post, bool clip_relu_post, uint8_t eltwise_op, uint8_t eltwise_antq_en, bool c0_pad_en) |
| 106 | - uint16_t src_stride, uint8_t enable_clip_relu_pre, uint8_t unit_flag_mode, uint64_t quant_pre_mode, | 106 | +__aicore__ inline void asc_copy_l0c2l1(__cbuf__ int32_t* dst, __cc__ int32_t* src, uint16_t n_size, uint16_t m_size, uint32_t dst_stride, |
| 107 | - uint8_t relu_pre_mode, bool enable_channel_split, bool enable_nz2nd, uint64_t quant_post, | 107 | + uint16_t src_stride, uint8_t enable_clip_relu_pre, uint8_t unit_flag_mode, uint64_t quant_pre_mode, |
| 108 | - uint8_t relu_post, bool clip_relu_post, uint8_t eltwise_op, uint8_t eltwise_antq_en, bool c0_pad_en) | 108 | + uint8_t relu_pre_mode, bool enable_channel_split, bool enable_nz2nd, uint64_t quant_post, |
| 109 | -__aicore__ inline void asc_copy_l0c2l1( | 109 | + uint8_t relu_post, bool clip_relu_post, uint8_t eltwise_op, uint8_t eltwise_antq_en, bool c0_pad_en) |
| 110 | - __cbuf__ uint8_t* dst, __cc__ int32_t* src, uint16_t n_size, uint16_t m_size, uint32_t dst_stride, | 110 | +__aicore__ inline void asc_copy_l0c2l1(__cbuf__ int4b_t* dst, __cc__ float* src, uint16_t n_size, uint16_t m_size, uint32_t dst_stride, |
| 111 | - uint16_t src_stride, uint8_t enable_clip_relu_pre, uint8_t unit_flag_mode, uint64_t quant_pre_mode, | 111 | + uint16_t src_stride, uint8_t l2_cache_mode, uint8_t enable_clip_relu_pre, uint8_t unit_flag_mode, |
| 112 | - uint8_t relu_pre_mode, bool enable_channel_split, bool enable_nz2nd, uint64_t quant_post, | 112 | + uint64_t quant_pre_mode, uint8_t relu_pre_mode, bool enable_channel_split, bool enable_nz2nd, |
| 113 | - uint8_t relu_post, bool clip_relu_post, uint8_t eltwise_op, uint8_t eltwise_antq_en, bool c0_pad_en) | 113 | + uint64_t quant_post, uint8_t relu_post, bool clip_relu_post, uint8_t eltwise_op, |
| 114 | -__aicore__ inline void asc_copy_l0c2l1( | 114 | + bool eltwise_antq_en, bool c0_pad_en, bool broadcast_en, bool enable_nz2dn) |
| 115 | - __cbuf__ int32_t* dst, __cc__ int32_t* src, uint16_t n_size, uint16_t m_size, uint32_t dst_stride, | 115 | +__aicore__ inline void asc_copy_l0c2l1_sync(__cbuf__ int4b_t* dst, __cc__ float* src, uint16_t n_size, uint16_t m_size, uint32_t dst_stride, |
| 116 | - uint16_t src_stride, uint8_t enable_clip_relu_pre, uint8_t unit_flag_mode, uint64_t quant_pre_mode, | 116 | + uint16_t src_stride, uint8_t l2_cache_mode, uint8_t enable_clip_relu_pre, uint8_t unit_flag_mode, |
| 117 | - uint8_t relu_pre_mode, bool enable_channel_split, bool enable_nz2nd, uint64_t quant_post, | 117 | + uint64_t quant_pre_mode, uint8_t relu_pre_mode, bool enable_channel_split, bool enable_nz2nd, |
| 118 | - uint8_t relu_post, bool clip_relu_post, uint8_t eltwise_op, uint8_t eltwise_antq_en, bool c0_pad_en) | 118 | + uint64_t quant_post, uint8_t relu_post, bool clip_relu_post, uint8_t eltwise_op, |
| 119 | -__aicore__ inline void asc_copy_l0c2l1( | 119 | + bool eltwise_antq_en, bool c0_pad_en, bool broadcast_en, bool enable_nz2dn) |
| 120 | - __cbuf__ int4b_t* dst, __cc__ float* src, uint16_t n_size, uint16_t m_size, uint32_t dst_stride, | 120 | +__aicore__ inline void asc_copy_l0c2l1(__cbuf__ int4b_t* dst, __cc__ int32_t* src, uint16_t n_size, uint16_t m_size, uint32_t dst_stride, |
| 121 | - uint16_t src_stride, uint8_t l2_cache_mode, uint8_t enable_clip_relu_pre, uint8_t unit_flag_mode, | 121 | + uint16_t src_stride, uint8_t l2_cache_mode, uint8_t enable_clip_relu_pre, uint8_t unit_flag_mode, |
| 122 | - uint64_t quant_pre_mode, uint8_t relu_pre_mode, bool enable_channel_split, bool enable_nz2nd, | 122 | + uint64_t quant_pre_mode, uint8_t relu_pre_mode, bool enable_channel_split, bool enable_nz2nd, |
| 123 | - uint64_t quant_post, uint8_t relu_post, bool clip_relu_post, uint8_t eltwise_op, | 123 | + uint64_t quant_post, uint8_t relu_post, bool clip_relu_post, uint8_t eltwise_op, |
| 124 | - bool eltwise_antq_en, bool c0_pad_en, bool broadcast_en, bool enable_nz2dn) | 124 | + bool eltwise_antq_en, bool c0_pad_en, bool broadcast_en, bool enable_nz2dn) |
| 125 | -__aicore__ inline void asc_copy_l0c2l1_sync( | 125 | +__aicore__ inline void asc_copy_l0c2l1_sync(__cbuf__ int4b_t* dst, __cc__ int32_t* src, uint16_t n_size, uint16_t m_size, uint32_t dst_stride, |
| 126 | - __cbuf__ int4b_t* dst, __cc__ float* src, uint16_t n_size, uint16_t m_size, uint32_t dst_stride, | 126 | + uint16_t src_stride, uint8_t l2_cache_mode, uint8_t enable_clip_relu_pre, uint8_t unit_flag_mode, |
| 127 | - uint16_t src_stride, uint8_t l2_cache_mode, uint8_t enable_clip_relu_pre, uint8_t unit_flag_mode, | 127 | + uint64_t quant_pre_mode, uint8_t relu_pre_mode, bool enable_channel_split, bool enable_nz2nd, |
| 128 | - uint64_t quant_pre_mode, uint8_t relu_pre_mode, bool enable_channel_split, bool enable_nz2nd, | 128 | + uint64_t quant_post, uint8_t relu_post, bool clip_relu_post, uint8_t eltwise_op, |
| 129 | - uint64_t quant_post, uint8_t relu_post, bool clip_relu_post, uint8_t eltwise_op, | 129 | + bool eltwise_antq_en, bool c0_pad_en, bool broadcast_en, bool enable_nz2dn) |
| 130 | - bool eltwise_antq_en, bool c0_pad_en, bool broadcast_en, bool enable_nz2dn) | ||
| 131 | -__aicore__ inline void asc_copy_l0c2l1( | ||
| 132 | - __cbuf__ int4b_t* dst, __cc__ int32_t* src, uint16_t n_size, uint16_t m_size, uint32_t dst_stride, | ||
| 133 | - uint16_t src_stride, uint8_t l2_cache_mode, uint8_t enable_clip_relu_pre, uint8_t unit_flag_mode, | ||
| 134 | - uint64_t quant_pre_mode, uint8_t relu_pre_mode, bool enable_channel_split, bool enable_nz2nd, | ||
| 135 | - uint64_t quant_post, uint8_t relu_post, bool clip_relu_post, uint8_t eltwise_op, | ||
| 136 | - bool eltwise_antq_en, bool c0_pad_en, bool broadcast_en, bool enable_nz2dn) | ||
| 137 | -__aicore__ inline void asc_copy_l0c2l1_sync( | ||
| 138 | - __cbuf__ int4b_t* dst, __cc__ int32_t* src, uint16_t n_size, uint16_t m_size, uint32_t dst_stride, | ||
| 139 | - uint16_t src_stride, uint8_t l2_cache_mode, uint8_t enable_clip_relu_pre, uint8_t unit_flag_mode, | ||
| 140 | - uint64_t quant_pre_mode, uint8_t relu_pre_mode, bool enable_channel_split, bool enable_nz2nd, | ||
| 141 | - uint64_t quant_post, uint8_t relu_post, bool clip_relu_post, uint8_t eltwise_op, | ||
| 142 | - bool eltwise_antq_en, bool c0_pad_en, bool broadcast_en, bool enable_nz2dn) | ||
| 143 | ``` | 130 | ``` |
| 144 | 131 | ||
| 145 | ## 参数说明 | 132 | ## 参数说明 |
| @@ -61,7 +61,6 @@ | |||
| 61 | 61 | ||
| 62 | ## 参数说明 | 62 | ## 参数说明 |
| 63 | 63 | ||
| 64 | - | ||
| 65 | **表1** 参数说明 | 64 | **表1** 参数说明 |
| 66 | 65 | ||
| 67 | | 参数名 | 输入/输出 | 描述 | | 66 | | 参数名 | 输入/输出 | 描述 | |
| @@ -95,7 +95,7 @@ __aicore__ inline void asc_copy_l0c2l1_sync(__cbuf__ int4b_t* dst, | |||
| 95 | bool enable_nz2dn) | 95 | bool enable_nz2dn) |
| 96 | ``` | 96 | ``` |
| 97 | 97 | ||
| 98 | -### dtype支持的数据类型 | 98 | +### dtype支持数据类型 |
| 99 | 99 | ||
| 100 | `src_dtype`支持`int32_t`、`float`。 | 100 | `src_dtype`支持`int32_t`、`float`。 |
| 101 | 101 | ||
| @@ -80,8 +80,6 @@ | |||
| 80 | 80 | ||
| 81 | ## 函数原型 | 81 | ## 函数原型 |
| 82 | 82 | ||
| 83 | -### 模板原型 | ||
| 84 | - | ||
| 85 | ```cpp | 83 | ```cpp |
| 86 | // 占位符形式 | 84 | // 占位符形式 |
| 87 | __aicore__ inline void asc_copy_l0c2ub(__ubuf__ <dst_dtype>* dst, | 85 | __aicore__ inline void asc_copy_l0c2ub(__ubuf__ <dst_dtype>* dst, |
| @@ -130,7 +128,7 @@ __aicore__ inline void asc_copy_l0c2ub_sync(__ubuf__ <dst_dtype>* dst, | |||
| 130 | bool enable_nz2dn) | 128 | bool enable_nz2dn) |
| 131 | ``` | 129 | ``` |
| 132 | 130 | ||
| 133 | -### dtype支持的数据类型 | 131 | +### dtype支持数据类型 |
| 134 | 132 | ||
| 135 | src dtype与dst dtype支持以下组合: | 133 | src dtype与dst dtype支持以下组合: |
| 136 | 134 | ||
| @@ -41,9 +41,9 @@ __aicore__ inline void asc_copy_l12bt_sync(uint64_t dst, | |||
| 41 | uint32_t size) | 41 | uint32_t size) |
| 42 | ``` | 42 | ``` |
| 43 | 43 | ||
| 44 | -### dtype支持的数据类型 | 44 | +### dtype支持数据类型 |
| 45 | 45 | ||
| 46 | -dtype支持的数据类型为`half`、`bfloat16_t`、`int32_t`、`float`。 | 46 | +`dtype`取值为:`half`、`bfloat16_t`、`int32_t`、`float`。 |
| 47 | 47 | ||
| 48 | ## 参数说明 | 48 | ## 参数说明 |
| 49 | 49 | ||
| @@ -42,7 +42,6 @@ | |||
| 42 | 42 | ||
| 43 | ## 参数说明 | 43 | ## 参数说明 |
| 44 | 44 | ||
| 45 | - | ||
| 46 | **表1** 参数说明 | 45 | **表1** 参数说明 |
| 47 | 46 | ||
| 48 | | 参数名 | 输入/输出 | 描述 | | 47 | | 参数名 | 输入/输出 | 描述 | |
Mdocs/zh/api/SIMD-API/c_api/deprecated_interface/asc_copy_l12l0a_sync_2d_arch_3510_deprecated.md+4-4
| @@ -56,9 +56,9 @@ __aicore__ inline void asc_copy_l12l0a_sync(__ca__ <dtype>* dst, | |||
| 56 | uint16_t dst_stride) | 56 | uint16_t dst_stride) |
| 57 | ``` | 57 | ``` |
| 58 | 58 | ||
| 59 | -### dtype支持的数据类型 | 59 | +#### dtype支持数据类型 |
| 60 | 60 | ||
| 61 | -dtype支持的数据类型为`int4b_t`、`int8_t`、`uint8_t`、`fp4x2_e2m1_t`、`fp4x2_e1m2_t`、`hifloat8_t`、`fp8_e5m2_t`、`fp8_e4m3fn_t`、`int16_t`、`uint16_t`、`half`、`bfloat16_t`、`int32_t`、`uint32_t`、`float`。 | 61 | +`dtype`取值为:`int4b_t`、`int8_t`、`uint8_t`、`fp4x2_e2m1_t`、`fp4x2_e1m2_t`、`hifloat8_t`、`fp8_e5m2_t`、`fp8_e4m3fn_t`、`int16_t`、`uint16_t`、`half`、`bfloat16_t`、`int32_t`、`uint32_t`、`float`。 |
| 62 | 62 | ||
| 63 | ### 2D转置搬运模式 | 63 | ### 2D转置搬运模式 |
| 64 | 64 | ||
| @@ -73,9 +73,9 @@ __aicore__ inline void asc_copy_l12l0a_transpose_sync(__ca__ <dtype>* dst, | |||
| 73 | uint16_t dst_stride) | 73 | uint16_t dst_stride) |
| 74 | ``` | 74 | ``` |
| 75 | 75 | ||
| 76 | -### dtype支持的数据类型 | 76 | +#### dtype支持数据类型 |
| 77 | 77 | ||
| 78 | -dtype支持的数据类型为`int4b_t`、`int8_t`、`uint8_t`、`fp4x2_e2m1_t`、`fp4x2_e1m2_t`、`hifloat8_t`、`fp8_e5m2_t`、`fp8_e4m3fn_t`、`int16_t`、`uint16_t`、`half`、`bfloat16_t`、`int32_t`、`uint32_t`、`float`。 | 78 | +`dtype`取值为:`int4b_t`、`int8_t`、`uint8_t`、`fp4x2_e2m1_t`、`fp4x2_e1m2_t`、`hifloat8_t`、`fp8_e5m2_t`、`fp8_e4m3fn_t`、`int16_t`、`uint16_t`、`half`、`bfloat16_t`、`int32_t`、`uint32_t`、`float`。 |
| 79 | 79 | ||
| 80 | ## 参数说明 | 80 | ## 参数说明 |
| 81 | 81 | ||
Mdocs/zh/api/SIMD-API/c_api/deprecated_interface/asc_copy_l12l0a_sync_3d_arch_3510_deprecated.md+2-2
| @@ -66,9 +66,9 @@ __aicore__ inline void asc_copy_l12l0a_sync(__ca__ <dtype>* dst, | |||
| 66 | uint16_t channel_size) | 66 | uint16_t channel_size) |
| 67 | ``` | 67 | ``` |
| 68 | 68 | ||
| 69 | -#### dtype支持的数据类型 | 69 | +#### dtype支持数据类型 |
| 70 | 70 | ||
| 71 | -dtype支持的数据类型为`int8_t`、`uint8_t`、`hifloat8_t`、`fp8_e5m2_t`、`fp8_e4m3fn_t`、`int16_t`、`uint16_t`、`half`、`bfloat16_t`、`int32_t`、`uint32_t`、`float`。 | 71 | +`dtype`取值为:`int8_t`、`uint8_t`、`hifloat8_t`、`fp8_e5m2_t`、`fp8_e4m3fn_t`、`int16_t`、`uint16_t`、`half`、`bfloat16_t`、`int32_t`、`uint32_t`、`float`。 |
| 72 | 72 | ||
| 73 | ## 参数说明 | 73 | ## 参数说明 |
| 74 | 74 | ||
| @@ -142,8 +142,6 @@ repeatMode =1的时候filter窗口中读取数据的位置保持不变,每个r | |||
| 142 | 142 | ||
| 143 |  | 143 |  |
| 144 | 144 | ||
| 145 | - | ||
| 146 | - | ||
| 147 | ## 调用示例 | 145 | ## 调用示例 |
| 148 | 146 | ||
| 149 | ```cpp | 147 | ```cpp |
| @@ -58,7 +58,7 @@ __aicore__ inline void asc_copy_l12l0b_mx_sync(uint64_t dst, | |||
| 58 | 58 | ||
| 59 | ## 参数说明 | 59 | ## 参数说明 |
| 60 | 60 | ||
| 61 | -**表1** 参数说明 | 61 | +**表1** 参数说明 |
| 62 | 62 | ||
| 63 | | 参数名 | 输入/输出 | 含义 | | 63 | | 参数名 | 输入/输出 | 含义 | |
| 64 | | --- | --- | --- | | 64 | | --- | --- | --- | |
Mdocs/zh/api/SIMD-API/c_api/deprecated_interface/asc_copy_l12l0b_sync_2d_arch_3510_deprecated.md+5-5
| @@ -56,9 +56,9 @@ __aicore__ inline void asc_copy_l12l0b_sync(__cb__ <dtype>* dst, | |||
| 56 | uint16_t dst_stride) | 56 | uint16_t dst_stride) |
| 57 | ``` | 57 | ``` |
| 58 | 58 | ||
| 59 | -### dtype支持的数据类型 | 59 | +#### dtype支持数据类型 |
| 60 | 60 | ||
| 61 | -dtype支持的数据类型为`int4b_t`、`int8_t`、`uint8_t`、`fp4x2_e2m1_t`、`fp4x2_e1m2_t`、`hifloat8_t`、`fp8_e5m2_t`、`fp8_e4m3fn_t`、`int16_t`、`uint16_t`、`half`、`bfloat16_t`、`int32_t`、`uint32_t`、`float`。 | 61 | +`dtype`取值为:`int4b_t`、`int8_t`、`uint8_t`、`fp4x2_e2m1_t`、`fp4x2_e1m2_t`、`hifloat8_t`、`fp8_e5m2_t`、`fp8_e4m3fn_t`、`int16_t`、`uint16_t`、`half`、`bfloat16_t`、`int32_t`、`uint32_t`、`float`。 |
| 62 | 62 | ||
| 63 | ### 2D转置搬运模式 | 63 | ### 2D转置搬运模式 |
| 64 | 64 | ||
| @@ -73,13 +73,13 @@ __aicore__ inline void asc_copy_l12l0b_transpose_sync(__cb__ <dtype>* dst, | |||
| 73 | uint16_t dst_stride) | 73 | uint16_t dst_stride) |
| 74 | ``` | 74 | ``` |
| 75 | 75 | ||
| 76 | -### dtype支持的数据类型 | 76 | +#### dtype支持数据类型 |
| 77 | 77 | ||
| 78 | -dtype支持的数据类型为`int4b_t`、`int8_t`、`uint8_t`、`fp4x2_e2m1_t`、`fp4x2_e1m2_t`、`hifloat8_t`、`fp8_e5m2_t`、`fp8_e4m3fn_t`、`int16_t`、`uint16_t`、`half`、`bfloat16_t`、`int32_t`、`uint32_t`、`float`。 | 78 | +`dtype`取值为:`int4b_t`、`int8_t`、`uint8_t`、`fp4x2_e2m1_t`、`fp4x2_e1m2_t`、`hifloat8_t`、`fp8_e5m2_t`、`fp8_e4m3fn_t`、`int16_t`、`uint16_t`、`half`、`bfloat16_t`、`int32_t`、`uint32_t`、`float`。 |
| 79 | 79 | ||
| 80 | ## 参数说明 | 80 | ## 参数说明 |
| 81 | 81 | ||
| 82 | -**表1** 参数说明 | 82 | +**表1** 参数说明 |
| 83 | 83 | ||
| 84 | | 参数名 | 输入/输出 | 含义 | | 84 | | 参数名 | 输入/输出 | 含义 | |
| 85 | | --- | --- | --- | | 85 | | --- | --- | --- | |
Mdocs/zh/api/SIMD-API/c_api/deprecated_interface/asc_copy_l12l0b_sync_3d_arch_3510_deprecated.md+2-2
| @@ -60,9 +60,9 @@ __aicore__ inline void asc_copy_l12l0b_sync(__cb__ <dtype>* dst, | |||
| 60 | uint16_t channel_size) | 60 | uint16_t channel_size) |
| 61 | ``` | 61 | ``` |
| 62 | 62 | ||
| 63 | -### dtype支持的数据类型 | 63 | +### dtype支持数据类型 |
| 64 | 64 | ||
| 65 | -dtype支持的数据类型为`int8_t`、`uint8_t`、`hifloat8_t`、`fp8_e5m2_t`、`fp8_e4m3fn_t`、`int16_t`、`uint16_t`、`half`、`bfloat16_t`、`int32_t`、`uint32_t`、`float`。 | 65 | +`dtype`取值为:`int8_t`、`uint8_t`、`hifloat8_t`、`fp8_e5m2_t`、`fp8_e4m3fn_t`、`int16_t`、`uint16_t`、`half`、`bfloat16_t`、`int32_t`、`uint32_t`、`float`。 |
| 66 | 66 | ||
| 67 | ## 参数说明 | 67 | ## 参数说明 |
| 68 | 68 | ||
| @@ -139,8 +139,6 @@ repeatMode =1的时候filter窗口中读取数据的位置保持不变,每个r | |||
| 139 | 139 | ||
| 140 |  | 140 |  |
| 141 | 141 | ||
| 142 | - | ||
| 143 | - | ||
| 144 | ## 调用示例 | 142 | ## 调用示例 |
| 145 | 143 | ||
| 146 | ```cpp | 144 | ```cpp |
Mdocs/zh/api/SIMD-API/c_api/deprecated_interface/asc_copy_l12l0b_trans_sync_arch_3510_deprecated.md+2-2
| @@ -108,9 +108,9 @@ __aicore__ inline void asc_copy_l12l0b_trans_sync(__cb__ <dtype>* dst, | |||
| 108 | uint16_t src_frac_gap) | 108 | uint16_t src_frac_gap) |
| 109 | ``` | 109 | ``` |
| 110 | 110 | ||
| 111 | -### dtype支持的数据类型 | 111 | +### dtype支持数据类型 |
| 112 | 112 | ||
| 113 | -dtype支持的数据类型为`int4b_t`、`int8_t`、`uint8_t`、`fp4x2_e2m1_t`、`fp4x2_e1m2_t`、`hifloat8_t`、`fp8_e5m2_t`、`fp8_e4m3fn_t`、`half`、`bfloat16_t`、`int32_t`、`uint32_t`、`float`。 | 113 | +`dtype`取值为:`int4b_t`、`int8_t`、`uint8_t`、`fp4x2_e2m1_t`、`fp4x2_e1m2_t`、`hifloat8_t`、`fp8_e5m2_t`、`fp8_e4m3fn_t`、`half`、`bfloat16_t`、`int32_t`、`uint32_t`、`float`。 |
| 114 | 114 | ||
| 115 | ## 参数说明 | 115 | ## 参数说明 |
| 116 | 116 | ||
| @@ -55,7 +55,6 @@ | |||
| 55 | 55 | ||
| 56 | ## 参数说明 | 56 | ## 参数说明 |
| 57 | 57 | ||
| 58 | - | ||
| 59 | **表1** 参数说明 | 58 | **表1** 参数说明 |
| 60 | 59 | ||
| 61 | | 参数名 | 输入/输出 | 描述 | | 60 | | 参数名 | 输入/输出 | 描述 | |
| @@ -68,7 +68,6 @@ PIPE_V | |||
| 68 | - dst、src的起始地址需要32字节对齐。 | 68 | - dst、src的起始地址需要32字节对齐。 |
| 69 | - 操作数地址重叠约束请参考[通用地址重叠约束](../general_description_and_constraints.md#通用地址重叠约束)。 | 69 | - 操作数地址重叠约束请参考[通用地址重叠约束](../general_description_and_constraints.md#通用地址重叠约束)。 |
| 70 | 70 | ||
| 71 | - | ||
| 72 | ## 调用示例 | 71 | ## 调用示例 |
| 73 | 72 | ||
| 74 | ```cpp | 73 | ```cpp |
| @@ -42,7 +42,7 @@ __aicore__ inline void asc_fill_l1_sync(__cbuf__ <dst_dtype>* dst, | |||
| 42 | const asc_fill_value_config& config) | 42 | const asc_fill_value_config& config) |
| 43 | ``` | 43 | ``` |
| 44 | 44 | ||
| 45 | -### dtype支持的数据类型 | 45 | +### dtype支持数据类型 |
| 46 | 46 | ||
| 47 | dst dtype与value dtype支持以下组合: | 47 | dst dtype与value dtype支持以下组合: |
| 48 | 48 | ||
| @@ -67,8 +67,6 @@ def asc_float2bfloat16_rn_v2(dst, src, mask): | |||
| 67 | 67 | ||
| 68 | ## 函数原型 | 68 | ## 函数原型 |
| 69 | 69 | ||
| 70 | -### 模板原型 | ||
| 71 | - | ||
| 72 | ```c | 70 | ```c |
| 73 | // 占位符形式 | 71 | // 占位符形式 |
| 74 | __simd_callee__ inline void asc_float2bfloat16_<round_mode><sat_mode><position_mode>(vector_bfloat16_t& dst, | 72 | __simd_callee__ inline void asc_float2bfloat16_<round_mode><sat_mode><position_mode>(vector_bfloat16_t& dst, |
| @@ -24,7 +24,6 @@ | |||
| 24 | - Atlas训练系列产品:不支持 | 24 | - Atlas训练系列产品:不支持 |
| 25 | <!-- end id7 --> | 25 | <!-- end id7 --> |
| 26 | 26 | ||
| 27 | - | ||
| 28 | ## 功能说明 | 27 | ## 功能说明 |
| 29 | 28 | ||
| 30 | 头文件路径为:`"c_api/reg_compute/reg_convert.h"`。 | 29 | 头文件路径为:`"c_api/reg_compute/reg_convert.h"`。 |
| @@ -42,9 +42,6 @@ | |||
| 42 | 42 | ||
| 43 | * 前n个数据计算 | 43 | * 前n个数据计算 |
| 44 | 44 | ||
| 45 | - | ||
| 46 | - | ||
| 47 | - | ||
| 48 | - 同步计算 | 45 | - 同步计算 |
| 49 | 46 | ||
| 50 | ```cpp | 47 | ```cpp |
| @@ -40,10 +40,6 @@ | |||
| 40 | 40 | ||
| 41 | ## 函数原型 | 41 | ## 函数原型 |
| 42 | 42 | ||
| 43 | - | ||
| 44 | - | ||
| 45 | - | ||
| 46 | - | ||
| 47 | - 同步计算 | 43 | - 同步计算 |
| 48 | 44 | ||
| 49 | ```cpp | 45 | ```cpp |
| @@ -61,8 +61,6 @@ def asc_half2float_v2(dst, src, mask): | |||
| 61 | 61 | ||
| 62 | ## 函数原型 | 62 | ## 函数原型 |
| 63 | 63 | ||
| 64 | -### 模板原型 | ||
| 65 | - | ||
| 66 | ```c | 64 | ```c |
| 67 | // 占位符形式 | 65 | // 占位符形式 |
| 68 | __simd_callee__ inline void asc_half2float<position_mode>(vector_float& dst, | 66 | __simd_callee__ inline void asc_half2float<position_mode>(vector_float& dst, |
| @@ -36,9 +36,6 @@ | |||
| 36 | 36 | ||
| 37 | * 前n个数据计算 | 37 | * 前n个数据计算 |
| 38 | 38 | ||
| 39 | - | ||
| 40 | - | ||
| 41 | - | ||
| 42 | - 同步计算 | 39 | - 同步计算 |
| 43 | 40 | ||
| 44 | ```cpp | 41 | ```cpp |
| @@ -66,8 +66,6 @@ def asc_half2hif8_rna_v2(dst, src, mask): | |||
| 66 | 66 | ||
| 67 | ## 函数原型 | 67 | ## 函数原型 |
| 68 | 68 | ||
| 69 | -### 模板原型 | ||
| 70 | - | ||
| 71 | ```c | 69 | ```c |
| 72 | // 占位符形式 | 70 | // 占位符形式 |
| 73 | __simd_callee__ inline void asc_half2hif8_<round_mode><sat_mode><position_mode>(vector_hifloat8_t& dst, | 71 | __simd_callee__ inline void asc_half2hif8_<round_mode><sat_mode><position_mode>(vector_hifloat8_t& dst, |
| @@ -63,8 +63,6 @@ def asc_half2int32_rd_v2(dst, src, mask): | |||
| 63 | 63 | ||
| 64 | ## 函数原型 | 64 | ## 函数原型 |
| 65 | 65 | ||
| 66 | -### 模板原型 | ||
| 67 | - | ||
| 68 | ```c | 66 | ```c |
| 69 | // 占位符形式 | 67 | // 占位符形式 |
| 70 | __simd_callee__ inline void asc_half2int32_<round_mode><position_mode>(vector_int32_t& dst, | 68 | __simd_callee__ inline void asc_half2int32_<round_mode><position_mode>(vector_int32_t& dst, |
| @@ -42,9 +42,6 @@ | |||
| 42 | 42 | ||
| 43 | * 前n个数据计算 | 43 | * 前n个数据计算 |
| 44 | 44 | ||
| 45 | - | ||
| 46 | - | ||
| 47 | - | ||
| 48 | - 同步计算 | 45 | - 同步计算 |
| 49 | 46 | ||
| 50 | ```cpp | 47 | ```cpp |
| @@ -66,8 +66,6 @@ def asc_half2int8_rd_v2(dst, src, mask): | |||
| 66 | 66 | ||
| 67 | ## 函数原型 | 67 | ## 函数原型 |
| 68 | 68 | ||
| 69 | -### 模板原型 | ||
| 70 | - | ||
| 71 | ```c | 69 | ```c |
| 72 | // 占位符形式 | 70 | // 占位符形式 |
| 73 | __simd_callee__ inline void asc_half2int8_<round_mode><sat_mode><position_mode>(vector_int8_t& dst, | 71 | __simd_callee__ inline void asc_half2int8_<round_mode><sat_mode><position_mode>(vector_int8_t& dst, |
| @@ -40,10 +40,6 @@ | |||
| 40 | 40 | ||
| 41 | ## 函数原型 | 41 | ## 函数原型 |
| 42 | 42 | ||
| 43 | - | ||
| 44 | - | ||
| 45 | - | ||
| 46 | - | ||
| 47 | - 同步计算 | 43 | - 同步计算 |
| 48 | 44 | ||
| 49 | ```cpp | 45 | ```cpp |
| @@ -66,8 +66,6 @@ def asc_half2uint8_rd_v2(dst, src, mask): | |||
| 66 | 66 | ||
| 67 | ## 函数原型 | 67 | ## 函数原型 |
| 68 | 68 | ||
| 69 | -### 模板原型 | ||
| 70 | - | ||
| 71 | ```c | 69 | ```c |
| 72 | // 占位符形式 | 70 | // 占位符形式 |
| 73 | __simd_callee__ inline void asc_half2uint8_<round_mode><sat_mode><position_mode>(vector_uint8_t& dst, | 71 | __simd_callee__ inline void asc_half2uint8_<round_mode><sat_mode><position_mode>(vector_uint8_t& dst, |
| @@ -66,8 +66,6 @@ def asc_int322int16_v2(dst, src, mask): | |||
| 66 | 66 | ||
| 67 | ## 函数原型 | 67 | ## 函数原型 |
| 68 | 68 | ||
| 69 | -### 模板原型 | ||
| 70 | - | ||
| 71 | ```c | 69 | ```c |
| 72 | // 占位符形式 | 70 | // 占位符形式 |
| 73 | __simd_callee__ inline void asc_int322int16<sat_mode><position_mode>(vector_int16_t& dst, | 71 | __simd_callee__ inline void asc_int322int16<sat_mode><position_mode>(vector_int16_t& dst, |
| @@ -61,8 +61,6 @@ def asc_int322int64_v2(dst, src, mask): | |||
| 61 | 61 | ||
| 62 | ## 函数原型 | 62 | ## 函数原型 |
| 63 | 63 | ||
| 64 | -### 模板原型 | ||
| 65 | - | ||
| 66 | ```c | 64 | ```c |
| 67 | // 占位符形式 | 65 | // 占位符形式 |
| 68 | __simd_callee__ inline void asc_int322int64<position_mode>(vector_int64_t& dst, | 66 | __simd_callee__ inline void asc_int322int64<position_mode>(vector_int64_t& dst, |
| @@ -66,8 +66,6 @@ def asc_int322uint16_v2(dst, src, mask): | |||
| 66 | 66 | ||
| 67 | ## 函数原型 | 67 | ## 函数原型 |
| 68 | 68 | ||
| 69 | -### 模板原型 | ||
| 70 | - | ||
| 71 | ```c | 69 | ```c |
| 72 | // 占位符形式 | 70 | // 占位符形式 |
| 73 | __simd_callee__ inline void asc_int322uint16<sat_mode><position_mode>(vector_uint16_t& dst, | 71 | __simd_callee__ inline void asc_int322uint16<sat_mode><position_mode>(vector_uint16_t& dst, |
| @@ -51,7 +51,6 @@ $$ | |||
| 51 | 51 | ||
| 52 | ## 参数说明 | 52 | ## 参数说明 |
| 53 | 53 | ||
| 54 | - | ||
| 55 | **表1** 参数说明 | 54 | **表1** 参数说明 |
| 56 | 55 | ||
| 57 | | 参数名 | 输入/输出 | 描述 | | 56 | | 参数名 | 输入/输出 | 描述 | |
| @@ -42,7 +42,6 @@ Atlas A2系列产品 | |||
| 42 | **入参带有`feat_offset`参数的`asc_mmad`、`asc_mmad_s4`接口以及全部`asc_mmad_sync`、`asc_mmad_s4_sync`接口已废弃。带`feat_offset`参数的接口请改用不带该参数且使用`asc_unit_flag_mode`的对应接口。** | 42 | **入参带有`feat_offset`参数的`asc_mmad`、`asc_mmad_s4`接口以及全部`asc_mmad_sync`、`asc_mmad_s4_sync`接口已废弃。带`feat_offset`参数的接口请改用不带该参数且使用`asc_unit_flag_mode`的对应接口。** |
| 43 | <!-- end id18 --> | 43 | <!-- end id18 --> |
| 44 | 44 | ||
| 45 | - | ||
| 46 | 本接口是Ascend C面向昇腾AI芯片的矩阵乘加(Mmad)核心计算接口,专为高性能算子开发设计,封装了昇腾NPU硬件的矩阵乘加计算能力,广泛用于神经网络层(如全连接层、卷积层)、数值计算类算子的开发,其计算公式如下: | 45 | 本接口是Ascend C面向昇腾AI芯片的矩阵乘加(Mmad)核心计算接口,专为高性能算子开发设计,封装了昇腾NPU硬件的矩阵乘加计算能力,广泛用于神经网络层(如全连接层、卷积层)、数值计算类算子的开发,其计算公式如下: |
| 47 | 46 | ||
| 48 | $$ | 47 | $$ |
| @@ -110,7 +109,7 @@ __aicore__ inline void asc_mmad_sync(__cc__ <c_dtype>* c_matrix, | |||
| 110 | bool c_matrix_init_val) | 109 | bool c_matrix_init_val) |
| 111 | ``` | 110 | ``` |
| 112 | 111 | ||
| 113 | -**dtype支持的数据类型:** | 112 | +#### dtype支持数据类型 |
M | |||
| 114 | 113 | ||
| 115 | `c_dtype`、`a_dtype`、`b_dtype`的取值组合见下表: | 114 | `c_dtype`、`a_dtype`、`b_dtype`的取值组合见下表: |
| 116 | 115 | ||
| @@ -128,7 +127,7 @@ __aicore__ inline void asc_mmad_sync(__cc__ <c_dtype>* c_matrix, | |||
| 128 | | `bfloat16_t` | `bfloat16_t` | `float` | `float` | | 127 | | `bfloat16_t` | `bfloat16_t` | `float` | `float` | |
| 129 | | `float` | `float` | `float` | `float` | | 128 | | `float` | `float` | `float` | `float` | |
| 130 | 129 | ||
| 131 | -**典型示例:** | 130 | +#### 函数原型典型示例 |
| 132 | 131 | ||
| 133 | ```c | 132 | ```c |
| 134 | __aicore__ inline void asc_mmad(__cc__ float* c_matrix, | 133 | __aicore__ inline void asc_mmad(__cc__ float* c_matrix, |
| @@ -151,22 +150,169 @@ __aicore__ inline void asc_mmad(__cc__ float* c_matrix, | |||
| 151 | - `asc_mmad`及`asc_mmad_sync`: | 150 | - `asc_mmad`及`asc_mmad_sync`: |
| 152 | 151 | ||
| 153 | ```c | 152 | ```c |
| 154 | - __aicore__ inline void asc_mmad(__cc__ <c_dtype>* c_matrix, __ca__ <a_dtype>* a_matrix, __cb__ <b_dtype>* b_matrix, uint16_t left_height, uint16_t n_dim, uint16_t right_width, uint8_t unit_flag, bool k_direction_align, bool c_matrix_source, bool c_matrix_init_val) | 153 | + // 占位符形式 |
| 155 | - __aicore__ inline void asc_mmad(__cc__ <c_dtype>* c_matrix, __ca__ <a_dtype>* a_matrix, __cb__ <b_dtype>* b_matrix, uint16_t left_height, uint16_t n_dim, uint16_t right_width, uint8_t feat_offset, uint8_t smask_offset, uint8_t unit_flag, bool k_direction_align, bool is_weight_offset, bool c_matrix_source, bool c_matrix_init_val) | 154 | + __aicore__ inline void asc_mmad(__cc__ <c_dtype>* c_matrix, |
| 156 | - __aicore__ inline void asc_mmad_sync(__cc__ <c_dtype>* c_matrix, __ca__ <a_dtype>* a_matrix, __cb__ <b_dtype>* b_matrix, uint16_t left_height, uint16_t n_dim, uint16_t right_width, uint8_t unit_flag, bool k_direction_align, bool c_matrix_source, bool c_matrix_init_val) | 155 | + __ca__ <a_dtype>* a_matrix, |
| 157 | - __aicore__ inline void asc_mmad_sync(__cc__ <c_dtype>* c_matrix, __ca__ <a_dtype>* a_matrix, __cb__ <b_dtype>* b_matrix, uint16_t left_height, uint16_t n_dim, uint16_t right_width, uint8_t feat_offset, uint8_t smask_offset, uint8_t unit_flag, bool k_direction_align, bool is_weight_offset, bool c_matrix_source, bool c_matrix_init_val) | 156 | + __cb__ <b_dtype>* b_matrix, |
| 157 | + uint16_t left_height, | ||
| 158 | + uint16_t n_dim, | ||
| 159 | + uint16_t right_width, | ||
| 160 | + uint8_t unit_flag, | ||
| 161 | + bool k_direction_align, | ||
| 162 | + bool c_matrix_source, | ||
| 163 | + bool c_matrix_init_val) | ||
| 164 | + | ||
| 165 | + __aicore__ inline void asc_mmad(__cc__ <c_dtype>* c_matrix, | ||
| 166 | + __ca__ <a_dtype>* a_matrix, | ||
| 167 | + __cb__ <b_dtype>* b_matrix, | ||
| 168 | + uint16_t left_height, | ||
| 169 | + uint16_t n_dim, | ||
| 170 | + uint16_t right_width, | ||
| 171 | + uint8_t feat_offset, | ||
| 172 | + uint8_t smask_offset, | ||
| 173 | + uint8_t unit_flag, | ||
| 174 | + bool k_direction_align, | ||
| 175 | + bool is_weight_offset, | ||
| 176 | + bool c_matrix_source, | ||
| 177 | + bool c_matrix_init_val) | ||
| 178 | + | ||
| 179 | + __aicore__ inline void asc_mmad_sync(__cc__ <c_dtype>* c_matrix, | ||
| 180 | + __ca__ <a_dtype>* a_matrix, | ||
| 181 | + __cb__ <b_dtype>* b_matrix, | ||
| 182 | + uint16_t left_height, | ||
| 183 | + uint16_t n_dim, | ||
| 184 | + uint16_t right_width, | ||
| 185 | + uint8_t unit_flag, | ||
| 186 | + bool k_direction_align, | ||
| 187 | + bool c_matrix_source, | ||
| 188 | + bool c_matrix_init_val) | ||
| 189 | + | ||
| 190 | + __aicore__ inline void asc_mmad_sync(__cc__ <c_dtype>* c_matrix, | ||
| 191 | + __ca__ <a_dtype>* a_matrix, | ||
| 192 | + __cb__ <b_dtype>* b_matrix, | ||
| 193 | + uint16_t left_height, | ||
| 194 | + uint16_t n_dim, | ||
| 195 | + uint16_t right_width, | ||
| 196 | + uint8_t feat_offset, | ||
| 197 | + uint8_t smask_offset, | ||
| 198 | + uint8_t unit_flag, | ||
| 199 | + bool k_direction_align, | ||
| 200 | + bool is_weight_offset, | ||
| 201 | + bool c_matrix_source, | ||
| 202 | + bool c_matrix_init_val) | ||
| 158 | ``` | 203 | ``` |
| 159 | 204 | ||
| 160 | - `c_dtype`、`a_dtype`、`b_dtype`支持以下组合:`float/bfloat16_t/bfloat16_t`、`float/half/half`、`float/float/float`和`int32_t/int8_t/int8_t`。 | 205 | +#### dtype支持数据类型 |
| 206 | + | ||
| 207 | +`c_dtype`、`a_dtype`、`b_dtype`支持以下组合:`float/bfloat16_t/bfloat16_t`、`float/half/half`、`float/float/float`和`int32_t/int8_t/int8_t`。 | ||
| 161 | 208 | ||
| 162 | - `asc_mmad_s4`及`asc_mmad_s4_sync`: | 209 | - `asc_mmad_s4`及`asc_mmad_s4_sync`: |
| 163 | 210 | ||
| 164 | ```c | 211 | ```c |
| 165 | - __aicore__ inline void asc_mmad_s4(__cc__ int32_t* c_matrix, __ca__ int4b_t* a_matrix, __cb__ int4b_t* b_matrix, uint16_t left_height, uint16_t n_dim, uint16_t right_width, uint8_t unit_flag, bool k_direction_align, bool c_matrix_source, bool c_matrix_init_val) | 212 | + __aicore__ inline void asc_mmad_s4(__cc__ int32_t* c_matrix, |
| 166 | - __aicore__ inline void asc_mmad_s4(__cc__ int32_t* c_matrix, __ca__ int4b_t* a_matrix, __cb__ int4b_t* b_matrix, uint16_t left_height, uint16_t n_dim, uint16_t right_width, uint8_t feat_offset, uint8_t smask_offset, uint8_t unit_flag, bool k_direction_align, bool is_weight_offset, bool c_matrix_source, bool c_matrix_init_val) | 213 | + __ca__ int4b_t* a_matrix, |
| 167 | - __aicore__ inline void asc_mmad_s4_sync(__cc__ int32_t* c_matrix, __ca__ int4b_t* a_matrix, __cb__ int4b_t* b_matrix, uint16_t left_height, uint16_t n_dim, uint16_t right_width, uint8_t unit_flag, bool k_direction_align, bool c_matrix_source, bool c_matrix_init_val) | 214 | + __cb__ int4b_t* b_matrix, |
| 168 | - __aicore__ inline void asc_mmad_s4_sync(__cc__ int32_t* c_matrix, __ca__ int4b_t* a_matrix, __cb__ int4b_t* b_matrix, uint16_t left_height, uint16_t n_dim, uint16_t right_width, uint8_t feat_offset, uint8_t smask_offset, uint8_t unit_flag, bool k_direction_align, bool is_weight_offset, bool c_matrix_source, bool c_matrix_init_val) | 215 | + uint16_t left_height, |
| 216 | + uint16_t n_dim, | ||
| 217 | + uint16_t right_width, | ||
| 218 | + uint8_t unit_flag, | ||
| 219 | + bool k_direction_align, | ||
| 220 | + bool c_matrix_source, | ||
| 221 | + bool c_matrix_init_val) | ||
| 222 | + | ||
| 223 | + __aicore__ inline void asc_mmad_s4(__cc__ int32_t* c_matrix, | ||
| 224 | + __ca__ int4b_t* a_matrix, | ||
| 225 | + __cb__ int4b_t* b_matrix, | ||
| 226 | + uint16_t left_height, | ||
| 227 | + uint16_t n_dim, | ||
| 228 | + uint16_t right_width, | ||
| 229 | + uint8_t feat_offset, | ||
| 230 | + uint8_t smask_offset, | ||
| 231 | + uint8_t unit_flag, | ||
| 232 | + bool k_direction_align, | ||
| 233 | + bool is_weight_offset, | ||
| 234 | + bool c_matrix_source, | ||
| 235 | + bool c_matrix_init_val) | ||
| 236 | + | ||
| 237 | + __aicore__ inline void asc_mmad_s4_sync(__cc__ int32_t* c_matrix, | ||
| 238 | + __ca__ int4b_t* a_matrix, | ||
| 239 | + __cb__ int4b_t* b_matrix, | ||
| 240 | + uint16_t left_height, | ||
| 241 | + uint16_t n_dim, | ||
| 242 | + uint16_t right_width, | ||
| 243 | + uint8_t unit_flag, | ||
| 244 | + bool k_direction_align, | ||
| 245 | + bool c_matrix_source, | ||
| 246 | + bool c_matrix_init_val) | ||
| 247 | + | ||
| 248 | + __aicore__ inline void asc_mmad_s4_sync(__cc__ int32_t* c_matrix, | ||
| 249 | + __ca__ int4b_t* a_matrix, | ||
| 250 | + __cb__ int4b_t* b_matrix, | ||
| 251 | + uint16_t left_height, | ||
| 252 | + uint16_t n_dim, | ||
| 253 | + uint16_t right_width, | ||
| 254 | + uint8_t feat_offset, | ||
| 255 | + uint8_t smask_offset, | ||
| 256 | + uint8_t unit_flag, | ||
| 257 | + bool k_direction_align, | ||
| 258 | + bool is_weight_offset, | ||
| 259 | + bool c_matrix_source, | ||
| 260 | + bool c_matrix_init_val) | ||
| 169 | ``` | 261 | ``` |
| 262 | + | ||
| 263 | +#### 函数原型典型示例 | ||
| 264 | + | ||
| 265 | +```c | ||
| 266 | +__aicore__ inline void asc_mmad(__cc__ float* c_matrix, | ||
| 267 | + __ca__ bfloat16_t* a_matrix, | ||
| 268 | + __cb__ bfloat16_t* b_matrix, | ||
| 269 | + uint16_t left_height, | ||
| 270 | + uint16_t n_dim, | ||
| 271 | + uint16_t right_width, | ||
| 272 | + uint8_t unit_flag, | ||
| 273 | + bool k_direction_align, | ||
| 274 | + bool c_matrix_source, | ||
| 275 | + bool c_matrix_init_val) | ||
| 276 | + | ||
| 277 | +__aicore__ inline void asc_mmad(__cc__ float* c_matrix, | ||
| 278 | + __ca__ bfloat16_t* a_matrix, | ||
| 279 | + __cb__ bfloat16_t* b_matrix, | ||
| 280 | + uint16_t left_height, | ||
| 281 | + uint16_t n_dim, | ||
| 282 | + uint16_t right_width, | ||
| 283 | + uint8_t feat_offset, | ||
| 284 | + uint8_t smask_offset, | ||
| 285 | + uint8_t unit_flag, | ||
| 286 | + bool k_direction_align, | ||
| 287 | + bool is_weight_offset, | ||
| 288 | + bool c_matrix_source, | ||
| 289 | + bool c_matrix_init_val) | ||
| 290 | + | ||
| 291 | +__aicore__ inline void asc_mmad_sync(__cc__ float* c_matrix, | ||
| 292 | + __ca__ bfloat16_t* a_matrix, | ||
| 293 | + __cb__ bfloat16_t* b_matrix, | ||
| 294 | + uint16_t left_height, | ||
| 295 | + uint16_t n_dim, | ||
| 296 | + uint16_t right_width, | ||
| 297 | + uint8_t unit_flag, | ||
| 298 | + bool k_direction_align, | ||
| 299 | + bool c_matrix_source, | ||
| 300 | + bool c_matrix_init_val) | ||
| 301 | + | ||
| 302 | +__aicore__ inline void asc_mmad_sync(__cc__ float* c_matrix, | ||
| 303 | + __ca__ bfloat16_t* a_matrix, | ||
| 304 | + __cb__ bfloat16_t* b_matrix, | ||
| 305 | + uint16_t left_height, | ||
| 306 | + uint16_t n_dim, | ||
| 307 | + uint16_t right_width, | ||
| 308 | + uint8_t feat_offset, | ||
| 309 | + uint8_t smask_offset, | ||
| 310 | + uint8_t unit_flag, | ||
| 311 | + bool k_direction_align, | ||
| 312 | + bool is_weight_offset, | ||
| 313 | + bool c_matrix_source, | ||
| 314 | + bool c_matrix_init_val) | ||
| 315 | +``` | ||
| 170 | <!-- end id20 --> | 316 | <!-- end id20 --> |
| 171 | 317 | ||
| 172 | ## 参数说明 | 318 | ## 参数说明 |
| @@ -82,7 +82,7 @@ __aicore__ inline void asc_mmad_mx_sync(__cc__ float* c_matrix, | |||
| 82 | bool c_matrix_init_val) | 82 | bool c_matrix_init_val) |
| 83 | ``` | 83 | ``` |
| 84 | 84 | ||
| 85 | -**dtype支持的数据类型:** | 85 | +### dtype支持数据类型 |
| 86 | 86 | ||
| 87 | `a_dtype`、`b_dtype`的取值组合见下表: | 87 | `a_dtype`、`b_dtype`的取值组合见下表: |
| 88 | 88 | ||
| @@ -99,7 +99,7 @@ __aicore__ inline void asc_mmad_mx_sync(__cc__ float* c_matrix, | |||
| 99 | | `fp8_e5m2_t` | `fp8_e4m3fn_t` | `fp8_e8m0_t` | `float` | `float` | | 99 | | `fp8_e5m2_t` | `fp8_e4m3fn_t` | `fp8_e8m0_t` | `float` | `float` | |
| 100 | | `fp8_e5m2_t` | `fp8_e5m2_t` | `fp8_e8m0_t` | `float` | `float` | | 100 | | `fp8_e5m2_t` | `fp8_e5m2_t` | `fp8_e8m0_t` | `float` | `float` | |
| 101 | 101 | ||
| 102 | -**典型示例:** | 102 | +### 函数原型典型示例 |
| 103 | 103 | ||
| 104 | ```c | 104 | ```c |
| 105 | __aicore__ inline void asc_mmad_mx(__cc__ float* c_matrix, | 105 | __aicore__ inline void asc_mmad_mx(__cc__ float* c_matrix, |
| @@ -79,7 +79,6 @@ PIPE_V | |||
| 79 | - dst的起始地址,输入类型为half时需要4字节对齐,输入类型为float时需要8字节对齐。 | 79 | - dst的起始地址,输入类型为half时需要4字节对齐,输入类型为float时需要8字节对齐。 |
| 80 | - src的起始地址需要32字节对齐。 | 80 | - src的起始地址需要32字节对齐。 |
| 81 | 81 | ||
| 82 | - | ||
| 83 | ## 调用示例 | 82 | ## 调用示例 |
| 84 | 83 | ||
| 85 | ```cpp | 84 | ```cpp |
| @@ -79,7 +79,6 @@ PIPE_V | |||
| 79 | - dst的起始地址,输入类型为half时需要4字节对齐,输入类型为float时需要8字节对齐。 | 79 | - dst的起始地址,输入类型为half时需要4字节对齐,输入类型为float时需要8字节对齐。 |
| 80 | - src的起始地址需要32字节对齐。 | 80 | - src的起始地址需要32字节对齐。 |
| 81 | 81 | ||
| 82 | - | ||
| 83 | ## 调用示例 | 82 | ## 调用示例 |
| 84 | 83 | ||
| 85 | ```cpp | 84 | ```cpp |
| @@ -69,10 +69,8 @@ PIPE_V | |||
| 69 | - dst的起始地址,输入类型为half时需要2字节对齐,输入类型为float时需要4字节对齐。 | 69 | - dst的起始地址,输入类型为half时需要2字节对齐,输入类型为float时需要4字节对齐。 |
| 70 | - src的起始地址需要32字节对齐。 | 70 | - src的起始地址需要32字节对齐。 |
| 71 | 71 | ||
| 72 | - | ||
| 73 | ## 调用示例 | 72 | ## 调用示例 |
| 74 | 73 | ||
| 75 | - | ||
| 76 | ```cpp | 74 | ```cpp |
| 77 | // 示例计算256个half的和,分2次迭代完成,计算结果为2组求和的值 | 75 | // 示例计算256个half的和,分2次迭代完成,计算结果为2组求和的值 |
| 78 | constexpr uint32_t total_length = 256; | 76 | constexpr uint32_t total_length = 256; |
| @@ -44,7 +44,6 @@ | |||
| 44 | | 39:32 | 在QS162S16_POST,QF162S16_POST,SHIFT2S16_POST和SHIFT2S32_POST量化模式中表示s17偏移量中的高8位. | | 44 | | 39:32 | 在QS162S16_POST,QF162S16_POST,SHIFT2S16_POST和SHIFT2S32_POST量化模式中表示s17偏移量中的高8位. | |
| 45 | | 44:40 | 在SHIFT2S4_POST,SHIFT2B8_POST,SHIFT2S16_POST和SHIFT2S32_POST量化模式中表示位移值。 | | 45 | | 44:40 | 在SHIFT2S4_POST,SHIFT2B8_POST,SHIFT2S16_POST和SHIFT2S32_POST量化模式中表示位移值。 | |
| 46 | 46 | ||
| 47 | - | ||
| 48 | ## 函数原型 | 47 | ## 函数原型 |
| 49 | 48 | ||
| 50 | ```cpp | 49 | ```cpp |
| @@ -50,11 +50,11 @@ NCHW格式转换成NC1HWC0格式时,如果是数据类型的位宽为32位或 | |||
| 50 | 50 | ||
| 51 | ```cpp | 51 | ```cpp |
| 52 | __aicore__ inline void asc_transto5hd_b32_sync(ub_addr8_t dst, ub_addr8_t src, uint8_t repeat, | 52 | __aicore__ inline void asc_transto5hd_b32_sync(ub_addr8_t dst, ub_addr8_t src, uint8_t repeat, |
| 53 | - uint16_t dst_stride, uint16_t src_stride) | 53 | + uint16_t dst_stride, uint16_t src_stride) |
| 54 | __aicore__ inline void asc_transto5hd_b16_sync(ub_addr8_t dst, ub_addr8_t src, uint8_t repeat, | 54 | __aicore__ inline void asc_transto5hd_b16_sync(ub_addr8_t dst, ub_addr8_t src, uint8_t repeat, |
| 55 | - uint16_t dst_stride, uint16_t src_stride) | 55 | + uint16_t dst_stride, uint16_t src_stride) |
| 56 | __aicore__ inline void asc_transto5hd_b8_sync(ub_addr8_t dst, ub_addr8_t src, uint8_t repeat, | 56 | __aicore__ inline void asc_transto5hd_b8_sync(ub_addr8_t dst, ub_addr8_t src, uint8_t repeat, |
| 57 | - uint16_t dst_stride, uint16_t src_stride, bool dst_high_half, bool src_high_half) | 57 | + uint16_t dst_stride, uint16_t src_stride, bool dst_high_half, bool src_high_half) |
| 58 | ``` | 58 | ``` |
| 59 | 59 | ||
| 60 | ## 参数说明 | 60 | ## 参数说明 |
| @@ -24,7 +24,6 @@ | |||
| 24 | - Atlas训练系列产品:不支持 | 24 | - Atlas训练系列产品:不支持 |
| 25 | <!-- end id7 --> | 25 | <!-- end id7 --> |
| 26 | 26 | ||
| 27 | - | ||
| 28 | ## 功能说明 | 27 | ## 功能说明 |
| 29 | 28 | ||
| 30 | 头文件路径为:`"c_api/reg_compute/reg_convert.h"`。 | 29 | 头文件路径为:`"c_api/reg_compute/reg_convert.h"`。 |
| @@ -33,7 +33,7 @@ | |||
| 33 | 本接口用于获取指定流水线对应发射队列(Issue Queue)当前的空闲槽位数量。空闲槽位表示发射队列还能接收的待发射指令数量,可用于观察队列占用情况。包含以下六个函数,各函数查询的流水线、适用的AI Core和最大空闲槽位数量如下: | 33 | 本接口用于获取指定流水线对应发射队列(Issue Queue)当前的空闲槽位数量。空闲槽位表示发射队列还能接收的待发射指令数量,可用于观察队列占用情况。包含以下六个函数,各函数查询的流水线、适用的AI Core和最大空闲槽位数量如下: |
| 34 | 34 | ||
| 35 | <a id="table1"></a> | 35 | <a id="table1"></a> |
| 36 | -**表1** 接口、流水线与最大值对应关系 | 36 | +**表1** 接口、流水线与最大值对应关系 |
| 37 | 37 | ||
| 38 | | 函数 | 被查询的流水线 | 适用AI Core | 最大空闲槽位数量 | | 38 | | 函数 | 被查询的流水线 | 适用AI Core | 最大空闲槽位数量 | |
| 39 | | --- | --- | --- | --- | | 39 | | --- | --- | --- | --- | |
| @@ -91,7 +91,7 @@ __simd_callee__ inline void asc_loadalign(vector_bool& dst, | |||
| 91 | 91 | ||
| 92 | #### dtype支持数据类型 | 92 | #### dtype支持数据类型 |
| 93 | 93 | ||
| 94 | -dtype支持的数据类型为`int4b_t`、`int8_t`、`uint8_t`、`fp4x2_e2m1_t`、`fp4x2_e1m2_t`、`hifloat8_t`、`fp8_e8m0_t`、`fp8_e5m2_t`、`fp8_e4m3fn_t`、`int16_t`、`uint16_t`、`half`、`bfloat16_t`、`int32_t`、`uint32_t`、`float`、`int64_t`、`uint64_t`。当dtype为`int4b_t`时,dst的实际类型为`vector_int4x2_t`。 | 94 | +`dtype`取值为:`int4b_t`、`int8_t`、`uint8_t`、`fp4x2_e2m1_t`、`fp4x2_e1m2_t`、`hifloat8_t`、`fp8_e8m0_t`、`fp8_e5m2_t`、`fp8_e4m3fn_t`、`int16_t`、`uint16_t`、`half`、`bfloat16_t`、`int32_t`、`uint32_t`、`float`、`int64_t`、`uint64_t`。当`dtype`为`int4b_t`时,dst的实际类型为`vector_int4x2_t`。 |
| 95 | 95 | ||
| 96 | #### 函数原型典型示例 | 96 | #### 函数原型典型示例 |
| 97 | 97 | ||
| @@ -117,7 +117,7 @@ __simd_callee__ inline void asc_loadalign(vector_bool& dst, | |||
| 117 | 117 | ||
| 118 | #### dtype支持数据类型 | 118 | #### dtype支持数据类型 |
| 119 | 119 | ||
| 120 | -dtype支持的数据类型为`int4b_t`、`int8_t`、`uint8_t`、`fp4x2_e2m1_t`、`fp4x2_e1m2_t`、`hifloat8_t`、`fp8_e8m0_t`、`fp8_e5m2_t`、`fp8_e4m3fn_t`、`int16_t`、`uint16_t`、`half`、`bfloat16_t`、`int32_t`、`uint32_t`、`float`、`int64_t`、`uint64_t`。当dtype为`int4b_t`时,dst的实际类型为`vector_int4x2_t`。 | 120 | +`dtype`取值为:`int4b_t`、`int8_t`、`uint8_t`、`fp4x2_e2m1_t`、`fp4x2_e1m2_t`、`hifloat8_t`、`fp8_e8m0_t`、`fp8_e5m2_t`、`fp8_e4m3fn_t`、`int16_t`、`uint16_t`、`half`、`bfloat16_t`、`int32_t`、`uint32_t`、`float`、`int64_t`、`uint64_t`。当`dtype`为`int4b_t`时,dst的实际类型为`vector_int4x2_t`。 |
| 121 | 121 | ||
| 122 | #### 函数原型典型示例 | 122 | #### 函数原型典型示例 |
| 123 | 123 | ||
| @@ -138,9 +138,9 @@ __simd_callee__ inline void asc_loadalign(vector_<dtype>& dst, | |||
| 138 | vector_bool mask) | 138 | vector_bool mask) |
| 139 | ``` | 139 | ``` |
| 140 | 140 | ||
| 141 | -##### dtype支持数据类型 | 141 | +#### dtype支持数据类型 |
| 142 | 142 | ||
| 143 | -dtype支持的数据类型为`int4b_t`、`int8_t`、`uint8_t`、`fp4x2_e2m1_t`、`fp4x2_e1m2_t`、`hifloat8_t`、`fp8_e8m0_t`、`fp8_e5m2_t`、`fp8_e4m3fn_t`、`int16_t`、`uint16_t`、`half`、`bfloat16_t`、`int32_t`、`uint32_t`、`float`、`int64_t`。当dtype为`int4b_t`时,dst的实际类型为`vector_int4x2_t`。 | 143 | +`dtype`取值为:`int4b_t`、`int8_t`、`uint8_t`、`fp4x2_e2m1_t`、`fp4x2_e1m2_t`、`hifloat8_t`、`fp8_e8m0_t`、`fp8_e5m2_t`、`fp8_e4m3fn_t`、`int16_t`、`uint16_t`、`half`、`bfloat16_t`、`int32_t`、`uint32_t`、`float`、`int64_t`。当`dtype`为`int4b_t`时,dst的实际类型为`vector_int4x2_t`。 |
| 144 | 144 | ||
| 145 | #### 函数原型典型示例 | 145 | #### 函数原型典型示例 |
| 146 | 146 | ||
| @@ -51,7 +51,7 @@ __simd_callee__ inline void asc_loadalign_brc_datablock(vector_<dtype>& dst, | |||
| 51 | 51 | ||
| 52 | #### dtype支持数据类型 | 52 | #### dtype支持数据类型 |
| 53 | 53 | ||
| 54 | -dtype支持的数据类型为`int4b_t`、`int8_t`、`uint8_t`、`fp4x2_e2m1_t`、`fp4x2_e1m2_t`、`hifloat8_t`、`fp8_e8m0_t`、`fp8_e5m2_t`、`fp8_e4m3fn_t`、`int16_t`、`uint16_t`、`half`、`bfloat16_t`、`int32_t`、`uint32_t`、`float`。当dtype为`int4b_t`时,dst的实际类型为`vector_int4x2_t`。 | 54 | +`dtype`取值为:`int4b_t`、`int8_t`、`uint8_t`、`fp4x2_e2m1_t`、`fp4x2_e1m2_t`、`hifloat8_t`、`fp8_e8m0_t`、`fp8_e5m2_t`、`fp8_e4m3fn_t`、`int16_t`、`uint16_t`、`half`、`bfloat16_t`、`int32_t`、`uint32_t`、`float`。当`dtype`为`int4b_t`时,dst的实际类型为`vector_int4x2_t`。 |
| 55 | 55 | ||
| 56 | #### 函数原型典型示例 | 56 | #### 函数原型典型示例 |
| 57 | 57 | ||
| @@ -73,7 +73,7 @@ __simd_callee__ inline void asc_loadalign_brc_datablock(vector_<dtype>& dst, | |||
| 73 | 73 | ||
| 74 | #### dtype支持数据类型 | 74 | #### dtype支持数据类型 |
| 75 | 75 | ||
| 76 | -dtype支持的数据类型为`int4b_t`、`int8_t`、`uint8_t`、`fp4x2_e2m1_t`、`fp4x2_e1m2_t`、`hifloat8_t`、`fp8_e8m0_t`、`fp8_e5m2_t`、`fp8_e4m3fn_t`、`int16_t`、`uint16_t`、`half`、`bfloat16_t`、`int32_t`、`uint32_t`、`float`。当dtype为`int4b_t`时,dst的实际类型为`vector_int4x2_t`。 | 76 | +`dtype`取值为:`int4b_t`、`int8_t`、`uint8_t`、`fp4x2_e2m1_t`、`fp4x2_e1m2_t`、`hifloat8_t`、`fp8_e8m0_t`、`fp8_e5m2_t`、`fp8_e4m3fn_t`、`int16_t`、`uint16_t`、`half`、`bfloat16_t`、`int32_t`、`uint32_t`、`float`。当`dtype`为`int4b_t`时,dst的实际类型为`vector_int4x2_t`。 |
| 77 | 77 | ||
| 78 | #### 函数原型典型示例 | 78 | #### 函数原型典型示例 |
| 79 | 79 | ||
| @@ -94,7 +94,7 @@ __simd_callee__ inline void asc_loadalign_brc_datablock(vector_<dtype>& dst, | |||
| 94 | 94 | ||
| 95 | #### dtype支持数据类型 | 95 | #### dtype支持数据类型 |
| 96 | 96 | ||
| 97 | -dtype支持的数据类型为`int4b_t`、`int8_t`、`uint8_t`、`fp4x2_e2m1_t`、`fp4x2_e1m2_t`、`hifloat8_t`、`fp8_e8m0_t`、`fp8_e5m2_t`、`fp8_e4m3fn_t`、`int16_t`、`uint16_t`、`half`、`bfloat16_t`、`int32_t`、`uint32_t`、`float`。当dtype为`int4b_t`时,dst的实际类型为`vector_int4x2_t`。 | 97 | +`dtype`取值为:`int4b_t`、`int8_t`、`uint8_t`、`fp4x2_e2m1_t`、`fp4x2_e1m2_t`、`hifloat8_t`、`fp8_e8m0_t`、`fp8_e5m2_t`、`fp8_e4m3fn_t`、`int16_t`、`uint16_t`、`half`、`bfloat16_t`、`int32_t`、`uint32_t`、`float`。当`dtype`为`int4b_t`时,dst的实际类型为`vector_int4x2_t`。 |
| 98 | 98 | ||
| 99 | #### 函数原型典型示例 | 99 | #### 函数原型典型示例 |
| 100 | 100 | ||
| @@ -42,7 +42,7 @@ __simd_callee__ inline void asc_loadalign_brc_datablock_postupdate(vector_<dtype | |||
| 42 | 42 | ||
| 43 | ### dtype支持数据类型 | 43 | ### dtype支持数据类型 |
| 44 | 44 | ||
| 45 | -dtype支持的数据类型为`int4b_t`、`int8_t`、`uint8_t`、`fp4x2_e2m1_t`、`fp4x2_e1m2_t`、`hifloat8_t`、`fp8_e8m0_t`、`fp8_e5m2_t`、`fp8_e4m3fn_t`、`int16_t`、`uint16_t`、`half`、`bfloat16_t`、`int32_t`、`uint32_t`、`float`。当dtype为`int4b_t`时,dst的实际类型为`vector_int4x2_t`。 | 45 | +`dtype`取值为:`int4b_t`、`int8_t`、`uint8_t`、`fp4x2_e2m1_t`、`fp4x2_e1m2_t`、`hifloat8_t`、`fp8_e8m0_t`、`fp8_e5m2_t`、`fp8_e4m3fn_t`、`int16_t`、`uint16_t`、`half`、`bfloat16_t`、`int32_t`、`uint32_t`、`float`。当`dtype`为`int4b_t`时,dst的实际类型为`vector_int4x2_t`。 |
| 46 | 46 | ||
| 47 | ### 函数原型典型示例 | 47 | ### 函数原型典型示例 |
| 48 | 48 | ||
Mdocs/zh/api/SIMD-API/c_api/reg_compute/reg_permute_sel/asc_squeeze_and_storeunalign_finalize.md+1-1
Mdocs/zh/api/SIMD-API/c_api/sync/inter_core_sync/asc_sync_inter_wait.md+1-1File content is under review, please try again later
和asc.mmad.md同样的问题