已合并
doc tools工具修改nn仓 #3533
caiwenwen创建于 4月3日
doc tools工具修改nn仓 #3533
已合并
caiwenwen创建于 4月3日
已删除 :9.0.0合入到cann/ops-nn9.0.0
95 个文件变更+409-398
M.gitcode/PULL_REQUEST_TEMPLATE.zh-CN.md+0-2
@@ -17,5 +17,3 @@
17- [ ] 性能优化17- [ ] 性能优化
18- [ ] 文档更新18- [ ] 文档更新
19- [ ] 其他,请描述:19- [ ] 其他,请描述:
20- 
21- 
Mcontrol/assert/README.md+0-2
@@ -32,5 +32,3 @@
32| 调用方式 | 调用样例 | 说明 |32| 调用方式 | 调用样例 | 说明 |
33|--------------|--------------------------------------------------------------|----------------------------------------------------|33|--------------|--------------------------------------------------------------|----------------------------------------------------|
34| 图模式调用 | [test_geir_assert](./examples/test_geir_assert.cpp) | 通过[算子IR](./op_graph/assert_proto.h)构图方式调用Assert算子。 |34| 图模式调用 | [test_geir_assert](./examples/test_geir_assert.cpp) | 通过[算子IR](./op_graph/assert_proto.h)构图方式调用Assert算子。 |
35- 
36- 
Mcontrol/identity/README.md+1-1
@@ -60,4 +60,4 @@
60 60 
61| 调用方式 | 样例代码 | 说明 |61| 调用方式 | 样例代码 | 说明 |
62| ---------------- | --------------------------- | --------------------------------------------------- |62| ---------------- | --------------------------- | --------------------------------------------------- |
63-| 图模式调用 | [test_geir_identity](./examples/test_geir_identity.cpp) | 通过[算子IR](./op_graph/identity_proto.h)构图方式调用identity算子。 |63+| 图模式调用 | [test_geir_identity](./examples/test_geir_identity.cpp) | 通过[算子IR](./op_graph/identity_proto.h)构图方式调用identity算子。 |
Mcontrol/identity_n/README.md+1-1
@@ -1,3 +1,3 @@
1# IdentityN1# IdentityN
2 2 
3-本目录仅包含IdentityN算子对应的aclnn接口;如您想要贡献该算子的AscendC实现,请参考[贡献流程](../../CONTRIBUTING.md)。3+本目录仅包含IdentityN算子对应的aclnn接口;如您想要贡献该算子的AscendC实现,请参考[贡献流程](../../CONTRIBUTING.md)。
Mcontrol/rank/README.md+1-1
@@ -1,3 +1,3 @@
1# Rank1# Rank
2 2 
3-本目录仅包含Rank算子对应的aclnn接口;如您想要贡献该算子的AscendC实现,请参考[贡献流程](../../CONTRIBUTING.md)。3+本目录仅包含Rank算子对应的aclnn接口;如您想要贡献该算子的AscendC实现,请参考[贡献流程](../../CONTRIBUTING.md)。
Mcontrol/shape/README.md+1-1
@@ -1,3 +1,3 @@
1# Shape1# Shape
2 2 
3-本目录仅包含Shape算子对应的aclnn接口;如您想要贡献该算子的AscendC实现,请参考[贡献流程](../../CONTRIBUTING.md)。3+本目录仅包含Shape算子对应的aclnn接口;如您想要贡献该算子的AscendC实现,请参考[贡献流程](../../CONTRIBUTING.md)。
Mcontrol/shape_n/README.md+1-1
@@ -1,3 +1,3 @@
1# ShapeN1# ShapeN
2 2 
3-本目录仅包含ShapeN算子对应的aclnn接口;如您想要贡献该算子的AscendC实现,请参考[贡献流程](../../CONTRIBUTING.md)。3+本目录仅包含ShapeN算子对应的aclnn接口;如您想要贡献该算子的AscendC实现,请参考[贡献流程](../../CONTRIBUTING.md)。
Mconv/conv2d_v2/README.md+0-1
@@ -209,7 +209,6 @@
209 209 
210- 由于硬件资源限制,算子在部分参数取值组合场景下会执行失败,请根据日志信息提示分析并排查问题。若无法解决,请单击 [Link](https://www.hiascend.com/support) 获取技术支持。210- 由于硬件资源限制,算子在部分参数取值组合场景下会执行失败,请根据日志信息提示分析并排查问题。若无法解决,请单击 [Link](https://www.hiascend.com/support) 获取技术支持。
211 211 
212- 
213## 调用说明212## 调用说明
214 213 
215| 调用方式 | 调用样例 | 说明 |214| 调用方式 | 调用样例 | 说明 |
Mconv/conv3d_backprop_filter_v2/README.md+0-1
@@ -61,4 +61,3 @@
61| 调用方式 | 样例代码 | 说明 |61| 调用方式 | 样例代码 | 说明 |
62| ----------- | ------------------- | ---------- |62| ----------- | ------------------- | ---------- |
63| aclnn接口 | [test_aclnn_conv3d_backprop_filter_v2](examples/test_aclnn_conv3d_backprop_filter_v2.cpp) | 通过[aclnnConvolutionBackward](../convolution_backward/docs/aclnnConvolutionBackward.md)接口方式调用Conv3DBackpropFilterV2算子 |63| aclnn接口 | [test_aclnn_conv3d_backprop_filter_v2](examples/test_aclnn_conv3d_backprop_filter_v2.cpp) | 通过[aclnnConvolutionBackward](../convolution_backward/docs/aclnnConvolutionBackward.md)接口方式调用Conv3DBackpropFilterV2算子 |
64- 
Mconv/conv3d_backprop_input_v2/README.md+1-2
@@ -73,9 +73,8 @@
73 - N与C的维度必须为1。73 - N与C的维度必须为1。
74 - W、H和D维度的取值范围必须在 [1,255] 之间。74 - W、H和D维度的取值范围必须在 [1,255] 之间。
75 75 
76- 
77## 调用说明76## 调用说明
78 77 
79| 调用方式 | 样例代码 | 说明 |78| 调用方式 | 样例代码 | 说明 |
80| ----------- | ------------------- | ---------- |79| ----------- | ------------------- | ---------- |
81-| aclnn接口 | [test_aclnn_conv3d_backprop_input_v2](examples/test_aclnn_conv3d_backprop_input_v2.cpp) | 通过[aclnnConvolutionBackward](../convolution_backward/docs/aclnnConvolutionBackward.md)接口方式调用Conv3DBackpropInputV2算子 |80+| aclnn接口 | [test_aclnn_conv3d_backprop_input_v2](examples/test_aclnn_conv3d_backprop_input_v2.cpp) | 通过[aclnnConvolutionBackward](../convolution_backward/docs/aclnnConvolutionBackward.md)接口方式调用Conv3DBackpropInputV2算子 |
Mconv/conv3d_transpose_v2/README.md+2-4
@@ -67,7 +67,6 @@
67 | >1 |FLOAT16/BFLOAT16/FLOAT32| NCDHW | NDHWC | NCDHW |67 | >1 |FLOAT16/BFLOAT16/FLOAT32| NCDHW | NDHWC | NCDHW |
68 | >1 |FLOAT16/BFLOAT16/FLOAT32| NCDHW | DHWCN | NCDHW |68 | >1 |FLOAT16/BFLOAT16/FLOAT32| NCDHW | DHWCN | NCDHW |
69 69 
70- 
71## 约束说明70## 约束说明
72 71 
73* filter72* filter
@@ -83,11 +82,10 @@
83 - N与C的维度必须为1。82 - N与C的维度必须为1。
84 - W、H和D维度的取值范围必须在 [1,255] 之间。83 - W、H和D维度的取值范围必须在 [1,255] 之间。
85* output_padding 84* output_padding
86- - N和C维度必须为0,仅允许在深度、高度、宽度方向上添加。85+ - N和C维度必须为0,仅允许在深度、高度、宽度方向上添加。
87- 
88 86 
89## 调用说明87## 调用说明
90 88 
91| 调用方式 | 样例代码 | 说明 |89| 调用方式 | 样例代码 | 说明 |
92| ----------- | ------------------- | ---------- |90| ----------- | ------------------- | ---------- |
93-| aclnn接口 | [test_aclnn_conv3d_transpose_v2](examples/test_aclnn_conv3d_transpose_v2.cpp) | 通过[aclnnConvolution](../convolution_forward/docs/aclnnConvolution.md)接口方式调用Conv3DTransposeV2算子 |91+| aclnn接口 | [test_aclnn_conv3d_transpose_v2](examples/test_aclnn_conv3d_transpose_v2.cpp) | 通过[aclnnConvolution](../convolution_forward/docs/aclnnConvolution.md)接口方式调用Conv3DTransposeV2算子 |
Mconv/conv3d_v2/README.md+0-2
@@ -244,7 +244,6 @@
244 -`x``filter` 数据类型是 `HIFLOAT8` 时,`bias` 数据类型会转成 `FLOAT` 参与计算。244 -`x``filter` 数据类型是 `HIFLOAT8` 时,`bias` 数据类型会转成 `FLOAT` 参与计算。
245 - 不支持 `scale` 参数。245 - 不支持 `scale` 参数。
246 246 
247- 
248 <table>247 <table>
249 <tr>248 <tr>
250 <th style="text-align:center; width:80px">张量</th>249 <th style="text-align:center; width:80px">张量</th>
@@ -301,7 +300,6 @@
301 300 
302- 由于硬件资源限制,算子在部分参数取值组合场景下会执行失败,请根据日志信息提示分析并排查问题。若无法解决,请单击 [Link](https://www.hiascend.com/support) 获取技术支持。301- 由于硬件资源限制,算子在部分参数取值组合场景下会执行失败,请根据日志信息提示分析并排查问题。若无法解决,请单击 [Link](https://www.hiascend.com/support) 获取技术支持。
303 302 
304- 
305## 调用说明303## 调用说明
306 304 
307| 调用方式 | 调用样例 | 说明 |305| 调用方式 | 调用样例 | 说明 |
Mconv/convolution_backward/docs/aclnnConvTbcBackward.md+1-2
@@ -224,7 +224,7 @@ aclnnStatus aclnnConvTbcBackward(
224 <td>输出</td>224 <td>输出</td>
225 <td>偏置b对L的梯度。</td>225 <td>偏置b对L的梯度。</td>
226 <td>226 <td>
227- <ul><li>支持空Tensor。</li>227+ <ul><li>支持空Tensor。</li></ul>
228 <li>数据类型与bias类型一致。</li>228 <li>数据类型与bias类型一致。</li>
229 <li>shape为(C<sub>out</sub>)。</li>229 <li>shape为(C<sub>out</sub>)。</li>
230 </td>230 </td>
@@ -357,7 +357,6 @@ aclnnStatus aclnnConvTbcBackward(
357 </tbody>357 </tbody>
358 </table>358 </table>
359 359 
360- 
361- **返回值:**360- **返回值:**
362 361 
363 aclnnStatus:返回状态码,具体参见[aclnn返回码](../../../docs/zh/context/aclnn返回码.md)。362 aclnnStatus:返回状态码,具体参见[aclnn返回码](../../../docs/zh/context/aclnn返回码.md)。
Mconv/convolution_backward/docs/aclnnConvolutionBackward.md+13-16
@@ -119,7 +119,7 @@ aclnnStatus aclnnConvolutionBackward(
119 <ul><li>支持空Tensor。</li>119 <ul><li>支持空Tensor。</li>
120 <li>数据类型与input、weight满足数据类型推导规则(参见<a href="../../../docs/zh/context/互推导关系.md" target="_blank">互推关系</a>和<a href="#约束说明" target="_blank">约束说明</a>)。</li>120 <li>数据类型与input、weight满足数据类型推导规则(参见<a href="../../../docs/zh/context/互推导关系.md" target="_blank">互推关系</a>和<a href="#约束说明" target="_blank">约束说明</a>)。</li>
121 <li>shape不支持broadcast,要求和input、weight满足卷积输入输出shape的推导关系。</li>121 <li>shape不支持broadcast,要求和input、weight满足卷积输入输出shape的推导关系。</li>
122- <li>数据格式需要与input、gradInput一致。</li>122+ <li>数据格式需要与input、gradInput一致。</li></ul>
123 </td>123 </td>
124 <td>FLOAT、FLOAT16、BFLOAT16</td>124 <td>FLOAT、FLOAT16、BFLOAT16</td>
125 <td>NCL、NCHW、NCDHW</td>125 <td>NCL、NCHW、NCDHW</td>
@@ -134,7 +134,7 @@ aclnnStatus aclnnConvolutionBackward(
134 <ul><li>支持空Tensor。</li>134 <ul><li>支持空Tensor。</li>
135 <li>数据类型与gradOutput、weight满足数据类型推导规则(参见<a href="../../../docs/zh/context/互推导关系.md" target="_blank">互推关系</a>和<a href="#约束说明" target="_blank">约束说明</a>)。</li>135 <li>数据类型与gradOutput、weight满足数据类型推导规则(参见<a href="../../../docs/zh/context/互推导关系.md" target="_blank">互推关系</a>和<a href="#约束说明" target="_blank">约束说明</a>)。</li>
136 <li>shape不支持broadcast,要求和gradOutput、weight满足卷积输入输出shape的推导关系。</li>136 <li>shape不支持broadcast,要求和gradOutput、weight满足卷积输入输出shape的推导关系。</li>
137- <li>数据格式需要与gradOutput、gradInput一致。</li>137+ <li>数据格式需要与gradOutput、gradInput一致。</li></ul>
138 </td>138 </td>
139 <td>FLOAT、FLOAT16、BFLOAT16</td>139 <td>FLOAT、FLOAT16、BFLOAT16</td>
140 <td>NCL、NCHW、NCDHW</td>140 <td>NCL、NCHW、NCDHW</td>
@@ -149,7 +149,7 @@ aclnnStatus aclnnConvolutionBackward(
149 <ul><li>支持空Tensor。</li>149 <ul><li>支持空Tensor。</li>
150 <li>数据类型与gradOutput、input满足数据类型推导规则(参见<a href="../../../docs/zh/context/互推导关系.md" target="_blank">互推关系</a>和<a href="#约束说明" target="_blank">约束说明</a>)。</li>150 <li>数据类型与gradOutput、input满足数据类型推导规则(参见<a href="../../../docs/zh/context/互推导关系.md" target="_blank">互推关系</a>和<a href="#约束说明" target="_blank">约束说明</a>)。</li>
151 <li>shape不支持broadcast,要求和gradOutput、input满足卷积输入输出shape的推导关系。</li>151 <li>shape不支持broadcast,要求和gradOutput、input满足卷积输入输出shape的推导关系。</li>
152- <li>数据格式需要与gradWeight一致。</li>152+ <li>数据格式需要与gradWeight一致。</li></ul>
153 </td>153 </td>
154 <td>FLOAT、FLOAT16、BFLOAT16</td>154 <td>FLOAT、FLOAT16、BFLOAT16</td>
155 <td>NCL、NCHW、NCDHW</td>155 <td>NCL、NCHW、NCDHW</td>
@@ -163,7 +163,7 @@ aclnnStatus aclnnConvolutionBackward(
163 <td>163 <td>
164 <ul><li>数组长度是1。</li>164 <ul><li>数组长度是1。</li>
165 <li>在普通卷积中等于[weight.shape[0]],在转置卷积中等于[weight.shape[1] * groups]。</li>165 <li>在普通卷积中等于[weight.shape[0]],在转置卷积中等于[weight.shape[1] * groups]。</li>
166- <li>空Tensor场景下,当outputMask指定偏差的梯度需要计算时,biasSizes不能为nullptr。</li>166+ <li>空Tensor场景下,当outputMask指定偏差的梯度需要计算时,biasSizes不能为nullptr。</li></ul>
167 </td>167 </td>
168 <td>INT64</td>168 <td>INT64</td>
169 <td>-</td>169 <td>-</td>
@@ -176,7 +176,7 @@ aclnnStatus aclnnConvolutionBackward(
176 <td>反向传播过程中卷积核在输入上移动的步长。</td>176 <td>反向传播过程中卷积核在输入上移动的步长。</td>
177 <td>177 <td>
178 <ul><li>对于一维卷积反向,数组长度必须为1。</li>178 <ul><li>对于一维卷积反向,数组长度必须为1。</li>
179- <li>数组长度为weight维度减2,数值必须大于0。</li>179+ <li>数组长度为weight维度减2,数值必须大于0。</li></ul>
180 </td>180 </td>
181 <td>INT64</td>181 <td>INT64</td>
182 <td>-</td>182 <td>-</td>
@@ -190,7 +190,7 @@ aclnnStatus aclnnConvolutionBackward(
190 <td>190 <td>
191 <ul><li>对于一维卷积反向,数组长度必须为1。</li>191 <ul><li>对于一维卷积反向,数组长度必须为1。</li>
192 <li>数组长度可以为weight维度减2,在2d场景下数组长度可以为4。</li>192 <li>数组长度可以为weight维度减2,在2d场景下数组长度可以为4。</li>
193- <li>数值必须大于等于0。</li>193+ <li>数值必须大于等于0。</li></ul>
194 </td>194 </td>
195 <td>INT64</td>195 <td>INT64</td>
196 <td>-</td>196 <td>-</td>
@@ -204,7 +204,7 @@ aclnnStatus aclnnConvolutionBackward(
204 <td>204 <td>
205 <ul><li>对于一维卷积反向,数组长度必须为1。</li>205 <ul><li>对于一维卷积反向,数组长度必须为1。</li>
206 <li>数组长度可以为weight维度减2。</li>206 <li>数组长度可以为weight维度减2。</li>
207- <li>数值必须大于0。</li>207+ <li>数值必须大于0。</li></ul>
208 </td>208 </td>
209 <td>INT64</td>209 <td>INT64</td>
210 <td>-</td>210 <td>-</td>
@@ -227,7 +227,7 @@ aclnnStatus aclnnConvolutionBackward(
227 <td>反向传播过程中对于输出填充。</td>227 <td>反向传播过程中对于输出填充。</td>
228 <td>228 <td>
229 <ul><li>数组长度可以为weight维度减2,各维度的数值范围满足[0,stride对应维度数值)。</li>229 <ul><li>数组长度可以为weight维度减2,各维度的数值范围满足[0,stride对应维度数值)。</li>
230- <li>transposed为False场景下,要求每个元素值为0。</li>230+ <li>transposed为False场景下,要求每个元素值为0。</li></ul>
231 </td>231 </td>
232 <td>INT64</td>232 <td>INT64</td>
233 <td>-</td>233 <td>-</td>
@@ -251,7 +251,7 @@ aclnnStatus aclnnConvolutionBackward(
251 <td>输入</td>251 <td>输入</td>
252 <td>252 <td>
253 <ul><li>输出掩码参数, 指定输出中是否包含输入、权重、偏差的梯度。</li>253 <ul><li>输出掩码参数, 指定输出中是否包含输入、权重、偏差的梯度。</li>
254- <li>反向传播过程输出掩码参数为True对应位置的梯度。</li>254+ <li>反向传播过程输出掩码参数为True对应位置的梯度。</li></ul>
255 </td>255 </td>
256 <td>-</td>256 <td>-</td>
257 <td>-</td>257 <td>-</td>
@@ -269,7 +269,7 @@ aclnnStatus aclnnConvolutionBackward(
269 <ul><li>0:KEEP_DTYPE,保持输入的数据类型进行计算。</li>269 <ul><li>0:KEEP_DTYPE,保持输入的数据类型进行计算。</li>
270 <li>1:ALLOW_FP32_DOWN_PRECISION,允许将输入数据降精度计算。</li>270 <li>1:ALLOW_FP32_DOWN_PRECISION,允许将输入数据降精度计算。</li>
271 <li>2:USE_FP16,允许转换为数据类型FLOAT16进行计算。当输入数据类型是FLOAT,转换为FLOAT16计算。</li>271 <li>2:USE_FP16,允许转换为数据类型FLOAT16进行计算。当输入数据类型是FLOAT,转换为FLOAT16计算。</li>
272- <li>3:USE_HF32,允许转换为数据类型HFLOAT32计算。当输入是FLOAT16,仍使用FLOAT16计算。</li>272+ <li>3:USE_HF32,允许转换为数据类型HFLOAT32计算。当输入是FLOAT16,仍使用FLOAT16计算。</li></ul></ul>
273 </td>273 </td>
274 <td>-</td>274 <td>-</td>
275 <td>-</td>275 <td>-</td>
@@ -283,7 +283,7 @@ aclnnStatus aclnnConvolutionBackward(
283 <td>283 <td>
284 <ul><li>支持空Tensor。</li>284 <ul><li>支持空Tensor。</li>
285 <li>数据类型与input保持一致。</li>285 <li>数据类型与input保持一致。</li>
286- <li>数据格式需要与input、gradOutput一致。</li>286+ <li>数据格式需要与input、gradOutput一致。</li></ul>
287 </td>287 </td>
288 <td>FLOAT、FLOAT16、BFLOAT16</td>288 <td>FLOAT、FLOAT16、BFLOAT16</td>
289 <td>NCL、NCHW、NCDHW</td>289 <td>NCL、NCHW、NCDHW</td>
@@ -296,7 +296,7 @@ aclnnStatus aclnnConvolutionBackward(
296 <td>卷积核权重张量w对L的梯度。</td>296 <td>卷积核权重张量w对L的梯度。</td>
297 <td>297 <td>
298 <ul><li>支持空Tensor。</li>298 <ul><li>支持空Tensor。</li>
299- <li>数据格式需要与weight一致。</li>299+ <li>数据格式需要与weight一致。</li></ul>
300 </td>300 </td>
301 <td>FLOAT、FLOAT16、BFLOAT16</td>301 <td>FLOAT、FLOAT16、BFLOAT16</td>
302 <td>NCL、NCHW、NCDHW</td>302 <td>NCL、NCHW、NCDHW</td>
@@ -309,7 +309,7 @@ aclnnStatus aclnnConvolutionBackward(
309 <td>偏置b对L的梯度。</td>309 <td>偏置b对L的梯度。</td>
310 <td>310 <td>
311 <ul><li>支持空Tensor。</li>311 <ul><li>支持空Tensor。</li>
312- <li>数据类型与gradOutput一致。</li>312+ <li>数据类型与gradOutput一致。</li></ul>
313 </td>313 </td>
314 <td>FLOAT、FLOAT16、BFLOAT16</td>314 <td>FLOAT、FLOAT16、BFLOAT16</td>
315 <td>ND</td>315 <td>ND</td>
@@ -398,7 +398,6 @@ aclnnStatus aclnnConvolutionBackward(
398 398 
399 </table>399 </table>
400 400 
401- 
402## aclnnConvolutionBackward401## aclnnConvolutionBackward
403 402 
404- **参数说明:**403- **参数说明:**
@@ -435,7 +434,6 @@ aclnnStatus aclnnConvolutionBackward(
435 </tbody>434 </tbody>
436 </table>435 </table>
437 436 
438- 
439- **返回值:**437- **返回值:**
440 438 
441 aclnnStatus:返回状态码,具体参见[aclnn返回码](../../../docs/zh/context/aclnn返回码.md)。439 aclnnStatus:返回状态码,具体参见[aclnn返回码](../../../docs/zh/context/aclnn返回码.md)。
@@ -590,7 +588,6 @@ aclnnStatus aclnnConvolutionBackward(
590 588 
591由于硬件资源限制,算子在部分参数取值组合场景下会执行失败,请根据日志信息提示分析并排查问题。若无法解决,请单击[Link](https://www.hiascend.com/support)获取技术支持。589由于硬件资源限制,算子在部分参数取值组合场景下会执行失败,请根据日志信息提示分析并排查问题。若无法解决,请单击[Link](https://www.hiascend.com/support)获取技术支持。
592 590 
593- 
594## 调用示例591## 调用示例
595 592 
596示例代码如下,仅供参考,具体编译和执行过程请参考[编译与运行样例](../../../docs/zh/context/编译与运行样例.md)。593示例代码如下,仅供参考,具体编译和执行过程请参考[编译与运行样例](../../../docs/zh/context/编译与运行样例.md)。
Mconv/convolution_forward/README.md+1-0
@@ -65,6 +65,7 @@
65 - cubeMathType 为 1(ALLOW_FP32_DOWN_PRECISION) 时,当输入是 FLOAT 允许转换为 HFLOAT32 计算。65 - cubeMathType 为 1(ALLOW_FP32_DOWN_PRECISION) 时,当输入是 FLOAT 允许转换为 HFLOAT32 计算。
66 - cubeMathType 为 2(USE_FP16) 时,当输入是 BFLOAT16 不支持该选项。66 - cubeMathType 为 2(USE_FP16) 时,当输入是 BFLOAT16 不支持该选项。
67 - cubeMathType 为 3(USE_HF32) 时,当输入是 FLOAT 转换为 HFLOAT32 计算。67 - cubeMathType 为 3(USE_HF32) 时,当输入是 FLOAT 转换为 HFLOAT32 计算。
68+
68## 约束说明69## 约束说明
69 70 
70* <term>Atlas A2 训练系列产品/Atlas A2 推理系列产品</term><term>Atlas A3 训练系列产品/Atlas A3 推理系列产品</term>:input, weight, bias 中每一组 tensor 的每一维大小都应不大于 1000000。71* <term>Atlas A2 训练系列产品/Atlas A2 推理系列产品</term><term>Atlas A3 训练系列产品/Atlas A3 推理系列产品</term>:input, weight, bias 中每一组 tensor 的每一维大小都应不大于 1000000。
Mconv/convolution_forward/docs/aclnnConvDepthwise2d.md+5-4
@@ -93,7 +93,9 @@ aclnnStatus aclnnConvDepthwise2d(
93 <td>kernelSize(aclIntArray*)</td>93 <td>kernelSize(aclIntArray*)</td>
94 <td>输入</td>94 <td>输入</td>
95 <td>卷积核尺寸。</td>95 <td>卷积核尺寸。</td>
96- <td><ul><li>(INT64, INT64)型元组。</li><li>数值为weight的H、W两维的数值。</li></td>96+ <td><ul>
97+ <li>(INT64, INT64)型元组。</li><li>数值为weight的H、W两维的数值。</li></ul>
98+ </td>
97 <td>INT64</td>99 <td>INT64</td>
98 <td>-</td>100 <td>-</td>
99 <td>-</td>101 <td>-</td>
@@ -192,12 +194,11 @@ aclnnStatus aclnnConvDepthwise2d(
192 <col style="width:1050px">194 <col style="width:1050px">
193 </colgroup>195 </colgroup>
194 <thead>196 <thead>
195-
196 <tr>197 <tr>
197 <td>返回值</td>198 <td>返回值</td>
198 <td>错误码</td>199 <td>错误码</td>
199 <td>描述</td>200 <td>描述</td>
200- </tr>201+ </tr></thead>
201 <tr>202 <tr>
202 <td align="left">ACLNN_ERR_PARAM_NULLPTR</td>203 <td align="left">ACLNN_ERR_PARAM_NULLPTR</td>
203 <td align="left">161001</td>204 <td align="left">161001</td>
@@ -305,7 +306,7 @@ aclnnStatus aclnnConvDepthwise2d(
305 <li>为 1(ALLOW_FP32_DOWN_PRECISION)时,当输入是 FLOAT 允许转换为 HFLOAT32 计算。</li>306 <li>为 1(ALLOW_FP32_DOWN_PRECISION)时,当输入是 FLOAT 允许转换为 HFLOAT32 计算。</li>
306 <li>为 2(USE_FP16)时,当输入是 BFLOAT16 不支持该选项。</li>307 <li>为 2(USE_FP16)时,当输入是 BFLOAT16 不支持该选项。</li>
307 <li>为 3(USE_HF32)时,当输入是 FLOAT 转换为 HFLOAT32 计算。</li>308 <li>为 3(USE_HF32)时,当输入是 FLOAT 转换为 HFLOAT32 计算。</li>
308- <ul>309+ </ul>
309 </td>310 </td>
310 <td>311 <td>
311 <ul>312 <ul>
Mconv/convolution_forward/docs/aclnnConvTbc.md+3-4
@@ -68,7 +68,7 @@ aclnnStatus aclnnConvTbc(
68 <td>self(aclTensor*)</td>68 <td>self(aclTensor*)</td>
69 <td>输入</td>69 <td>输入</td>
70 <td>公式中的 self,表示卷积输入。</td>70 <td>公式中的 self,表示卷积输入。</td>
71- <td><ul></li><li>支持空 Tensor。</li><li>数据类型与 weight 的数据类型需满足数据类型推导规则(参见<a href="../../../docs/zh/context/互推导关系.md">互推导关系</a>)。<li>shape 为(N,C<sub>in</sub>,H<sub>in</sub>)。</li></li><li>N≥0,C≥1,H≥0。</li></ul></td>71+ <td><ul><li>支持空 Tensor。</li><li>数据类型与 weight 的数据类型需满足数据类型推导规则(参见<a href="../../../docs/zh/context/互推导关系.md">互推导关系</a>)。<li>shape 为(N,C<sub>in</sub>,H<sub>in</sub>)。</li></li><li>N≥0,C≥1,H≥0。</li></ul></td>
72 <td>FLOAT、FLOAT16、BFLOAT16、HIFLOAT8</td>72 <td>FLOAT、FLOAT16、BFLOAT16、HIFLOAT8</td>
73 <td>ND、NCL</td>73 <td>ND、NCL</td>
74 <td>3</td>74 <td>3</td>
@@ -158,12 +158,11 @@ aclnnStatus aclnnConvTbc(
158 <col style="width:1050px">158 <col style="width:1050px">
159 </colgroup>159 </colgroup>
160 <thead>160 <thead>
161- 
162 <tr>161 <tr>
163 <td>返回值</td>162 <td>返回值</td>
164 <td>错误码</td>163 <td>错误码</td>
165 <td>描述</td>164 <td>描述</td>
166- </tr>165+ </tr></thead>
167 <tr>166 <tr>
168 <td align="left">ACLNN_ERR_PARAM_NULLPTR</td>167 <td align="left">ACLNN_ERR_PARAM_NULLPTR</td>
169 <td align="left">161001</td>168 <td align="left">161001</td>
@@ -290,7 +289,7 @@ aclnnStatus aclnnConvTbc(
290 <li>为 1(ALLOW_FP32_DOWN_PRECISION)时,当输入是 FLOAT 允许转换为 HFLOAT32 计算。</li>289 <li>为 1(ALLOW_FP32_DOWN_PRECISION)时,当输入是 FLOAT 允许转换为 HFLOAT32 计算。</li>
291 <li>为 2(USE_FP16)时,当输入是 BFLOAT16 不支持该选项。</li>290 <li>为 2(USE_FP16)时,当输入是 BFLOAT16 不支持该选项。</li>
292 <li>为 3(USE_HF32)时,当输入是 FLOAT 转换为 HFLOAT32 计算。</li>291 <li>为 3(USE_HF32)时,当输入是 FLOAT 转换为 HFLOAT32 计算。</li>
293- <ul>292+ </ul>
294 </td>293 </td>
295 <td>294 <td>
296 <ul>295 <ul>
Mconv/convolution_forward/docs/aclnnConvolution.md+7-5
@@ -195,7 +195,10 @@ aclnnStatus aclnnConvolution(
195 <td>cubeMathType(int8_t)</td>195 <td>cubeMathType(int8_t)</td>
196 <td>输入</td>196 <td>输入</td>
197 <td>用于判断 Cube 单元应该使用哪种计算逻辑进行运算。</td>197 <td>用于判断 Cube 单元应该使用哪种计算逻辑进行运算。</td>
198- <td><ul><li>如果输入的数据类型存在<a href="../../../docs/zh/context/互推导关系.md" target="_blank">互推导关系</a>,该参数默认对互推导后的数据类型进行处理。</li><li>支持的枚举值如下:</li><ul><li> 0(KEEP_DTYPE):保持输入数据类型进行计算。</li></ul><ul><li> 1(ALLOW_FP32_DOWN_PRECISION):允许 FLOAT 降低精度计算,提升性能。</li></ul><ul><li> 2(USE_FP16):使用 FLOAT16 精度进行计算。</li></ul><ul><li> 3(USE_HF32):使用 HFLOAT32(混合精度)进行计算。</li></ul></td>198+ <td><ul>
199+ <li>如果输入的数据类型存在<a href="../../../docs/zh/context/互推导关系.md" target="_blank">互推导关系</a>,该参数默认对互推导后的数据类型进行处理。</li>
200+ <li>支持的枚举值如下:</li></ul>
201+ <ul><li> 0(KEEP_DTYPE):保持输入数据类型进行计算。</li></ul><ul><li> 1(ALLOW_FP32_DOWN_PRECISION):允许 FLOAT 降低精度计算,提升性能。</li></ul><ul><li> 2(USE_FP16):使用 FLOAT16 精度进行计算。</li></ul><ul><li> 3(USE_HF32):使用 HFLOAT32(混合精度)进行计算。</li></ul></td>
199 <td>INT8</td>202 <td>INT8</td>
200 <td>-</td>203 <td>-</td>
201 <td>-</td>204 <td>-</td>
@@ -235,12 +238,11 @@ aclnnStatus aclnnConvolution(
235 <col style="width:1050px">238 <col style="width:1050px">
236 </colgroup>239 </colgroup>
237 <thead>240 <thead>
238-
239 <tr>241 <tr>
240 <td>返回值</td>242 <td>返回值</td>
241 <td>错误码</td>243 <td>错误码</td>
242 <td>描述</td>244 <td>描述</td>
243- </tr>245+ </tr></thead>
244 <tr>246 <tr>
245 <td align="left">ACLNN_ERR_PARAM_NULLPTR</td>247 <td align="left">ACLNN_ERR_PARAM_NULLPTR</td>
246 <td align="left">161001</td>248 <td align="left">161001</td>
@@ -414,7 +416,7 @@ aclnnStatus aclnnConvolution(
414 <li>为 1(ALLOW_FP32_DOWN_PRECISION)时,当输入是 FLOAT 允许转换为 HFLOAT32 计算。</li>416 <li>为 1(ALLOW_FP32_DOWN_PRECISION)时,当输入是 FLOAT 允许转换为 HFLOAT32 计算。</li>
415 <li>为 2(USE_FP16)时,当输入是 BFLOAT16 不支持该选项。</li>417 <li>为 2(USE_FP16)时,当输入是 BFLOAT16 不支持该选项。</li>
416 <li>为 3(USE_HF32)时,当输入是 FLOAT 转换为 HFLOAT32 计算。</li>418 <li>为 3(USE_HF32)时,当输入是 FLOAT 转换为 HFLOAT32 计算。</li>
417- <ul>419+ </ul>
418 </td>420 </td>
419 <td>421 <td>
420 <ul>422 <ul>
@@ -430,7 +432,7 @@ aclnnStatus aclnnConvolution(
430 <li>为 1(ALLOW_FP32_DOWN_PRECISION) 时,当输入是 FLOAT 允许转换为 FLOAT16 计算。</li>432 <li>为 1(ALLOW_FP32_DOWN_PRECISION) 时,当输入是 FLOAT 允许转换为 FLOAT16 计算。</li>
431 <li>为 2(USE_FP16) 时,当输入是 BFLOAT16 不支持该选项。</li>433 <li>为 2(USE_FP16) 时,当输入是 BFLOAT16 不支持该选项。</li>
432 <li>为 3(USE_HF32) 时暂不支持。</li>434 <li>为 3(USE_HF32) 时暂不支持。</li>
433- <ul>435+ </ul>
434 </td>436 </td>
435 <td>437 <td>
436 <ul>438 <ul>
Mconv/convolution_forward/docs/aclnnQuantConvolution.md+2-5
@@ -79,6 +79,7 @@ aclnnStatus aclnnQuantConvolution(
79 <th style="width:145px">维度(shape)</th>79 <th style="width:145px">维度(shape)</th>
80 <th style="width:145px">非连续 Tensor</th>80 <th style="width:145px">非连续 Tensor</th>
81 </tr>81 </tr>
82+ <tr>
82 <td>input(aclTensor*)</td>83 <td>input(aclTensor*)</td>
83 <td>输入</td>84 <td>输入</td>
84 <td>公式中的 input,表示卷积输入。</td>85 <td>公式中的 input,表示卷积输入。</td>
@@ -252,12 +253,11 @@ aclnnStatus aclnnQuantConvolution(
252 <col style="width:1050px">253 <col style="width:1050px">
253 </colgroup>254 </colgroup>
254 <thead>255 <thead>
255- 
256 <tr>256 <tr>
257 <td>返回值</td>257 <td>返回值</td>
258 <td>错误码</td>258 <td>错误码</td>
259 <td>描述</td>259 <td>描述</td>
260- </tr>260+ </tr></thead>
261 <tr>261 <tr>
262 <td align="left">ACLNN_ERR_PARAM_NULLPTR</td>262 <td align="left">ACLNN_ERR_PARAM_NULLPTR</td>
263 <td align="left">161001</td>263 <td align="left">161001</td>
@@ -398,7 +398,6 @@ aclnnStatus aclnnQuantConvolution(
398 <li>input, weight, bias, scale 中每一组 tensor 的每一维大小都应小于 1000000。</li>398 <li>input, weight, bias, scale 中每一组 tensor 的每一维大小都应小于 1000000。</li>
399 </ul>399 </ul>
400 </td>400 </td>
401- </td>
402 </tr>401 </tr>
403 </tbody>402 </tbody>
404 </table>403 </table>
@@ -645,5 +644,3 @@ int main() {
645 return 0;644 return 0;
646}645}
647```646```
648- 
649- 
Mconv/convolution_forward/docs/aclnnQuantConvolutionWeightNz.md+4-4
@@ -19,7 +19,7 @@
19 19 
20- 计算公式:20- 计算公式:
21 21 
22- 假定输入(input)的 shape 是 $(N, C_{\text{in}}, D, H, W)$,weight 的 原shape 是 $(C_{\text{out}}, C_{\text{in}}, K_d, K_h, K_w)$,scale 的 shape 是 $(C_{\text{out}})$,bias 的 shape 是 $C_{\text{out}}$,输出(output)的 shape 是 $(N, C_{\text{out}}, D_{\text{out}}, H_{\text{out}}, W_{\text{out}})$,其中 $N$ 表示批次大小(batch size),$C$ 是通道数,$D$、$H$ 和 $W$ 分别是样本的深度、高度和宽度,$K_d$、$K_h$ 和 $K_w$ 分别是卷积核的深度、高度和宽度,那输出将被表示为:22+ 假定输入(input)的 shape 是 $(N, C_{\text{in}}, D, H, W)$,weight 的原shape 是 $(C_{\text{out}}, C_{\text{in}}, K_d, K_h, K_w)$,scale 的 shape 是 $(C_{\text{out}})$,bias 的 shape 是 $C_{\text{out}}$,输出(output)的 shape 是 $(N, C_{\text{out}}, D_{\text{out}}, H_{\text{out}}, W_{\text{out}})$,其中 $N$ 表示批次大小(batch size),$C$ 是通道数,$D$、$H$ 和 $W$ 分别是样本的深度、高度和宽度,$K_d$、$K_h$ 和 $K_w$ 分别是卷积核的深度、高度和宽度,那输出将被表示为:
23 23 
24 $$24 $$
25 \text{output}(N_i, C_{\text{out}_j}, D_{\text{out}}, H_{\text{out}}, W_{\text{out}}) = \left[\sum_{k = 0}^{C_{\text{in}} - 1} \text{weight}(C_{\text{out}_j}, k) \star \text{input}(N_i, k)\right] \times \text{scale}(C_{\text{out}_j}) + \text{bias}(C_{\text{out}_j})25 \text{output}(N_i, C_{\text{out}_j}, D_{\text{out}}, H_{\text{out}}, W_{\text{out}}) = \left[\sum_{k = 0}^{C_{\text{in}} - 1} \text{weight}(C_{\text{out}_j}, k) \star \text{input}(N_i, k)\right] \times \text{scale}(C_{\text{out}_j}) + \text{bias}(C_{\text{out}_j})
@@ -80,6 +80,7 @@ aclnnStatus aclnnQuantConvolutionWeightNz(
80 <th style="width:145px">维度(shape)</th>80 <th style="width:145px">维度(shape)</th>
81 <th style="width:145px">非连续 Tensor</th>81 <th style="width:145px">非连续 Tensor</th>
82 </tr>82 </tr>
83+ <tr>
83 <td>input(aclTensor*)</td>84 <td>input(aclTensor*)</td>
84 <td>输入</td>85 <td>输入</td>
85 <td>公式中的 input,表示卷积输入。</td>86 <td>公式中的 input,表示卷积输入。</td>
@@ -253,12 +254,11 @@ aclnnStatus aclnnQuantConvolutionWeightNz(
253 <col style="width:1050px">254 <col style="width:1050px">
254 </colgroup>255 </colgroup>
255 <thead>256 <thead>
256- 
257 <tr>257 <tr>
258 <td>返回值</td>258 <td>返回值</td>
259 <td>错误码</td>259 <td>错误码</td>
260 <td>描述</td>260 <td>描述</td>
261- </tr>261+ </tr></thead>
262 <tr>262 <tr>
263 <td align="left">ACLNN_ERR_PARAM_NULLPTR</td>263 <td align="left">ACLNN_ERR_PARAM_NULLPTR</td>
264 <td align="left">161001</td>264 <td align="left">161001</td>
@@ -699,4 +699,4 @@ int main() {
699 Finalize(deviceId, stream);699 Finalize(deviceId, stream);
700 return 0;700 return 0;
701}701}
702-```702+```
Mconv/deformable_conv2d/docs/aclnnDeformableConv2d.md+1-1
@@ -596,4 +596,4 @@ int main()
596 aclFinalize();596 aclFinalize();
597 return 0;597 return 0;
598}598}
599-```599+```
Mconv/deformable_offsets/README.md+1-1
@@ -110,4 +110,4 @@
110 110 
111| 调用方式 | 样例代码 | 说明 |111| 调用方式 | 样例代码 | 说明 |
112|--------------|------------------------------------------------------------------------|--------------------------------------------------------------|112|--------------|------------------------------------------------------------------------|--------------------------------------------------------------|
113-| 图模式 | [test_geir_deformable_offsets](./examples/test_geir_deformable_offsets.cpp) | 通过[算子IR](./op_graph/deformable_offsets_proto.h)构图方式调用DeformableOffsets算子。 |113+| 图模式 | [test_geir_deformable_offsets](./examples/test_geir_deformable_offsets.cpp) | 通过[算子IR](./op_graph/deformable_offsets_proto.h)构图方式调用DeformableOffsets算子。 |
Mconv/extend_conv2d/README.md+1-2
@@ -262,7 +262,6 @@
262 - 对于 `filter` 输入,`H``W` 的大小应该在 [1, 511] 的范围内。`N` 维度大小应该大于等于 0(等于 0 的场景仅在 `bias``output``N` 维度也等于 0 时支持),`C` 维度大小的支持情况与输入 `x``C` 维度一致。262 - 对于 `filter` 输入,`H``W` 的大小应该在 [1, 511] 的范围内。`N` 维度大小应该大于等于 0(等于 0 的场景仅在 `bias``output``N` 维度也等于 0 时支持),`C` 维度大小的支持情况与输入 `x``C` 维度一致。
263 - `bias``scale`维度大小应该与`filter``N`维度大小一致。263 - `bias``scale`维度大小应该与`filter``N`维度大小一致。
264 264 
265- 
266 <table>265 <table>
267 <tr>266 <tr>
268 <th style="text-align:center; width:80px">张量</th>267 <th style="text-align:center; width:80px">张量</th>
@@ -282,6 +281,7 @@
282 <td style="text-align:center">INT8</td>281 <td style="text-align:center">INT8</td>
283 <td style="text-align:center">FLOAT16/INT8</td>282 <td style="text-align:center">FLOAT16/INT8</td>
284 </tr>283 </tr>
284+ <tr>
285 <td style="text-align:center">HIFLOAT8</td>285 <td style="text-align:center">HIFLOAT8</td>
286 <td style="text-align:center">HIFLOAT8</td>286 <td style="text-align:center">HIFLOAT8</td>
287 <td style="text-align:center">FLOAT</td>287 <td style="text-align:center">FLOAT</td>
@@ -324,7 +324,6 @@
324 324 
325- 由于硬件资源限制,算子在部分参数取值组合场景下会执行失败,请根据日志信息提示分析并排查问题。若无法解决,请单击 [Link](https://www.hiascend.com/support) 获取技术支持。325- 由于硬件资源限制,算子在部分参数取值组合场景下会执行失败,请根据日志信息提示分析并排查问题。若无法解决,请单击 [Link](https://www.hiascend.com/support) 获取技术支持。
326 326 
327- 
328## 调用说明327## 调用说明
329 328 
330| 调用方式 | 调用样例 | 说明 |329| 调用方式 | 调用样例 | 说明 |
Mconv/extend_conv_transpose/README.md+2-2
@@ -58,7 +58,6 @@
58 | >1 | FLOAT16/FLOAT32/BFLOAT16/INT8 | NCDHW | NCDHW | NCDHW |58 | >1 | FLOAT16/FLOAT32/BFLOAT16/INT8 | NCDHW | NCDHW | NCDHW |
59 | >1 | FLOAT16/FLOAT32/BFLOAT16/INT8 | NCDHW | NDHWC | NCDHW |59 | >1 | FLOAT16/FLOAT32/BFLOAT16/INT8 | NCDHW | NDHWC | NCDHW |
60 60 
61- 
62## 约束说明61## 约束说明
63 62 
64* x63* x
@@ -77,4 +76,5 @@
77 - W、H维度的取值范围必须在 [1,255] 之间。76 - W、H维度的取值范围必须在 [1,255] 之间。
78 - D维度必须为177 - D维度必须为1
79* output_padding78* output_padding
80- - N和C维度必须为0,仅允许在深度、高度、宽度方向上添加。79+ - N和C维度必须为0,仅允许在深度、高度、宽度方向上添加。
80+
Mconv/quant_conv3d/README.md+0-3
@@ -175,14 +175,12 @@
175 175 
176## 约束说明176## 约束说明
177 177 
178- 
179- Ascend 950PR/Ascend 950DT :178- Ascend 950PR/Ascend 950DT :
180 - `x` 的数据类型必须与 `filter` 一致。`N` 维度大小应该大于等于 0。`D``H``W` 维度大小应该大于等于 0(等于 0 的场景仅在输出 `y``D``H``W` 维度也等于 0 时支持)。`C` 维度大小应该大于等于 0(等于 0 的场景仅在输出 `y` 的任意维度也等于 0 时支持)。179 - `x` 的数据类型必须与 `filter` 一致。`N` 维度大小应该大于等于 0。`D``H``W` 维度大小应该大于等于 0(等于 0 的场景仅在输出 `y``D``H``W` 维度也等于 0 时支持)。`C` 维度大小应该大于等于 0(等于 0 的场景仅在输出 `y` 的任意维度也等于 0 时支持)。
181 - 对于 `filter` 输入,`H``W` 的大小应该在 [1, 511] 的范围内, `D`维度大小应该在[1, 100000]范围内。`N` 维度大小应该大于等于 0(等于 0 的场景仅在输入 `bias`、输出 `y``N` 维度也等于 0 时支持),`C` 维度大小的支持情况与输入 `x``C` 维度 / groups 大小一致。180 - 对于 `filter` 输入,`H``W` 的大小应该在 [1, 511] 的范围内, `D`维度大小应该在[1, 100000]范围内。`N` 维度大小应该大于等于 0(等于 0 的场景仅在输入 `bias`、输出 `y``N` 维度也等于 0 时支持),`C` 维度大小的支持情况与输入 `x``C` 维度 / groups 大小一致。
182 - `bias``scale`维度大小应该与`filter``N`维度大小一致。181 - `bias``scale`维度大小应该与`filter``N`维度大小一致。
183 - 支持的数据类型组合入下表:182 - 支持的数据类型组合入下表:
184 183 
185- 
186 <table>184 <table>
187 <tr>185 <tr>
188 <th style="text-align:center; width:80px">张量</th>186 <th style="text-align:center; width:80px">张量</th>
@@ -234,7 +232,6 @@
234 232 
235- 由于硬件资源限制,算子在部分参数取值组合场景下会执行失败,请根据日志信息提示分析并排查问题。若无法解决,请单击 [Link](https://www.hiascend.com/support) 获取技术支持。233- 由于硬件资源限制,算子在部分参数取值组合场景下会执行失败,请根据日志信息提示分析并排查问题。若无法解决,请单击 [Link](https://www.hiascend.com/support) 获取技术支持。
236 234 
237- 
238## 调用说明235## 调用说明
239 236 
240| 调用方式 | 调用样例 | 说明 |237| 调用方式 | 调用样例 | 说明 |
Mdocs/zh/debug/cann_simulator.md+5-3
@@ -5,6 +5,7 @@ CANN Simulator是一款面向算子开发场景的SoC级芯片仿真工具,用
5# 主要功能5# 主要功能
6 6 
7该工具与板上运行保持二进制兼容(同一 kernel可同时在仿真和AI处理器执行),主要用途如下:7该工具与板上运行保持二进制兼容(同一 kernel可同时在仿真和AI处理器执行),主要用途如下:
8+ 
8* 精度仿真:输出bit级精度结果,协助用户完成算子的精度验证。9* 精度仿真:输出bit级精度结果,协助用户完成算子的精度验证。
9* 性能仿真:输出指令流水图,协助用户定位算子性能瓶颈问题。10* 性能仿真:输出指令流水图,协助用户定位算子性能瓶颈问题。
10 11 
@@ -32,7 +33,8 @@ CANN Simulator集成在CANN toolkit包里,参考[环境部署](../context/quic
32 33 
33## 算子编译34## 算子编译
34 35 
35-* 参考[算子调用](../invocation/quick_op_invocation.md)完成add_example的算子编译和安装36+* 参考[算子调用](../invocation/quick_op_invocation.md)完成add_example的算子编译和安装
37+ 
36```38```
37# 说明:进入项目根目录,执行如下编译命令,命令仅供参考,详细可以查看算子调用的说明。39# 说明:进入项目根目录,执行如下编译命令,命令仅供参考,详细可以查看算子调用的说明。
38bash build.sh --pkg --soc=Ascend950 --vendor_name=custom --ops=add_example40bash build.sh --pkg --soc=Ascend950 --vendor_name=custom --ops=add_example
@@ -134,7 +136,7 @@ cannsim record [options] user_app --user_options
134 136 
135|参数|可选/必选|说明|137|参数|可选/必选|说明|
136| --- | --- | --- |138| --- | --- | --- |
137-|-s <value> 或 --soc_version <value> [options]参数 | 必选 | 指定模拟目标芯片版本(如:Ascend950)。|139+|-s <value> 或--soc_version </value> [options]参数 | 必选 | 指定模拟目标芯片版本(如:Ascend950)。|
138|-o <value> 或 --output <value> [options]参数 | 可选| 生成文件所在路径,可配置为绝对路径或者相对路径,并且执行工具的用户需要具有读写权限。如果未指定路径,则默认在当前目录下保存数据。|140|-o <value> 或 --output <value> [options]参数 | 可选| 生成文件所在路径,可配置为绝对路径或者相对路径,并且执行工具的用户需要具有读写权限。如果未指定路径,则默认在当前目录下保存数据。|
139|-g 或 --gen-report[options]参数 | 可选 | 启用仿真完成后是否进行自动解析,并生成分析报告。默认不自动解析。|141|-g 或 --gen-report[options]参数 | 可选 | 启用仿真完成后是否进行自动解析,并生成分析报告。默认不自动解析。|
140|user_app|必选|算子可执行文件。|142|user_app|必选|算子可执行文件。|
@@ -250,7 +252,7 @@ cannsim report [options]
250 |MTE1|数据搬运流水,数据搬运方向为:L1 ->{L0A/L0B, UBUF}。|252 |MTE1|数据搬运流水,数据搬运方向为:L1 ->{L0A/L0B, UBUF}。|
251 |MTE2|数据搬运流水,数据搬运方向为:{DDR/GM, L2} ->{L1, L0A/B, UBUF}。|253 |MTE2|数据搬运流水,数据搬运方向为:{DDR/GM, L2} ->{L1, L0A/B, UBUF}。|
252 |MTE3|数据搬运流水,数据搬运方向为:UBUF -> {DDR/GM, L2, L1}、L1->{DDR/L2}。|254 |MTE3|数据搬运流水,数据搬运方向为:UBUF -> {DDR/GM, L2, L1}、L1->{DDR/L2}。|
253- |FIXP|数据搬运流水,数据搬运方向为:FIXPIPE L0C -> OUT/L1。(仅 Atlas A2 训练系列产品 / Atlas A2 推理系列产品 支持展示)|255+ |FIXP|数据搬运流水,数据搬运方向为:FIXPIPE L0C -> OUT/L1。(仅 Atlas A2 训练系列产品 / Atlas A2 推理系列产品支持展示)|
254 |FLOWCTRL|控制流指令。|256 |FLOWCTRL|控制流指令。|
255 |ICACHELOAD|查看未命中的ICache。|257 |ICACHELOAD|查看未命中的ICache。|
256 258 
Mdocs/zh/op_list.md+1-1
@@ -602,7 +602,7 @@
602 <td>✓</td>602 <td>✓</td>
603 <td>✓</td>603 <td>✓</td>
604 <td>AI Core</td>604 <td>AI Core</td>
605- <td>Swish激活函数的反向传播,用于计算Swish激活函数的梯度。</a>。</td>605+ <td>Swish激活函数的反向传播,用于计算Swish激活函数的梯度。</td>
606 </tr>606 </tr>
607 <tr>607 <tr>
608 <td>activation</td>608 <td>activation</td>
Mexperimental/activation/swish_grad/README.md+1-2
@@ -1,6 +1,6 @@
1# SwishGrad1# SwishGrad
2 2 
3-## 产品支持情况3+## 产品支持情况
4 4 
5| 产品 | 是否支持 |5| 产品 | 是否支持 |
6| ---- | :----:|6| ---- | :----:|
@@ -44,7 +44,6 @@ $$
44 <td>fp16、fp32、bf16</td>44 <td>fp16、fp32、bf16</td>
45 <td>ND,FRACTAL_NZ,NC1HWC0</td>45 <td>ND,FRACTAL_NZ,NC1HWC0</td>
46 </tr> 46 </tr>
47- <tr>
48 <tr>47 <tr>
49 <td>x</td>48 <td>x</td>
50 <td>输入</td>49 <td>输入</td>
Mexperimental/index/gather_elements_v3/README.md+3-7
@@ -1,6 +1,6 @@
1# GatherElements1# GatherElements
2 2 
3-## 产品支持情况3+## 产品支持情况
4 4 
5| 产品 | 是否支持 |5| 产品 | 是否支持 |
6| ---- | :----:|6| ---- | :----:|
@@ -68,7 +68,8 @@
68 <tr>68 <tr>
69 <td>dim</td>69 <td>dim</td>
70 <td>可选属性</td>70 <td>可选属性</td>
71- <td><ul><li>公式中的d。</li><li>默认值为0。</li></td>71+ <td><ul><li>公式中的d。</li><li>默认值为0。</li></ul>
72+ </td>
72 <td>Int</td>73 <td>Int</td>
73 <td>-</td>74 <td>-</td>
74 </tr>75 </tr>
@@ -83,8 +84,3 @@
83| 调用方式 | 调用样例 | 说明 |84| 调用方式 | 调用样例 | 说明 |
84|--------------|------------------------------------------------------------------------|--------------------------------------------------------------|85|--------------|------------------------------------------------------------------------|--------------------------------------------------------------|
85| aclnn调用 | [test_aclnn_gather_elements_v3.cpp](./examples/test_aclnn_gather_elements_v3.cpp) | 通过[test_aclnn_gather_elements_v3.cpp]接口方式调用GatherElements算子。 |86| aclnn调用 | [test_aclnn_gather_elements_v3.cpp](./examples/test_aclnn_gather_elements_v3.cpp) | 通过[test_aclnn_gather_elements_v3.cpp]接口方式调用GatherElements算子。 |
86- 
87- 
88- 
89- 
90- 
Mexperimental/matmul/matmul_fp32/README.md+50-41
@@ -1,13 +1,17 @@
1# MatmulFp32算子1# MatmulFp32算子
2 2 
3-## 概述3+## 概述
4+ 
4本样例的MatmulFP32算子实现使用自定义算子工程,其kernel包含两个模板:基础模板以及AL1全载模板。本工程默认使用基础模板,若要使用AL1全载模板,则需要在tiling阶段开启AL1全载的开关且同时满足AL1全载的tiling的条件。example的用例分别使用两个模板的精度均正常,示例通过msprof工具采集了模板的性能数据。5本样例的MatmulFP32算子实现使用自定义算子工程,其kernel包含两个模板:基础模板以及AL1全载模板。本工程默认使用基础模板,若要使用AL1全载模板,则需要在tiling阶段开启AL1全载的开关且同时满足AL1全载的tiling的条件。example的用例分别使用两个模板的精度均正常,示例通过msprof工具采集了模板的性能数据。
5-## 支持的AI处理器6+ 
7+## 支持的AI处理器
8+ 
6| 产品 | 是否支持 |9| 产品 | 是否支持 |
7| ---- | :----:|10| ---- | :----:|
8|Atlas A2 训练系列产品/Atlas 800I A2 推理产品/A200I A2 Box 异构组件|√|11|Atlas A2 训练系列产品/Atlas 800I A2 推理产品/A200I A2 Box 异构组件|√|
9 12 
10## 目录结构介绍13## 目录结构介绍
14+ 
11```15```
12├── CMakeLists.txt // 编译工程文件16├── CMakeLists.txt // 编译工程文件
13├── README.md // 算子样例工程介绍文件17├── README.md // 算子样例工程介绍文件
@@ -57,57 +61,62 @@
57- 算子规格:61- 算子规格:
58 <table>62 <table>
59 <tr><td rowspan="1" align="center">算子类型(OpType)</td><td colspan="4" align="center">Matmul</td></tr>63 <tr><td rowspan="1" align="center">算子类型(OpType)</td><td colspan="4" align="center">Matmul</td></tr>
60- </tr>
61 <tr><td rowspan="4" align="center">算子输入</td><td align="center">name</td><td align="center">shape</td><td align="center">data type</td><td align="center">format</td></tr>64 <tr><td rowspan="4" align="center">算子输入</td><td align="center">name</td><td align="center">shape</td><td align="center">data type</td><td align="center">format</td></tr>
62 <tr><td align="center">a</td><td align="center">M * K</td><td align="center">float</td><td align="center">ND</td></tr>65 <tr><td align="center">a</td><td align="center">M * K</td><td align="center">float</td><td align="center">ND</td></tr>
63 <tr><td align="center">b</td><td align="center">K * N</td><td align="center">float</td><td align="center">ND</td></tr>66 <tr><td align="center">b</td><td align="center">K * N</td><td align="center">float</td><td align="center">ND</td></tr>
64 <tr><td align="center">bias</td><td align="center">N</td><td align="center">float</td><td align="center">ND</td></tr>67 <tr><td align="center">bias</td><td align="center">N</td><td align="center">float</td><td align="center">ND</td></tr>
65- </tr>
66- </tr>
67 <tr><td rowspan="1" align="center">算子输出</td><td align="center">c</td><td align="center">M * N</td><td align="center">float</td><td align="center">ND</td></tr>68 <tr><td rowspan="1" align="center">算子输出</td><td align="center">c</td><td align="center">M * N</td><td align="center">float</td><td align="center">ND</td></tr>
68- </tr>
69 <tr><td rowspan="1" align="center">核函数名</td><td colspan="4" align="center">matmul_fp32</td></tr>69 <tr><td rowspan="1" align="center">核函数名</td><td colspan="4" align="center">matmul_fp32</td></tr>
70 </table>70 </table>
71 71 
72- 
73## 编译运行 72## 编译运行
74-- 配置环境变量
75-以命令行方式下载样例代码,master分支为例
76-```bash
77-cd ${git_clone_path}/experimental/matmul/matmul_fp32
78-```
79-根据当前环境上CANN开发套件包(toolkit包+ops包)的安装方式,选择对应配置环境变量的命令。
80- - 默认路径,root用户安装CANN软件包
81- ```bash
82- export ASCEND_INSTALL_PATH=/usr/local/Ascend/cann
83- ```
84- - 默认路径,非root用户安装CANN软件包
85- ```bash
86- export ASCEND_INSTALL_PATH=$HOME/Ascend/cann
87- ```
88- - 指定路径install_path,安装CANN软件包
89- ```bash
90- export ASCEND_INSTALL_PATH=${install_path}/cann
91- ```
92 73 
74+- 配置环境变量
75+ 
76+ 以命令行方式下载样例代码,master分支为例
77+ 
78+ ```bash
79+ cd ${git_clone_path}/experimental/matmul/matmul_fp32
80+ ```
81+ 
82+ 根据当前环境上CANN开发套件包(toolkit包+ops包)的安装方式,选择对应配置环境变量的命令。
83+ 
84+ - 默认路径,root用户安装CANN软件包
85+ 
86+ ```bash
87+ export ASCEND_INSTALL_PATH=/usr/local/Ascend/cann
88+ ```
89+ 
90+ - 默认路径,非root用户安装CANN软件包
91+ 
92+ ```bash
93+ export ASCEND_INSTALL_PATH=$HOME/Ascend/cann
94+ ```
95+ 
96+ - 指定路径install_path,安装CANN软件包
97+ 
98+ ```bash
99+ export ASCEND_INSTALL_PATH=${install_path}/cann
100+ ```
93 101 
94- 编译与安装自定义算子包102- 编译与安装自定义算子包
95-```bash
96-# 切换到工程根目录
97-cd ${git_clone_path}
98-# 编译样例算子run包
99-bash build.sh --pkg --soc=ascend910b --vendor_name=custom --ops=matmul_fp32 --experimental
100-#安装自定义算子run包
101-./build_out/cann-ops-nn-${vendor_name}-${arch}_linux.run
102-```
103 103 
104+ ```bash
105+ # 切换到工程根目录
106+ cd ${git_clone_path}
107+ # 编译样例算子run包
108+ bash build.sh --pkg --soc=ascend910b --vendor_name=custom --ops=matmul_fp32 --experimental
109+ #安装自定义算子run包
110+ ./build_out/cann-ops-nn-${vendor_name}-${arch}_linux.run
111+ ```
104 112 
105- 编译+执行aclnn接口样例,采集样例性能:113- 编译+执行aclnn接口样例,采集样例性能:
106-```bash114+ 
107-# 切换matmul_fp32 aclnn执行用例目录115+ ```bash
108-cd ${git_clone_path}/experimental/matmul/matmul_fp32/examples116+ # 切换matmul_fp32 aclnn执行用例目录
109-# 编译+执行aclnn接口+采集性能数据117+ cd ${git_clone_path}/experimental/matmul/matmul_fp32/examples
110-bash run.sh118+ # 编译+执行aclnn接口+采集性能数据
111-# 切换aclnn用例性能数据目录119+ bash run.sh
112-cd ${git_clone_path}/experimental/matmul/matmul_fp32/examples/output/msprof_result120+ # 切换aclnn用例性能数据目录
113-```121+ cd ${git_clone_path}/experimental/matmul/matmul_fp32/examples/output/msprof_result
122+ ```
Mindex/embedding_bag/README.md+4-0
@@ -18,6 +18,7 @@
18- 算子功能:根据indices从weight中获得一组被聚合的数,然后根据offsets的偏移和mode指定的聚合模式对获取的数进行max、sum、mean聚合。其余参数则更细化了计算过程的控制。18- 算子功能:根据indices从weight中获得一组被聚合的数,然后根据offsets的偏移和mode指定的聚合模式对获取的数进行max、sum、mean聚合。其余参数则更细化了计算过程的控制。
19 - shape推导方式如下:19 - shape推导方式如下:
20 假设:20 假设:
21+ 
21 ```22 ```
22 weight的shape为(numWeight, embeddingDim)23 weight的shape为(numWeight, embeddingDim)
23 indices的shape为(indices)24 indices的shape为(indices)
@@ -25,6 +26,7 @@
25 ```26 ```
26 27 
27 - 当mode为sum模式:28 - 当mode为sum模式:
29+ 
28 ```30 ```
29 y的shape 为 include_last_offset ? (offsets - 1, embeddingDim) : (offsets, embeddingDim)31 y的shape 为 include_last_offset ? (offsets - 1, embeddingDim) : (offsets, embeddingDim)
30 offset2bag的shape 为 (indices,)32 offset2bag的shape 为 (indices,)
@@ -33,6 +35,7 @@
33 ```35 ```
34 36 
35 - 当mode为mean模式:37 - 当mode为mean模式:
38+ 
36 ```39 ```
37 y的shape 为 include_last_offset? (offsets - 1, embeddingDim) : (offsets, embeddingDim)40 y的shape 为 include_last_offset? (offsets - 1, embeddingDim) : (offsets, embeddingDim)
38 offset2bag的shape 为 (indices,)41 offset2bag的shape 为 (indices,)
@@ -161,6 +164,7 @@
161 164 
162- Atlas 训练系列产品:不支持BFLOAT16。165- Atlas 训练系列产品:不支持BFLOAT16。
163- Kirin X90/Kirin 9030处理器系列产品:不支持BFLOAT16。166- Kirin X90/Kirin 9030处理器系列产品:不支持BFLOAT16。
167+ 
164## 约束说明168## 约束说明
165 169 
166170
Mindex/expand_into_jagged_permute/README.md+3-4
@@ -1,6 +1,6 @@
1# ExpandIntoJaggedPermute1# ExpandIntoJaggedPermute
2 2 
3-## 产品支持情况3+## 产品支持情况
4 4 
5|产品 | 是否支持 |5|产品 | 是否支持 |
6|:-------------------------|:----------:|6|:-------------------------|:----------:|
@@ -73,19 +73,18 @@ $$
73 <tr>73 <tr>
74 <td>outputSize</td>74 <td>outputSize</td>
75 <td>属性</td>75 <td>属性</td>
76- <td><ul><li>输出结果的长度。</li></td>76+ <td><ul><li>输出结果的长度。</li></ul></td>
77 <td>INT32、INT64</td>77 <td>INT32、INT64</td>
78 <td>-</td>78 <td>-</td>
79 </tr>79 </tr>
80 </tbody></table>80 </tbody></table>
81 81 
82## 约束说明82## 约束说明
83-inputOffset、outputOffset的长度比permute多1。
84 83 
84+inputOffset、outputOffset的长度比permute多1。
85 85 
86## 调用说明86## 调用说明
87 87 
88| 调用方式 | 样例代码 | 说明 |88| 调用方式 | 样例代码 | 说明 |
89| ---------------- | --------------------------- | --------------------------------------------------- |89| ---------------- | --------------------------- | --------------------------------------------------- |
90| aclnn接口 | [test_expand_into_jagged_permute.cpp](tests/ut/op_kernel/test_expand_into_jagged_permute.cpp) | 通过[aclnnExpandIntoJaggedPermute](docs/aclnnExpandIntoJaggedPermute.md)接口方式调用ExpandIntoJaggedPermute算子。 |90| aclnn接口 | [test_expand_into_jagged_permute.cpp](tests/ut/op_kernel/test_expand_into_jagged_permute.cpp) | 通过[aclnnExpandIntoJaggedPermute](docs/aclnnExpandIntoJaggedPermute.md)接口方式调用ExpandIntoJaggedPermute算子。 |
91- 
Mindex/gather_elements_v2/README.md+3-2
@@ -1,6 +1,6 @@
1# GatherElementsV21# GatherElementsV2
2 2 
3-## 产品支持情况3+## 产品支持情况
4 4 
5| 产品 | 是否支持 |5| 产品 | 是否支持 |
6| :----------------------------------------------------------- | :------: |6| :----------------------------------------------------------- | :------: |
@@ -87,13 +87,14 @@
87 <tr>87 <tr>
88 <td>dim</td>88 <td>dim</td>
89 <td>可选属性</td>89 <td>可选属性</td>
90- <td><ul><li>公式中的d。</li><li>默认值为0。</li></td>90+ <td><ul><li>公式中的d。</li><li>默认值为0。</li></ul></td>
91 <td>Int</td>91 <td>Int</td>
92 <td>-</td>92 <td>-</td>
93 </tr>93 </tr>
94 </tbody></table>94 </tbody></table>
95 95 
96- Kirin X90/Kirin 9030处理器系列产品:x和y的数据类型不支持BFLOAT16。96- Kirin X90/Kirin 9030处理器系列产品:x和y的数据类型不支持BFLOAT16。
97+ 
97## 约束说明98## 约束说明
98 99 
99100
Mindex/gather_elements_v2/docs/aclnnGather.md+4-4
@@ -92,7 +92,6 @@ aclnnStatus aclnnGather(
92 <th>维度(shape)</th>92 <th>维度(shape)</th>
93 <th>非连续Tensor</th>93 <th>非连续Tensor</th>
94 </tr></thead>94 </tr></thead>
95- <tbody>
96 <tr>95 <tr>
97 <td>self(aclTensor*)</td>96 <td>self(aclTensor*)</td>
98 <td>输入</td>97 <td>输入</td>
@@ -117,8 +116,9 @@ aclnnStatus aclnnGather(
117 <td>index(aclTensor*)</td>116 <td>index(aclTensor*)</td>
118 <td>输入</td>117 <td>输入</td>
119 <td>公式中的index。</td>118 <td>公式中的index。</td>
120- <td>维度数需要与self一致,且shape需要与out一致,除dim指定的维度外,其他维度的size需要小于等于self对应维度的size。<br>119+ <td>
121-index中的具体值代表self对应dim轴上的下标取值范围[-self.shape[dim], self.shape[dim] - 1]index中索引不支持越界</td>120+ 维度需要与self一致shape需要与out一致,除dim指定的维度外其他维度size需要小于等于self对应维度的size
121+ <br>index中的具体数值代表self对应dim轴上的下标,取值范围[-self.shape[dim], self.shape[dim] - 1],index中的索引不支持越界。</td>
122 <td>INT32、IND64</td>122 <td>INT32、IND64</td>
123 <td>-</td>123 <td>-</td>
124 <td>0-8</td>124 <td>0-8</td>
@@ -154,7 +154,7 @@ index中的具体数值代表self对应dim轴上的下标,取值范围[-self.s
154 <td>-</td>154 <td>-</td>
155 <td>-</td>155 <td>-</td>
156 </tr>156 </tr>
157- </tbody></table>157+ </table>
158 158 
159 - **返回值**159 - **返回值**
160 160 
Mindex/gather_v2/README.md+3-3
@@ -77,14 +77,14 @@
77 <tr>77 <tr>
78 <td>batch_dims</td>78 <td>batch_dims</td>
79 <td>可选属性</td>79 <td>可选属性</td>
80- <td><ul><li>用于指定批处理的维度。</li><li>默认值为0.0。</ul></td>80+ <td><ul><li>用于指定批处理的维度。</li><li>默认值为0.0。</li></ul></td>
81 <td>INT64</td>81 <td>INT64</td>
82 <td>ND</td>82 <td>ND</td>
83 </tr>83 </tr>
84 <tr>84 <tr>
85 <td>negative_index_support</td>85 <td>negative_index_support</td>
86 <td>可选属性</td>86 <td>可选属性</td>
87- <td><ul><li>用于指定是否支持负数索引,值为true表示支持索引为负数,值为false则不支持索引为负数。</li><li>默认值为false。</ul></td>87+ <td><ul><li>用于指定是否支持负数索引,值为true表示支持索引为负数,值为false则不支持索引为负数。</li><li>默认值为false。</li></ul></td>
88 <td>BOOL</td>88 <td>BOOL</td>
89 <td>ND</td>89 <td>ND</td>
90 </tr>90 </tr>
@@ -99,4 +99,4 @@
99| 调用方式 | 调用样例 | 说明 |99| 调用方式 | 调用样例 | 说明 |
100|--------------|------------------------------------------------------------------------|--------------------------------------------------------------|100|--------------|------------------------------------------------------------------------|--------------------------------------------------------------|
101| aclnn调用 | [test_aclnn_gather_v2](./examples/test_aclnn_gather_v2.cpp) | 通过[aclnnGatherV2](./docs/aclnnGatherV2.md)接口方式调用GatherV2算子。 |101| aclnn调用 | [test_aclnn_gather_v2](./examples/test_aclnn_gather_v2.cpp) | 通过[aclnnGatherV2](./docs/aclnnGatherV2.md)接口方式调用GatherV2算子。 |
102-| aclnn调用 | [test_aclnn_embedding_renorm](./examples/test_aclnn_embedding_renorm.cpp) | 通过[aclnnEmbeddingRenorm](./docs/aclnnEmbeddingRenorm.md)接口方式调用EmbeddingRenorm算子。 |102+| aclnn调用 | [test_aclnn_embedding_renorm](./examples/test_aclnn_embedding_renorm.cpp) | 通过[aclnnEmbeddingRenorm](./docs/aclnnEmbeddingRenorm.md)接口方式调用EmbeddingRenorm算子。 |
Mindex/index/README.md+2-1
@@ -61,6 +61,7 @@
61 <td>INT32、INT64</td>61 <td>INT32、INT64</td>
62 <td>ND</td>62 <td>ND</td>
63 </tr>63 </tr>
64+ <tr>
64 <td>y</td>65 <td>y</td>
65 <td>输出</td>66 <td>输出</td>
66 <td>根据索引取出后的数据。</td>67 <td>根据索引取出后的数据。</td>
@@ -77,4 +78,4 @@
77 78 
78| 调用方式 | 调用样例 | 说明 |79| 调用方式 | 调用样例 | 说明 |
79|--------------|------------------------------------------------------------------------|--------------------------------------------------------------|80|--------------|------------------------------------------------------------------------|--------------------------------------------------------------|
80-| aclnn调用 | [test_aclnn_index](./examples/test_aclnn_index.cpp) | 通过[aclnnIndex](./docs/aclnnIndex.md)接口方式调用Index算子。 |81+| aclnn调用 | [test_aclnn_index](./examples/test_aclnn_index.cpp) | 通过[aclnnIndex](./docs/aclnnIndex.md)接口方式调用Index算子。 |
Mindex/repeat_interleave_grad/README.md+1-1
@@ -1,6 +1,6 @@
1# RepeatInterleaveGrad1# RepeatInterleaveGrad
2 2 
3-## 产品支持情况3+## 产品支持情况
4 4 
5| 产品 | 是否支持 |5| 产品 | 是否支持 |
6| :----------------------------------------------------------- | :------: |6| :----------------------------------------------------------- | :------: |
Mindex/scatter_add_with_sorted/README.md+2-2
@@ -1,6 +1,6 @@
1# ScatterAddWithSorted1# ScatterAddWithSorted
2 2 
3-## 产品支持情况3+## 产品支持情况
4 4 
5| 产品 | 是否支持 |5| 产品 | 是否支持 |
6| :----------------------------------------------------------- | :------: |6| :----------------------------------------------------------- | :------: |
@@ -89,8 +89,8 @@
89 </tr>89 </tr>
90 </tbody></table>90 </tbody></table>
91 91 
92- 
93- Kirin X90/Kirin 9030处理器系列产品:var和value的数据类型不支持BFLOAT16,sorted_index和pos的数据类型不支持INT64。92- Kirin X90/Kirin 9030处理器系列产品:var和value的数据类型不支持BFLOAT16,sorted_index和pos的数据类型不支持INT64。
93+ 
94## 约束说明94## 约束说明
95 95 
9696
Mindex/sparse_to_dense/README.md+2-2
@@ -1,6 +1,6 @@
1# SparseToDense1# SparseToDense
2 2 
3-## 产品支持情况3+## 产品支持情况
4 4 
5| 产品 | 是否支持 |5| 产品 | 是否支持 |
6| :----------------------------------------------------------- | :------: |6| :----------------------------------------------------------- | :------: |
@@ -10,6 +10,7 @@
10| <term>Atlas 200I/500 A2 推理产品</term> | × |10| <term>Atlas 200I/500 A2 推理产品</term> | × |
11| <term>Atlas 推理系列产品</term> | × |11| <term>Atlas 推理系列产品</term> | × |
12| <term>Atlas 训练系列产品</term> | × |12| <term>Atlas 训练系列产品</term> | × |
13+ 
13## 功能说明14## 功能说明
14 15 
15- 算子功能: 将一个稀疏表示(Sparse Representation)转换为一个稠密张亮。16- 算子功能: 将一个稀疏表示(Sparse Representation)转换为一个稠密张亮。
@@ -97,7 +98,6 @@
97 </tr>98 </tr>
98 </tbody></table>99 </tbody></table>
99 100 
100- 
101## 约束说明101## 约束说明
102 102 
103103
Mindex/top_k_top_p_sample/docs/aclnnTopKTopPSample.md+2-1
@@ -17,6 +17,7 @@
17 根据输入词频logits、topK/topP采样参数、随机采样权重分布q,进行topK-topP-sample采样计算,输出每个batch的最大词频logitsSelectIdx,以及topK-topP采样后的词频分布logitsTopKPSelect。17 根据输入词频logits、topK/topP采样参数、随机采样权重分布q,进行topK-topP-sample采样计算,输出每个batch的最大词频logitsSelectIdx,以及topK-topP采样后的词频分布logitsTopKPSelect。
18 18 
19 算子包含三个可单独使能,但上下游处理关系保持不变的采样算法(从原始输入到最终输出):TopK采样、TopP采样、指数采样(本文档中Sample所指)。它们可以构成八种计算场景。如下表所示:19 算子包含三个可单独使能,但上下游处理关系保持不变的采样算法(从原始输入到最终输出):TopK采样、TopP采样、指数采样(本文档中Sample所指)。它们可以构成八种计算场景。如下表所示:
20+
20 | 计算场景 | TopK采样 | TopP采样 | 指数分布采样 |备注|21 | 计算场景 | TopK采样 | TopP采样 | 指数分布采样 |备注|
21 | :-------:| :------:|:-------:|:-------:|:-------:|22 | :-------:| :------:|:-------:|:-------:|:-------:|
22 |Softmax-Argmax采样|×|×|×|对输入logits按每个batch,取SoftMax后取最大结果|23 |Softmax-Argmax采样|×|×|×|对输入logits按每个batch,取SoftMax后取最大结果|
@@ -597,4 +598,4 @@ aclnnStatus aclnnTopKTopPSample(
597 aclFinalize();598 aclFinalize();
598 return 0;599 return 0;
599 }600 }
600- ```601+ ```
Mindex/top_k_top_p_sample_v2/docs/aclnnTopKTopPSampleV2.md+1-0
@@ -19,6 +19,7 @@
19 根据输入词频logits、topK/topP/minP采样参数、随机采样权重分布q,进行topK-topP-minP-sample采样计算。当输入isNeedSampleResult为false时,输出每个batch的最大词频logitsSelectIdx,以及topK-topP-minP采样后的词频分布logitsTopKPSelect;当输入isNeedSampleResult为true时,输出topK-topP-minP采样后的中间计算结果logitsIdx和logitsSortMasked,其中logitsSortMasked为词频logits经过topK-topP-minP采样计算后的中间结果,logitsIdx为logitsSortMasked在logits中对应的索引。19 根据输入词频logits、topK/topP/minP采样参数、随机采样权重分布q,进行topK-topP-minP-sample采样计算。当输入isNeedSampleResult为false时,输出每个batch的最大词频logitsSelectIdx,以及topK-topP-minP采样后的词频分布logitsTopKPSelect;当输入isNeedSampleResult为true时,输出topK-topP-minP采样后的中间计算结果logitsIdx和logitsSortMasked,其中logitsSortMasked为词频logits经过topK-topP-minP采样计算后的中间结果,logitsIdx为logitsSortMasked在logits中对应的索引。
20 20 
21 算子包含四个可单独使能,但上下游处理关系保持不变的采样算法(从原始输入到最终输出):TopK采样、TopP采样、MinP采样、指数采样(本文档中Sample所指)。目前支持以下计算场景。如下表所示:21 算子包含四个可单独使能,但上下游处理关系保持不变的采样算法(从原始输入到最终输出):TopK采样、TopP采样、MinP采样、指数采样(本文档中Sample所指)。目前支持以下计算场景。如下表所示:
22+
22 | 计算场景 | TopK采样 | TopP采样 | minP采样 | 指数分布采样 | 输出中间计算结果 |备注|23 | 计算场景 | TopK采样 | TopP采样 | minP采样 | 指数分布采样 | 输出中间计算结果 |备注|
23 | :-------:| :------:|:-------:|:-------:|:-------:|:-------:|:-------:|24 | :-------:| :------:|:-------:|:-------:|:-------:|:-------:|:-------:|
24 |Softmax-Argmax采样|×|×|×|×|×|对输入logits按每个batch,取SoftMax后取最大结果|25 |Softmax-Argmax采样|×|×|×|×|×|对输入logits按每个batch,取SoftMax后取最大结果|
Mloss/chamfer_distance_grad/docs/aclnnChamferDistanceBackward.md+1-4
@@ -13,7 +13,6 @@
13| <term>Atlas 推理系列产品</term> | × |13| <term>Atlas 推理系列产品</term> | × |
14| <term>Atlas 训练系列产品</term> | × |14| <term>Atlas 训练系列产品</term> | × |
15 15 
16- 
17## 功能说明16## 功能说明
18 17 
19- 接口功能:ChamferDistance(倒角距离)的反向算子,根据正向的输入对输出的贡献及初始梯度求出输入对应的梯度。18- 接口功能:ChamferDistance(倒角距离)的反向算子,根据正向的输入对输出的贡献及初始梯度求出输入对应的梯度。
@@ -85,7 +84,6 @@ aclnnStatus aclnnChamferDistanceBackward(
85 84 
86- **参数说明**85- **参数说明**
87 86 
88- </style>
89 <table class="tg" style="undefined;table-layout: fixed; width: 1172px"><colgroup>87 <table class="tg" style="undefined;table-layout: fixed; width: 1172px"><colgroup>
90 <col style="width: 184px">88 <col style="width: 184px">
91 <col style="width: 86px">89 <col style="width: 86px">
@@ -216,7 +214,6 @@ aclnnStatus aclnnChamferDistanceBackward(
216 214 
217 第一段接口完成入参校验,出现以下场景时报错:215 第一段接口完成入参校验,出现以下场景时报错:
218 216
219- </style>
220 <table class="tg" style="undefined;table-layout: fixed; width: 951px"><colgroup>217 <table class="tg" style="undefined;table-layout: fixed; width: 951px"><colgroup>
221 <col style="width: 258px">218 <col style="width: 258px">
222 <col style="width: 86px">219 <col style="width: 86px">
@@ -493,4 +490,4 @@ int main() {
493 aclFinalize();490 aclFinalize();
494 return 0;491 return 0;
495}492}
496-```493+```
Mloss/cross_entropy_loss/README.md+9-9
@@ -71,42 +71,42 @@
71 <tr>71 <tr>
72 <td>weight</td>72 <td>weight</td>
73 <td>可选输入</td>73 <td>可选输入</td>
74- <td><ul><li>表示为每个类别指定的缩放权重,公式中的weight。<li>默认为全1。</ul></td>74+ <td><ul><li>表示为每个类别指定的缩放权重,公式中的weight。</li><li>默认为全1。</li></ul></td>
75 <td>FLOAT</td>75 <td>FLOAT</td>
76 <td>ND</td>76 <td>ND</td>
77 </tr>77 </tr>
78 <tr>78 <tr>
79 <td>reductionOptional</td>79 <td>reductionOptional</td>
80 <td>可选属性</td>80 <td>可选属性</td>
81- <td><ul><li>表示loss的归约方式。<li>默认值为“mean”。</ul></td>81+ <td><ul><li>表示loss的归约方式。</li><li>默认值为“mean”。</li></ul></td>
82 <td>STRING</td>82 <td>STRING</td>
83 <td>-</td>83 <td>-</td>
84 </tr>84 </tr>
85 <tr>85 <tr>
86 <td>ignoreIndex</td>86 <td>ignoreIndex</td>
87 <td>可选属性</td>87 <td>可选属性</td>
88- <td><ul><li>指定被忽略的标签值。<li>默认值为-100。</ul></td>88+ <td><ul><li>指定被忽略的标签值。</li><li>默认值为-100。</li></ul></td>
89 <td>INT64</td>89 <td>INT64</td>
90 <td>-</td>90 <td>-</td>
91 </tr>91 </tr>
92 <tr>92 <tr>
93 <td>labelSmoothing</td>93 <td>labelSmoothing</td>
94 <td>可选属性</td>94 <td>可选属性</td>
95- <td><ul><li>表示计算loss时的平滑量。<li>默认值为0。</ul></td>95+ <td><ul><li>表示计算loss时的平滑量。</li><li>默认值为0。</li></ul></td>
96 <td>DOUBLE</td>96 <td>DOUBLE</td>
97 <td>-</td>97 <td>-</td>
98 </tr>98 </tr>
99 <tr>99 <tr>
100 <td>lseSquareScaleForZloss</td>100 <td>lseSquareScaleForZloss</td>
101 <td>可选属性</td>101 <td>可选属性</td>
102- <td><ul><li>表示zloss计算所需的scale。<li>当前暂不支持。</ul></td>102+ <td><ul><li>表示zloss计算所需的scale。</li><li>当前暂不支持。</li></ul></td>
103 <td>DOUBLE</td>103 <td>DOUBLE</td>
104 <td>-</td>104 <td>-</td>
105 </tr>105 </tr>
106 <tr>106 <tr>
107 <td>returnZloss</td>107 <td>returnZloss</td>
108 <td>可选属性</td>108 <td>可选属性</td>
109- <td><ul><li>控制是否返回zloss输出。Host侧的布尔值。需要输出zLoss时传入True,否则传入False。<li>当前暂不支持。</ul></td>109+ <td><ul><li>控制是否返回zloss输出。Host侧的布尔值。需要输出zLoss时传入True,否则传入False。</li><li>当前暂不支持。</li></ul></td>
110 <td>BOOL</td>110 <td>BOOL</td>
111 <td>-</td>111 <td>-</td>
112 </tr>112 </tr>
@@ -127,14 +127,14 @@
127 <tr>127 <tr>
128 <td>zlossOut</td>128 <td>zlossOut</td>
129 <td>输出</td>129 <td>输出</td>
130- <td><ul><li>表示辅助损失,对应公式中的zlossOut。<li>当前暂不支持。</ul></td>130+ <td><ul><li>表示辅助损失,对应公式中的zlossOut。</li><li>当前暂不支持。</li></ul></td>
131 <td>FLOAT16、BFLOAT16、FLOAT32</td>131 <td>FLOAT16、BFLOAT16、FLOAT32</td>
132 <td>ND</td>132 <td>ND</td>
133 </tr>133 </tr>
134 <tr>134 <tr>
135 <td>lseForZlossOut</td>135 <td>lseForZlossOut</td>
136 <td>输出</td>136 <td>输出</td>
137- <td><ul><li>表示zloss场景输出给反向的Tensor,lseSquareScaleForZloss为0时输出为None,对应公式中的lse。<li>当前暂不支持。</ul></td>137+ <td><ul><li>表示zloss场景输出给反向的Tensor,lseSquareScaleForZloss为0时输出为None,对应公式中的lse。</li><li>当前暂不支持。</li></ul></td>
138 <td>FLOAT16、BFLOAT16、FLOAT32</td>138 <td>FLOAT16、BFLOAT16、FLOAT32</td>
139 <td>ND</td>139 <td>ND</td>
140 </tr>140 </tr>
@@ -149,4 +149,4 @@
149 149 
150| 调用方式 | 样例代码 | 说明 |150| 调用方式 | 样例代码 | 说明 |
151| ---------------- | --------------------------- | --------------------------------------------------- |151| ---------------- | --------------------------- | --------------------------------------------------- |
152-| aclnn接口 | [test_aclnn_cross_entropy_loss](examples/test_aclnn_cross_entropy_loss.cpp) | 通过[aclnnCrossEntropyLoss](docs/aclnnCrossEntropyLoss.md)接口方式调用CrossEntropyLoss算子。 |152+| aclnn接口 | [test_aclnn_cross_entropy_loss](examples/test_aclnn_cross_entropy_loss.cpp) | 通过[aclnnCrossEntropyLoss](docs/aclnnCrossEntropyLoss.md)接口方式调用CrossEntropyLoss算子。 |
Mloss/cross_entropy_loss_grad/README.md+8-8
@@ -148,49 +148,49 @@
148 <tr>148 <tr>
149 <td>weight</td>149 <td>weight</td>
150 <td>可选输入</td>150 <td>可选输入</td>
151- <td><ul><li>表示为每个类别指定的缩放权重,公式中的weight。<li>默认为全1。</ul></td>151+ <td><ul><li>表示为每个类别指定的缩放权重,公式中的weight。</li><li>默认为全1。</li></ul></td>
152 <td>FLOAT</td>152 <td>FLOAT</td>
153 <td>ND</td>153 <td>ND</td>
154 </tr>154 </tr>
155 <tr>155 <tr>
156 <td>gradZloss</td>156 <td>gradZloss</td>
157 <td>可选输入</td>157 <td>可选输入</td>
158- <td><ul><li>正向输出zloss的梯度,公式中的gradZloss。<li>当前暂不支持。</ul></td>158+ <td><ul><li>正向输出zloss的梯度,公式中的gradZloss。</li><li>当前暂不支持。</li></ul></td>
159 <td>FLOAT16、BFLOAT16、FLOAT32</td>159 <td>FLOAT16、BFLOAT16、FLOAT32</td>
160 <td>ND</td>160 <td>ND</td>
161 </tr>161 </tr>
162 <tr>162 <tr>
163 <td>lseForZloss</td>163 <td>lseForZloss</td>
164 <td>可选输入</td>164 <td>可选输入</td>
165- <td><ul><li>zloss相关输入,如果lse_square_scale_for_zloss非0,正向额外输出的lse_for_zloss中间结果给反向用于计算lse,公式中的lseForZloss。<li>当前暂不支持。</ul></td>165+ <td><ul><li>zloss相关输入,如果lse_square_scale_for_zloss非0,正向额外输出的lse_for_zloss中间结果给反向用于计算lse,公式中的lseForZloss。</li><li>当前暂不支持。</li></ul></td>
166 <td>FLOAT16、BFLOAT16、FLOAT32</td>166 <td>FLOAT16、BFLOAT16、FLOAT32</td>
167 <td>ND</td>167 <td>ND</td>
168 </tr>168 </tr>
169 <tr>169 <tr>
170 <td>reduction</td>170 <td>reduction</td>
171 <td>可选属性</td>171 <td>可选属性</td>
172- <td><ul><li>指定要应用于输出的归约方式。<li>默认值为“mean”。</ul></td>172+ <td><ul><li>指定要应用于输出的归约方式。</li><li>默认值为“mean”。</li></ul></td>
173 <td>STRING</td>173 <td>STRING</td>
174 <td>-</td>174 <td>-</td>
175 </tr>175 </tr>
176 <tr>176 <tr>
177 <td>ignoreIndex</td>177 <td>ignoreIndex</td>
178 <td>可选属性</td>178 <td>可选属性</td>
179- <td><ul><li>指定被忽略的标签值。<li>默认值为-100。</ul></td>179+ <td><ul><li>指定被忽略的标签值。</li><li>默认值为-100。</li></ul></td>
180 <td>INT64</td>180 <td>INT64</td>
181 <td>-</td>181 <td>-</td>
182 </tr>182 </tr>
183 <tr>183 <tr>
184 <td>labelSmoothing</td>184 <td>labelSmoothing</td>
185 <td>可选属性</td>185 <td>可选属性</td>
186- <td><ul><li>表示计算loss时的平滑量。<li>当前仅支持输入0.0。</ul></td>186+ <td><ul><li>表示计算loss时的平滑量。</li><li>当前仅支持输入0.0。</li></ul></td>
187 <td>DOUBLE</td>187 <td>DOUBLE</td>
188 <td>-</td>188 <td>-</td>
189 </tr>189 </tr>
190 <tr>190 <tr>
191 <td>lseSquareScaleForZloss</td>191 <td>lseSquareScaleForZloss</td>
192 <td>可选属性</td>192 <td>可选属性</td>
193- <td><ul><li>表示zloss计算所需的scale。<li>当前暂不支持。</ul></td>193+ <td><ul><li>表示zloss计算所需的scale。</li><li>当前暂不支持。</li></ul></td>
194 <td>DOUBLE</td>194 <td>DOUBLE</td>
195 <td>-</td>195 <td>-</td>
196 </tr>196 </tr>
@@ -213,4 +213,4 @@
213 213 
214| 调用方式 | 样例代码 | 说明 |214| 调用方式 | 样例代码 | 说明 |
215| ---------------- | --------------------------- | --------------------------------------------------- |215| ---------------- | --------------------------- | --------------------------------------------------- |
216-| aclnn接口 | [test_aclnn_cross_entropy_loss_grad](examples/test_aclnn_cross_entropy_loss_grad.cpp) | 通过[aclnnCrossEntropyLossGrad](docs/aclnnCrossEntropyLossGrad.md)接口方式调用CrossEntropyLossGrad算子。 |216+| aclnn接口 | [test_aclnn_cross_entropy_loss_grad](examples/test_aclnn_cross_entropy_loss_grad.cpp) | 通过[aclnnCrossEntropyLossGrad](docs/aclnnCrossEntropyLossGrad.md)接口方式调用CrossEntropyLossGrad算子。 |
Mloss/cross_entropy_loss_grad/docs/aclnnCrossEntropyLossGrad.md+4-2
@@ -168,7 +168,7 @@ aclnnStatus aclnnCrossEntropyLossGrad(
168 <td>gradLoss(aclTensor*)</td>168 <td>gradLoss(aclTensor*)</td>
169 <td>输入</td>169 <td>输入</td>
170 <td>正向输出loss的梯度。参数与公式中grad对应。</td>170 <td>正向输出loss的梯度。参数与公式中grad对应。</td>
171- <td><ul><li>当reductionOptional为none时,要求为一个维度为1D的Tensor。</li><li>当reductionOptional为mean/sum时,要求为一个维度为0D的Tensor。</td>171+ <td><ul><li>当reductionOptional为none时,要求为一个维度为1D的Tensor。</li><li>当reductionOptional为mean/sum时,要求为一个维度为0D的Tensor。</li></ul></td>
172 <td>FLOAT16、FLOAT、BFLOAT16</td>172 <td>FLOAT16、FLOAT、BFLOAT16</td>
173 <td>ND</td>173 <td>ND</td>
174 <td>(N,)<br>N为批处理大小</td>174 <td>(N,)<br>N为批处理大小</td>
@@ -218,7 +218,8 @@ aclnnStatus aclnnCrossEntropyLossGrad(
218 <td>lseForZlossOptional(aclTensor*)</td>218 <td>lseForZlossOptional(aclTensor*)</td>
219 <td>可选输入</td>219 <td>可选输入</td>
220 <td>zloss相关输入,如果lse_square_scale_for_zloss非0,正向额外输出的lse_for_zloss中间结果给反向用于计算lse。</td>220 <td>zloss相关输入,如果lse_square_scale_for_zloss非0,正向额外输出的lse_for_zloss中间结果给反向用于计算lse。</td>
221- <td><ul><li>要求为一个维度为1D的Tensor。</li><li>当前暂不支持。</td>221+ <td><ul><li>要求为一个维度为1D的Tensor。</li><li>当前暂不支持。</li></ul>
222+ </td>
222 <td>FLOAT16、FLOAT、BFLOAT16</td>223 <td>FLOAT16、FLOAT、BFLOAT16</td>
223 <td>ND</td>224 <td>ND</td>
224 <td>(N,)</td>225 <td>(N,)</td>
@@ -323,6 +324,7 @@ aclnnStatus aclnnCrossEntropyLossGrad(
323 <td>ACLNN_ERR_PARAM_INVALID</td>324 <td>ACLNN_ERR_PARAM_INVALID</td>
324 <td>161002</td>325 <td>161002</td>
325 <td>gradLoss、logProb、target、weightOptional、gradZlossOptional、lseForZlossOptional的数据类型不在支持的范围内。</td>326 <td>gradLoss、logProb、target、weightOptional、gradZlossOptional、lseForZlossOptional的数据类型不在支持的范围内。</td>
327+ </tr>
326 <tr>328 <tr>
327 <td>ACLNN_ERR_INNER_TILING_ERROR</td>329 <td>ACLNN_ERR_INNER_TILING_ERROR</td>
328 <td>561002</td>330 <td>561002</td>
Mloss/ctc_loss_v2_grad/README.md+2-1
@@ -105,6 +105,7 @@
105 <td>输入序列追踪到目标序列的概率。</td>105 <td>输入序列追踪到目标序列的概率。</td>
106 <td>FLOAT16、FLOAT32、BFLOAT16</td>106 <td>FLOAT16、FLOAT32、BFLOAT16</td>
107 <td>ND</td>107 <td>ND</td>
108+ </tr>
108 <tr>109 <tr>
109 <td>blank</td>110 <td>blank</td>
110 <td>属性</td>111 <td>属性</td>
@@ -150,4 +151,4 @@
150 151 
151| 调用方式 | 样例代码 | 说明 |152| 调用方式 | 样例代码 | 说明 |
152| ---------------- | --------------------------- | --------------------------------------------------- |153| ---------------- | --------------------------- | --------------------------------------------------- |
153-| aclnn接口 | [test_aclnn_ctc_loss_backward](examples/arch35/test_aclnn_ctc_loss_backward.cpp) | 通过[aclnnCtcLossBackward](docs/aclnnCtcLossBackward.md)接口方式调用CtclossV2Grad算子。 |154+| aclnn接口 | [test_aclnn_ctc_loss_backward](examples/arch35/test_aclnn_ctc_loss_backward.cpp) | 通过[aclnnCtcLossBackward](docs/aclnnCtcLossBackward.md)接口方式调用CtclossV2Grad算子。 |
Mloss/ctc_loss_v3_grad/README.md+2-1
@@ -86,6 +86,7 @@
86 <td>输入序列追踪到目标序列的概率。</td>86 <td>输入序列追踪到目标序列的概率。</td>
87 <td>FLOAT16、FLOAT32、BFLOAT16、DOUBLE</td>87 <td>FLOAT16、FLOAT32、BFLOAT16、DOUBLE</td>
88 <td>ND</td>88 <td>ND</td>
89+ </tr>
89 <tr>90 <tr>
90 <td>blank</td>91 <td>blank</td>
91 <td>属性</td>92 <td>属性</td>
@@ -132,4 +133,4 @@
132 133 
133| 调用方式 | 样例代码 | 说明 |134| 调用方式 | 样例代码 | 说明 |
134| ---------------- | --------------------------- | --------------------------------------------------- |135| ---------------- | --------------------------- | --------------------------------------------------- |
135-| aclnn接口 | [test_aclnn_ctc_loss_v3_grad](examples/test_aclnn_ctc_loss_v3_grad.cpp) | 通过[aclnnCtcLossBackward](../ctc_loss_v2_grad/docs/aclnnCtcLossBackward.md)接口方式调用CtclossV3Grad算子。 |136+| aclnn接口 | [test_aclnn_ctc_loss_v3_grad](examples/test_aclnn_ctc_loss_v3_grad.cpp) | 通过[aclnnCtcLossBackward](../ctc_loss_v2_grad/docs/aclnnCtcLossBackward.md)接口方式调用CtclossV3Grad算子。 |
Mloss/fused_cross_entropy_loss_with_max_sum/docs/aclnnFusedCrossEntropyLossWithMaxSum.md+0-3
@@ -26,7 +26,6 @@
26 softMaxOutOptional = exp(vocab\_parallel\_logits -logits\_max.unsqueeze(dim = -1)) \ sum\_exp\_logits.unsqueeze(dim = -1)26 softMaxOutOptional = exp(vocab\_parallel\_logits -logits\_max.unsqueeze(dim = -1)) \ sum\_exp\_logits.unsqueeze(dim = -1)
27 $$27 $$
28 28 
29- 
30## 函数原型29## 函数原型
31 30 
32每个算子分为[两段式接口](../../../docs/zh/context/两段式接口.md),必须先调用“aclnnFusedCrossEntropyLossWithMaxSumGetWorkspaceSize”接口获取计算所需workspace大小以及包含了算子计算流程的执行器,再调用“aclnnFusedCrossEntropyLossWithMaxSum”接口执行计算。31每个算子分为[两段式接口](../../../docs/zh/context/两段式接口.md),必须先调用“aclnnFusedCrossEntropyLossWithMaxSumGetWorkspaceSize”接口获取计算所需workspace大小以及包含了算子计算流程的执行器,再调用“aclnnFusedCrossEntropyLossWithMaxSum”接口执行计算。
@@ -58,7 +57,6 @@ aclnnStatus aclnnFusedCrossEntropyLossWithMaxSum(
58 57 
59- **参数说明**58- **参数说明**
60 59 
61- </style>
62 <table class="tg" style="undefined;table-layout: fixed; width: 1447px"><colgroup>60 <table class="tg" style="undefined;table-layout: fixed; width: 1447px"><colgroup>
63 <col style="width: 267px">61 <col style="width: 267px">
64 <col style="width: 120px">62 <col style="width: 120px">
@@ -199,7 +197,6 @@ aclnnStatus aclnnFusedCrossEntropyLossWithMaxSum(
199 197 
200 第一段接口完成入参校验,出现以下场景时报错:198 第一段接口完成入参校验,出现以下场景时报错:
201 199
202- </style>
203 <table class="tg" style="undefined;table-layout: fixed; width: 970px"><colgroup>200 <table class="tg" style="undefined;table-layout: fixed; width: 970px"><colgroup>
204 <col style="width: 263px">201 <col style="width: 263px">
205 <col style="width: 88px">202 <col style="width: 88px">
Mloss/kl_div_loss_grad/docs/aclnnKlDivBackward.md+2-4
@@ -13,7 +13,6 @@
13| <term>Atlas 推理系列产品</term> | × |13| <term>Atlas 推理系列产品</term> | × |
14| <term>Atlas 训练系列产品</term> | × |14| <term>Atlas 训练系列产品</term> | × |
15 15 
16- 
17## 功能说明16## 功能说明
18 17 
19进行[aclnnKlDiv](https://gitcode.com/cann/ops-math/blob/master/math/kl_div_v2/docs/aclnnKlDiv.md) api的结果的反向计算。18进行[aclnnKlDiv](https://gitcode.com/cann/ops-math/blob/master/math/kl_div_v2/docs/aclnnKlDiv.md) api的结果的反向计算。
@@ -46,7 +45,6 @@ aclnnStatus aclnnKlDivBackward(
46 45 
47- **参数说明:**46- **参数说明:**
48 47 
49- </style>
50 <table class="tg" style="undefined;table-layout: fixed; width: 1435px"><colgroup>48 <table class="tg" style="undefined;table-layout: fixed; width: 1435px"><colgroup>
51 <col style="width: 205px">49 <col style="width: 205px">
52 <col style="width: 120px">50 <col style="width: 120px">
@@ -157,7 +155,6 @@ aclnnStatus aclnnKlDivBackward(
157 155 
158 第一段接口完成入参校验,出现以下场景时报错:156 第一段接口完成入参校验,出现以下场景时报错:
159 157
160- </style>
161 <table class="tg" style="undefined;table-layout: fixed; width: 991px"><colgroup>158 <table class="tg" style="undefined;table-layout: fixed; width: 991px"><colgroup>
162 <col style="width: 269px">159 <col style="width: 269px">
163 <col style="width: 90px">160 <col style="width: 90px">
@@ -242,12 +239,14 @@ aclnnStatus aclnnKlDivBackward(
242 aclnnStatus:返回状态码,具体参见[aclnn返回码](../../../docs/zh/context/aclnn返回码.md)。239 aclnnStatus:返回状态码,具体参见[aclnn返回码](../../../docs/zh/context/aclnn返回码.md)。
243 240 
244## 约束说明241## 约束说明
242+ 
245- 确定性计算: 243- 确定性计算:
246 - aclnnKlDivBackward默认确定性实现。244 - aclnnKlDivBackward默认确定性实现。
247 245 
248## 调用示例246## 调用示例
249 247 
250示例代码如下,仅供参考,具体编译和执行过程请参考[编译与运行样例](../../../docs/zh/context/编译与运行样例.md)。248示例代码如下,仅供参考,具体编译和执行过程请参考[编译与运行样例](../../../docs/zh/context/编译与运行样例.md)。
249+ 
251```Cpp250```Cpp
252#include <iostream>251#include <iostream>
253#include <vector>252#include <vector>
@@ -400,4 +399,3 @@ int main() {
400 return 0;399 return 0;
401}400}
402```401```
403- 
Mloss/kl_div_loss_grad/docs/aclnnKlDivTargetBackward.md+3-5
@@ -13,7 +13,6 @@
13| <term>Atlas 推理系列产品</term> | × |13| <term>Atlas 推理系列产品</term> | × |
14| <term>Atlas 训练系列产品</term> | × |14| <term>Atlas 训练系列产品</term> | × |
15 15 
16- 
17## 功能说明16## 功能说明
18 17 
19- 算子功能:进行[aclnnKlDiv](https://gitcode.com/cann/ops-math/blob/master/math/kl_div_v2/docs/aclnnKlDiv.md) api的结果的target反向计算。18- 算子功能:进行[aclnnKlDiv](https://gitcode.com/cann/ops-math/blob/master/math/kl_div_v2/docs/aclnnKlDiv.md) api的结果的target反向计算。
@@ -56,7 +55,6 @@ aclnnStatus aclnnKlDivTargetBackward(
56 55 
57- **参数说明:**56- **参数说明:**
58 57 
59- </style>
60 <table class="tg" style="undefined;table-layout: fixed; width: 1445px"><colgroup>58 <table class="tg" style="undefined;table-layout: fixed; width: 1445px"><colgroup>
61 <col style="width: 205px">59 <col style="width: 205px">
62 <col style="width: 120px">60 <col style="width: 120px">
@@ -167,7 +165,6 @@ aclnnStatus aclnnKlDivTargetBackward(
167 165 
168 第一段接口完成入参校验,出现以下场景时报错:166 第一段接口完成入参校验,出现以下场景时报错:
169 167
170- </style>
171 <table class="tg" style="undefined;table-layout: fixed; width: 991px"><colgroup>168 <table class="tg" style="undefined;table-layout: fixed; width: 991px"><colgroup>
172 <col style="width: 269px">169 <col style="width: 269px">
173 <col style="width: 90px">170 <col style="width: 90px">
@@ -252,12 +249,14 @@ aclnnStatus aclnnKlDivTargetBackward(
252 aclnnStatus:返回状态码,具体参见[aclnn返回码](../../../docs/zh/context/aclnn返回码.md)。249 aclnnStatus:返回状态码,具体参见[aclnn返回码](../../../docs/zh/context/aclnn返回码.md)。
253 250 
254## 约束说明251## 约束说明
255-- 确定性计算: 252+ 
253+- 确定性计算:
256 - aclnnKlDivTargetBackward默认确定性实现。254 - aclnnKlDivTargetBackward默认确定性实现。
257 255 
258## 调用示例256## 调用示例
259 257 
260示例代码如下,仅供参考,具体编译和执行过程请参考[编译与运行样例](../../../docs/zh/context/编译与运行样例.md)。258示例代码如下,仅供参考,具体编译和执行过程请参考[编译与运行样例](../../../docs/zh/context/编译与运行样例.md)。
259+ 
261```Cpp260```Cpp
262#include <iostream>261#include <iostream>
263#include <vector>262#include <vector>
@@ -410,4 +409,3 @@ int main() {
410 return 0;409 return 0;
411}410}
412```411```
413- 
Mloss/l1_loss_grad/docs/aclnnL1LossBackward.md+3-2
@@ -44,7 +44,6 @@ aclnnStatus aclnnBinaryCrossEntropy(
44 44 
45- **参数说明:**45- **参数说明:**
46 46
47- </style>
48 <table class="tg" style="undefined;table-layout: fixed; width: 1435px"><colgroup>47 <table class="tg" style="undefined;table-layout: fixed; width: 1435px"><colgroup>
49 <col style="width: 205px">48 <col style="width: 205px">
50 <col style="width: 120px">49 <col style="width: 120px">
@@ -144,7 +143,7 @@ aclnnStatus aclnnBinaryCrossEntropy(
144 aclnnStatus:返回状态码,具体参见[aclnn返回码](../../../docs/zh/context/aclnn返回码.md)。143 aclnnStatus:返回状态码,具体参见[aclnn返回码](../../../docs/zh/context/aclnn返回码.md)。
145 144 
146 第一段接口完成入参校验,出现以下场景时报错:145 第一段接口完成入参校验,出现以下场景时报错:
147- </style>146+
148 <table class="tg" style="undefined;table-layout: fixed; width: 991px"><colgroup>147 <table class="tg" style="undefined;table-layout: fixed; width: 991px"><colgroup>
149 <col style="width: 269px">148 <col style="width: 269px">
150 <col style="width: 90px">149 <col style="width: 90px">
@@ -231,12 +230,14 @@ aclnnStatus aclnnBinaryCrossEntropy(
231 aclnnStatus:返回状态码,具体参见[aclnn返回码](../../../docs/zh/context/aclnn返回码.md)。230 aclnnStatus:返回状态码,具体参见[aclnn返回码](../../../docs/zh/context/aclnn返回码.md)。
232 231 
233## 约束说明232## 约束说明
233+ 
234- 确定性计算: 234- 确定性计算:
235 - aclnnL1LossBackward默认确定性实现。235 - aclnnL1LossBackward默认确定性实现。
236 236 
237## 调用示例237## 调用示例
238 238 
239示例代码如下,仅供参考,具体编译和执行过程请参考[编译与运行样例](../../../docs/zh/context/编译与运行样例.md)。239示例代码如下,仅供参考,具体编译和执行过程请参考[编译与运行样例](../../../docs/zh/context/编译与运行样例.md)。
240+ 
240```Cpp241```Cpp
241#include <iostream>242#include <iostream>
242#include <vector>243#include <vector>
Mloss/lp_loss/docs/aclnnL1Loss.md+1-3
@@ -58,12 +58,10 @@ aclnnStatus aclnnL1Loss(
58 aclrtStream stream)58 aclrtStream stream)
59```59```
60 60 
61- 
62## aclnnL1LossGetWorkspaceSize61## aclnnL1LossGetWorkspaceSize
63 62 
64- **参数说明:**63- **参数说明:**
65 64 
66- </style>
67 <table class="tg" style="undefined;table-layout: fixed; width: 1435px"><colgroup>65 <table class="tg" style="undefined;table-layout: fixed; width: 1435px"><colgroup>
68 <col style="width: 205px">66 <col style="width: 205px">
69 <col style="width: 120px">67 <col style="width: 120px">
@@ -153,7 +151,7 @@ aclnnStatus aclnnL1Loss(
153 aclnnStatus:返回状态码,具体参见[aclnn返回码](../../../docs/zh/context/aclnn返回码.md)。151 aclnnStatus:返回状态码,具体参见[aclnn返回码](../../../docs/zh/context/aclnn返回码.md)。
154 152 
155 第一段接口完成入参校验,出现以下场景时报错:153 第一段接口完成入参校验,出现以下场景时报错:
156- </style>154+ 
157 <table class="tg" style="undefined;table-layout: fixed; width: 1150px"><colgroup>155 <table class="tg" style="undefined;table-layout: fixed; width: 1150px"><colgroup>
158 <col style="width: 269px">156 <col style="width: 269px">
159 <col style="width: 120px">157 <col style="width: 120px">
Mloss/mse_loss/README.md+3-3
@@ -1,6 +1,6 @@
1# MseLoss1# MseLoss
2 2 
3-## 产品支持情况3+## 产品支持情况
4 4 
5|产品 | 是否支持 |5|产品 | 是否支持 |
6|:-------------------------|:----------:|6|:-------------------------|:----------:|
@@ -54,7 +54,7 @@
54 <td>String</td>54 <td>String</td>
55 <td>ND</td>55 <td>ND</td>
56 </tr>56 </tr>
57- </tr>57+ <tr>
58 <td>y</td>58 <td>y</td>
59 <td>输出</td>59 <td>输出</td>
60 <td>输出的损失tensor</td>60 <td>输出的损失tensor</td>
@@ -72,4 +72,4 @@
72| 调用方式 | 调用样例 | 说明 |72| 调用方式 | 调用样例 | 说明 |
73|--------------|------------------------------------------------------------------------|--------------------------------------------------------------|73|--------------|------------------------------------------------------------------------|--------------------------------------------------------------|
74| aclnn调用 | [test_aclnn_mse_loss](./examples/arch35/test_aclnn_mse_loss.cpp) | 通过[aclnnMseLoss](./docs/aclnnMseLoss.md)接口方式调用MseLoss算子。 |74| aclnn调用 | [test_aclnn_mse_loss](./examples/arch35/test_aclnn_mse_loss.cpp) | 通过[aclnnMseLoss](./docs/aclnnMseLoss.md)接口方式调用MseLoss算子。 |
75-| aclnn调用 | [test_aclnn_mse_loss_out](./examples/arch35/test_aclnn_mse_loss_out.cpp) | 通过[aclnnMseLossOut](./docs/aclnnMseLossOut.md)接口方式调用MseLoss算子。 |75+| aclnn调用 | [test_aclnn_mse_loss_out](./examples/arch35/test_aclnn_mse_loss_out.cpp) | 通过[aclnnMseLossOut](./docs/aclnnMseLossOut.md)接口方式调用MseLoss算子。 |
Mloss/mse_loss/docs/aclnnMseLoss.md+2-4
@@ -61,7 +61,6 @@ aclnnStatus aclnnMseLoss(
61 61 
62- **参数说明:**62- **参数说明:**
63 63 
64- </style>
65 <table class="tg" style="undefined;table-layout: fixed; width: 1435px"><colgroup>64 <table class="tg" style="undefined;table-layout: fixed; width: 1435px"><colgroup>
66 <col style="width: 205px">65 <col style="width: 205px">
67 <col style="width: 120px">66 <col style="width: 120px">
@@ -146,13 +145,12 @@ aclnnStatus aclnnMseLoss(
146 </tr>145 </tr>
147 </tbody></table>146 </tbody></table>
148 147 
149- 
150- **返回值:**148- **返回值:**
151 149 
152 aclnnStatus:返回状态码,具体参见[aclnn返回码](../../../docs/zh/context/aclnn返回码.md)。150 aclnnStatus:返回状态码,具体参见[aclnn返回码](../../../docs/zh/context/aclnn返回码.md)。
153 151 
154 第一段接口完成入参校验,出现以下场景时报错:152 第一段接口完成入参校验,出现以下场景时报错:
155- </style>153+ 
156 <table class="tg" style="undefined;table-layout: fixed; width: 1150px"><colgroup>154 <table class="tg" style="undefined;table-layout: fixed; width: 1150px"><colgroup>
157 <col style="width: 269px">155 <col style="width: 269px">
158 <col style="width: 120px">156 <col style="width: 120px">
@@ -232,7 +230,6 @@ aclnnStatus aclnnMseLoss(
232 </tbody>230 </tbody>
233 </table>231 </table>
234 232 
235- 
236- **返回值:**233- **返回值:**
237 234 
238 aclnnStatus:返回状态码,具体参见[aclnn返回码](../../../docs/zh/context/aclnn返回码.md)。235 aclnnStatus:返回状态码,具体参见[aclnn返回码](../../../docs/zh/context/aclnn返回码.md)。
@@ -245,6 +242,7 @@ aclnnStatus aclnnMseLoss(
245## 调用示例242## 调用示例
246 243 
247示例代码如下,仅供参考,具体编译和执行过程请参考[编译与运行样例](../../../docs/zh/context/编译与运行样例.md)。244示例代码如下,仅供参考,具体编译和执行过程请参考[编译与运行样例](../../../docs/zh/context/编译与运行样例.md)。
245+ 
248```Cpp246```Cpp
249#include <iostream>247#include <iostream>
250#include <vector>248#include <vector>
Mloss/mse_loss/docs/aclnnMseLossOut.md+1-3
@@ -62,7 +62,6 @@ aclnnStatus aclnnLaclnnMseLossOut1Loss(
62 62 
63- **参数说明:**63- **参数说明:**
64 64 
65- </style>
66 <table class="tg" style="undefined;table-layout: fixed; width: 1435px"><colgroup>65 <table class="tg" style="undefined;table-layout: fixed; width: 1435px"><colgroup>
67 <col style="width: 205px">66 <col style="width: 205px">
68 <col style="width: 120px">67 <col style="width: 120px">
@@ -147,13 +146,12 @@ aclnnStatus aclnnLaclnnMseLossOut1Loss(
147 </tr>146 </tr>
148 </tbody></table>147 </tbody></table>
149 148 
150- 
151- **返回值:**149- **返回值:**
152 150 
153 aclnnStatus:返回状态码,具体参见[aclnn返回码](../../../docs/zh/context/aclnn返回码.md)。151 aclnnStatus:返回状态码,具体参见[aclnn返回码](../../../docs/zh/context/aclnn返回码.md)。
154 152 
155 第一段接口完成入参校验,出现以下场景时报错:153 第一段接口完成入参校验,出现以下场景时报错:
156- </style>154+ 
157 <table class="tg" style="undefined;table-layout: fixed; width: 1150px"><colgroup>155 <table class="tg" style="undefined;table-layout: fixed; width: 1150px"><colgroup>
158 <col style="width: 269px">156 <col style="width: 269px">
159 <col style="width: 120px">157 <col style="width: 120px">
Mloss/mse_loss_grad_v2/README.md+1-1
@@ -52,7 +52,7 @@
52 <tr>52 <tr>
53 <td>gradOutput</td>53 <td>gradOutput</td>
54 <td>输入</td>54 <td>输入</td>
55- <td>公式中的输入grad55+ <td>公式中的输入grad</td>
56 <td>BFLOAT16、FLOAT16、FLOAT</td>56 <td>BFLOAT16、FLOAT16、FLOAT</td>
57 <td>ND</td>57 <td>ND</td>
58 </tr>58 </tr>
Mloss/mse_loss_grad_v2/docs/aclnnMseLossBackward.md+2-3
@@ -57,7 +57,6 @@ aclnnStatus aclnnMseLossBackward(
57 57 
58- **参数说明:**58- **参数说明:**
59 59 
60- </style>
61 <table class="tg" style="undefined;table-layout: fixed; width: 1475px"><colgroup>60 <table class="tg" style="undefined;table-layout: fixed; width: 1475px"><colgroup>
62 <col style="width: 205px">61 <col style="width: 205px">
63 <col style="width: 120px">62 <col style="width: 120px">
@@ -157,7 +156,7 @@ aclnnStatus aclnnMseLossBackward(
157 aclnnStatus:返回状态码,具体参见[aclnn返回码](../../../docs/zh/context/aclnn返回码.md)。156 aclnnStatus:返回状态码,具体参见[aclnn返回码](../../../docs/zh/context/aclnn返回码.md)。
158 157 
159 第一段接口完成入参校验,出现以下场景时报错:158 第一段接口完成入参校验,出现以下场景时报错:
160- </style>159+ 
161 <table class="tg" style="undefined;table-layout: fixed; width: 1150px"><colgroup>160 <table class="tg" style="undefined;table-layout: fixed; width: 1150px"><colgroup>
162 <col style="width: 269px">161 <col style="width: 269px">
163 <col style="width: 120px">162 <col style="width: 120px">
@@ -401,4 +400,4 @@ int main() {
401 aclFinalize();400 aclFinalize();
402 return 0;401 return 0;
403}402}
404-```403+```
Mloss/multilabel_margin_loss/docs/aclnnMultilabelMarginLoss.md+1-3
@@ -76,7 +76,6 @@ aclnnStatus aclnnMultilabelMarginLoss(
76 76 
77- **参数说明**77- **参数说明**
78 78 
79- </style>
80 <table class="tg" style="undefined;table-layout: fixed; width: 1475px"><colgroup>79 <table class="tg" style="undefined;table-layout: fixed; width: 1475px"><colgroup>
81 <col style="width: 205px">80 <col style="width: 205px">
82 <col style="width: 120px">81 <col style="width: 120px">
@@ -176,7 +175,7 @@ aclnnStatus aclnnMultilabelMarginLoss(
176 aclnnStatus:返回状态码,具体参见[aclnn返回码](../../../docs/zh/context/aclnn返回码.md)。175 aclnnStatus:返回状态码,具体参见[aclnn返回码](../../../docs/zh/context/aclnn返回码.md)。
177 176 
178 第一段接口完成入参校验,出现以下场景时报错:177 第一段接口完成入参校验,出现以下场景时报错:
179- </style>178+ 
180 <table class="tg" style="undefined;table-layout: fixed; width: 1150px"><colgroup>179 <table class="tg" style="undefined;table-layout: fixed; width: 1150px"><colgroup>
181 <col style="width: 269px">180 <col style="width: 269px">
182 <col style="width: 120px">181 <col style="width: 120px">
@@ -425,4 +424,3 @@ int main() {
425 return 0;424 return 0;
426}425}
427```426```
428- 
Mloss/smooth_l1_loss_grad_v2/docs/aclnnSmoothL1LossBackward.md+4-6
@@ -65,7 +65,6 @@ aclnnStatus aclnnSmoothL1LossBackward(
65 65 
66- **参数说明:**66- **参数说明:**
67 67 
68- </style>
69 <table class="tg" style="undefined;table-layout: fixed; width: 1547px"><colgroup>68 <table class="tg" style="undefined;table-layout: fixed; width: 1547px"><colgroup>
70 <col style="width: 217px">69 <col style="width: 217px">
71 <col style="width: 120px">70 <col style="width: 120px">
@@ -170,13 +169,12 @@ aclnnStatus aclnnSmoothL1LossBackward(
170 </tr>169 </tr>
171 </tbody></table>170 </tbody></table>
172 171 
173- 
174- **返回值:**172- **返回值:**
175 173 
176 aclnnStatus:返回状态码,具体参见[aclnn返回码](../../../docs/zh/context/aclnn返回码.md)。174 aclnnStatus:返回状态码,具体参见[aclnn返回码](../../../docs/zh/context/aclnn返回码.md)。
177 175 
178 第一段接口完成入参校验,出现以下场景时报错:176 第一段接口完成入参校验,出现以下场景时报错:
179- </style>177+ 
180 <table class="tg" style="undefined;table-layout: fixed; width: 1150px"><colgroup>178 <table class="tg" style="undefined;table-layout: fixed; width: 1150px"><colgroup>
181 <col style="width: 269px">179 <col style="width: 269px">
182 <col style="width: 135px">180 <col style="width: 135px">
@@ -250,18 +248,19 @@ aclnnStatus aclnnSmoothL1LossBackward(
250 </tbody>248 </tbody>
251 </table>249 </table>
252 250 
253- 
254- **返回值:**251- **返回值:**
255 252
256 aclnnStatus:返回状态码,具体参见[aclnn返回码](../../../docs/zh/context/aclnn返回码.md)。253 aclnnStatus:返回状态码,具体参见[aclnn返回码](../../../docs/zh/context/aclnn返回码.md)。
257 254 
258## 约束说明255## 约束说明
259-- 确定性计算: 256+ 
257+- 确定性计算
260 - aclnnSmoothL1LossBackward默认确定性实现。258 - aclnnSmoothL1LossBackward默认确定性实现。
261 259 
262## 调用示例260## 调用示例
263 261 
264示例代码如下,仅供参考,具体编译和执行过程请参考[编译与运行样例](../../../docs/zh/context/编译与运行样例.md)。262示例代码如下,仅供参考,具体编译和执行过程请参考[编译与运行样例](../../../docs/zh/context/编译与运行样例.md)。
263+ 
265```Cpp264```Cpp
266#include <iostream>265#include <iostream>
267#include <vector>266#include <vector>
@@ -411,4 +410,3 @@ int main() {
411 return 0;410 return 0;
412}411}
413```412```
414- 
Mloss/smooth_l1_loss_v2/docs/aclnnSmoothL1Loss.md+3-3
@@ -69,7 +69,6 @@ aclnnStatus aclnnSmoothL1Loss(
69 69 
70- **参数说明:**70- **参数说明:**
71 71 
72- </style>
73 <table class="tg" style="undefined;table-layout: fixed; width: 1582px"><colgroup>72 <table class="tg" style="undefined;table-layout: fixed; width: 1582px"><colgroup>
74 <col style="width: 217px">73 <col style="width: 217px">
75 <col style="width: 120px">74 <col style="width: 120px">
@@ -169,7 +168,7 @@ aclnnStatus aclnnSmoothL1Loss(
169 aclnnStatus:返回状态码,具体参见[aclnn返回码](../../../docs/zh/context/aclnn返回码.md)。168 aclnnStatus:返回状态码,具体参见[aclnn返回码](../../../docs/zh/context/aclnn返回码.md)。
170 169
171 第一段接口完成入参校验,出现以下场景时报错:170 第一段接口完成入参校验,出现以下场景时报错:
172- </style>171+ 
173 <table class="tg" style="undefined;table-layout: fixed; width: 1150px"><colgroup>172 <table class="tg" style="undefined;table-layout: fixed; width: 1150px"><colgroup>
174 <col style="width: 269px">173 <col style="width: 269px">
175 <col style="width: 135px">174 <col style="width: 135px">
@@ -257,12 +256,14 @@ aclnnStatus aclnnSmoothL1Loss(
257 aclnnStatus:返回状态码,具体参见[aclnn返回码](../../../docs/zh/context/aclnn返回码.md)256 aclnnStatus:返回状态码,具体参见[aclnn返回码](../../../docs/zh/context/aclnn返回码.md)
258 257 
259## 约束说明258## 约束说明
259+ 
260- 确定性计算: 260- 确定性计算:
261 - aclnnSmoothL1Loss默认确定性实现。261 - aclnnSmoothL1Loss默认确定性实现。
262 262 
263## 调用示例263## 调用示例
264 264 
265示例代码如下,仅供参考,具体编译和执行过程请参考[编译与运行样例](../../../docs/zh/context/编译与运行样例.md)。265示例代码如下,仅供参考,具体编译和执行过程请参考[编译与运行样例](../../../docs/zh/context/编译与运行样例.md)。
266+ 
266```Cpp267```Cpp
267#include <iostream>268#include <iostream>
268#include <vector>269#include <vector>
@@ -404,4 +405,3 @@ int main() {
404 return 0;405 return 0;
405}406}
406```407```
407- 
Mloss/soft_margin_loss/docs/aclnnSoftMarginLoss.md+1-2
@@ -60,7 +60,6 @@ aclnnStatus aclnnSoftMarginLoss(
60 60 
61- **参数说明**61- **参数说明**
62 62 
63- </style>
64 <table class="tg" style="undefined;table-layout: fixed; width: 1547px"><colgroup>63 <table class="tg" style="undefined;table-layout: fixed; width: 1547px"><colgroup>
65 <col style="width: 217px">64 <col style="width: 217px">
66 <col style="width: 120px">65 <col style="width: 120px">
@@ -150,7 +149,7 @@ aclnnStatus aclnnSoftMarginLoss(
150 aclnnStatus:返回状态码,具体参见[aclnn返回码](../../../docs/zh/context/aclnn返回码.md)。149 aclnnStatus:返回状态码,具体参见[aclnn返回码](../../../docs/zh/context/aclnn返回码.md)。
151 150 
152 第一段接口完成入参校验,出现以下场景时报错:151 第一段接口完成入参校验,出现以下场景时报错:
153- </style>152+ 
154 <table class="tg" style="undefined;table-layout: fixed; width: 1150px"><colgroup>153 <table class="tg" style="undefined;table-layout: fixed; width: 1150px"><colgroup>
155 <col style="width: 269px">154 <col style="width: 269px">
156 <col style="width: 135px">155 <col style="width: 135px">
Mloss/soft_margin_loss_grad/docs/aclnnSoftMarginLossBackward.md+3-3
@@ -44,7 +44,6 @@ aclnnStatus aclnnSoftMarginLossBackward(
44 44 
45- **参数说明**45- **参数说明**
46 46 
47- </style>
48 <table class="tg" style="undefined;table-layout: fixed; width: 1547px"><colgroup>47 <table class="tg" style="undefined;table-layout: fixed; width: 1547px"><colgroup>
49 <col style="width: 217px">48 <col style="width: 217px">
50 <col style="width: 120px">49 <col style="width: 120px">
@@ -144,7 +143,7 @@ aclnnStatus aclnnSoftMarginLossBackward(
144 aclnnStatus:返回状态码,具体参见[aclnn返回码](../../../docs/zh/context/aclnn返回码.md)。143 aclnnStatus:返回状态码,具体参见[aclnn返回码](../../../docs/zh/context/aclnn返回码.md)。
145 144 
146 第一段接口完成入参校验,出现以下场景时报错:145 第一段接口完成入参校验,出现以下场景时报错:
147- </style>146+ 
148 <table class="tg" style="undefined;table-layout: fixed; width: 1150px"><colgroup>147 <table class="tg" style="undefined;table-layout: fixed; width: 1150px"><colgroup>
149 <col style="width: 269px">148 <col style="width: 269px">
150 <col style="width: 135px">149 <col style="width: 135px">
@@ -215,7 +214,6 @@ aclnnStatus aclnnSoftMarginLossBackward(
215 </tbody>214 </tbody>
216 </table>215 </table>
217 216 
218- 
219- **返回值**217- **返回值**
220 218 
221 **aclnnStatus**:返回状态码,具体参见[aclnn返回码](../../../docs/zh/context/aclnn返回码.md)。219 **aclnnStatus**:返回状态码,具体参见[aclnn返回码](../../../docs/zh/context/aclnn返回码.md)。
@@ -226,7 +224,9 @@ aclnnStatus aclnnSoftMarginLossBackward(
226 - aclnnSoftMarginLossBackward默认确定性实现。224 - aclnnSoftMarginLossBackward默认确定性实现。
227 225 
228## 调用示例226## 调用示例
227+ 
229示例代码如下,仅供参考,具体编译和执行过程请参考[编译与运行样例](../../../docs/zh/context/编译与运行样例.md)。228示例代码如下,仅供参考,具体编译和执行过程请参考[编译与运行样例](../../../docs/zh/context/编译与运行样例.md)。
229+ 
230```Cpp230```Cpp
231#include <iostream>231#include <iostream>
232#include <vector>232#include <vector>
Mmatmul/addmv/docs/aclnnAddmv.md+7-5
@@ -11,7 +11,6 @@
11| <term>Atlas 推理系列产品</term> | √ |11| <term>Atlas 推理系列产品</term> | √ |
12| <term>Atlas 训练系列产品</term> | √ |12| <term>Atlas 训练系列产品</term> | √ |
13 13 
14- 
15## 功能说明14## 功能说明
16 15 
17- 接口功能:完成矩阵乘计算,然后和向量相加。16- 接口功能:完成矩阵乘计算,然后和向量相加。
@@ -37,6 +36,7 @@ aclnnStatus aclnnAddmvGetWorkspaceSize(
37 uint64_t* workspaceSize, 36 uint64_t* workspaceSize,
38 aclOpExecutor** executor)37 aclOpExecutor** executor)
39```38```
39+ 
40```Cpp40```Cpp
41aclnnStatus aclnnAddmv(41aclnnStatus aclnnAddmv(
42 void* workspace, 42 void* workspace,
@@ -88,7 +88,8 @@ aclnnStatus aclnnAddmv(
88 <td>输入</td>88 <td>输入</td>
89 <td>和vec进行乘法运算的2维矩阵。</td>89 <td>和vec进行乘法运算的2维矩阵。</td>
90 <td><ul><li>数据类型需要与self构成<a href="../../../docs/zh/context/互推导关系.md">互推导关系。</a></li>90 <td><ul><li>数据类型需要与self构成<a href="../../../docs/zh/context/互推导关系.md">互推导关系。</a></li>
91- <li>shape需要与 vec 满足乘法关系。</ul></td>91+ <li>shape需要与 vec 满足乘法关系。</li>
92+ </ul></td>
92 <td>BFLOAT16、FLOAT16、FLOAT、INT32、INT64、INT16、INT8、UINT8、DOUBLE、BOOL</td>93 <td>BFLOAT16、FLOAT16、FLOAT、INT32、INT64、INT16、INT8、UINT8、DOUBLE、BOOL</td>
93 <td>ND</td>94 <td>ND</td>
94 <td>2</td>95 <td>2</td>
@@ -99,7 +100,8 @@ aclnnStatus aclnnAddmv(
99 <td>输入</td>100 <td>输入</td>
100 <td>和mat进行乘法运算的1维向量。</td>101 <td>和mat进行乘法运算的1维向量。</td>
101 <td><ul><li>数据类型需要与self构成<a href="../../../docs/zh/context/互推导关系.md">互推导关系。</a></li>102 <td><ul><li>数据类型需要与self构成<a href="../../../docs/zh/context/互推导关系.md">互推导关系。</a></li>
102- <li>shape需要与 mat 满足乘法关系。</ul></td>103+ <li>shape需要与 mat 满足乘法关系。</li>
104+ </ul></td>
103 <td>BFLOAT16、FLOAT16、FLOAT、INT32、INT64、INT16、INT8、UINT8、DOUBLE、BOOL</td>105 <td>BFLOAT16、FLOAT16、FLOAT、INT32、INT64、INT16、INT8、UINT8、DOUBLE、BOOL</td>
104 <td>ND</td>106 <td>ND</td>
105 <td>1</td>107 <td>1</td>
@@ -130,7 +132,8 @@ aclnnStatus aclnnAddmv(
130 <td>输出</td>132 <td>输出</td>
131 <td>指定的1维输出向量。</td>133 <td>指定的1维输出向量。</td>
132 <td><ul><li>数据类型需要是self, mat, vec, alpha, beta<a href="../../../docs/zh/context/互推导关系.md">推导后的数据类型。</a></li>134 <td><ul><li>数据类型需要是self, mat, vec, alpha, beta<a href="../../../docs/zh/context/互推导关系.md">推导后的数据类型。</a></li>
133- <li>shape与mat和vec的乘积相同。</ul></td>135+ <li>shape与mat和vec的乘积相同。</li>
136+ </ul></td>
134 <td>BFLOAT16、FLOAT16、FLOAT、INT32、INT64、INT16、INT8、UINT8、DOUBLE</td>137 <td>BFLOAT16、FLOAT16、FLOAT、INT32、INT64、INT16、INT8、UINT8、DOUBLE</td>
135 <td>ND</td>138 <td>ND</td>
136 <td>1</td>139 <td>1</td>
@@ -188,7 +191,6 @@ aclnnStatus aclnnAddmv(
188 191 
189 aclnnStatus:返回状态码,具体参见[aclnn返回码](../../../docs/zh/context/aclnn返回码.md)。192 aclnnStatus:返回状态码,具体参见[aclnn返回码](../../../docs/zh/context/aclnn返回码.md)。
190 193 
191- 
192 第一段接口完成入参校验,出现如下场景时报错:194 第一段接口完成入参校验,出现如下场景时报错:
193 195 
194 <table style="undefined;table-layout: fixed; width: 1149px"><colgroup>196 <table style="undefined;table-layout: fixed; width: 1149px"><colgroup>
Mmatmul/batch_mat_mul_v3/docs/aclnnBaddbmm&aclnnInplaceBaddbmm.md+8-1
@@ -35,6 +35,7 @@ self必须要支持和batch1@batch2的结果做broadcast。(broadcast,广播
35 - aclnnBaddbmm:需新建一个输出张量对象存储计算结果。35 - aclnnBaddbmm:需新建一个输出张量对象存储计算结果。
36 - aclnnInplaceBaddbmm:无需新建输出张量对象,直接在输入张量的内存中存储计算结果。36 - aclnnInplaceBaddbmm:无需新建输出张量对象,直接在输入张量的内存中存储计算结果。
37- 每个算子分为[两段式接口](../../../docs/zh/context/两段式接口.md),必须先调用“aclnnBaddbmmGetWorkspaceSize”接口获取入参并根据流程计算所需workspace大小,再调用“aclnnBaddbmm”接口执行计算。37- 每个算子分为[两段式接口](../../../docs/zh/context/两段式接口.md),必须先调用“aclnnBaddbmmGetWorkspaceSize”接口获取入参并根据流程计算所需workspace大小,再调用“aclnnBaddbmm”接口执行计算。
38+ 
38```cpp39```cpp
39aclnnStatus aclnnBaddbmmGetWorkspaceSize(40aclnnStatus aclnnBaddbmmGetWorkspaceSize(
40 const aclTensor* self,41 const aclTensor* self,
@@ -47,6 +48,7 @@ aclnnStatus aclnnBaddbmmGetWorkspaceSize(
47 uint64_t* workspaceSize,48 uint64_t* workspaceSize,
48 aclOpExecutor** executor)49 aclOpExecutor** executor)
49```50```
51+ 
50```cpp52```cpp
51aclnnStatus aclnnBaddbmm(53aclnnStatus aclnnBaddbmm(
52 void* workspace,54 void* workspace,
@@ -66,6 +68,7 @@ aclnnStatus aclnnInplaceBaddbmmGetWorkspaceSize(
66 uint64_t* workspaceSize,68 uint64_t* workspaceSize,
67 aclOpExecutor** executor)69 aclOpExecutor** executor)
68```70```
71+ 
69```cpp72```cpp
70aclnnStatus aclnnInplaceBaddbmm(73aclnnStatus aclnnInplaceBaddbmm(
71 void* workspace,74 void* workspace,
@@ -339,7 +342,8 @@ aclnnStatus aclnnInplaceBaddbmm(
339 <td>输入|输出</td>342 <td>输入|输出</td>
340 <td>输入输出tensor,即公式中的输入self与out。</td>343 <td>输入输出tensor,即公式中的输入self与out。</td>
341 <td><ul>344 <td><ul>
342- <li>数据类型与batch1@batch2的数据类型需满足数据类型推导规则(参见<a href="../../../docs/zh/context/互推导关系.md">互推导关系</a>和<a href="#约束说明">约束说明</a>)。<li>shape后两维需要与batch1@batch2后两维一致。</li>345+ <li>数据类型与batch1@batch2的数据类型需满足数据类型推导规则(参见<a href="../../../docs/zh/context/互推导关系.md">互推导关系</a>和<a href="#约束说明">约束说明</a>)。</li>
346+ <li>shape后两维需要与batch1@batch2后两维一致。</li>
343 <li>支持空Tensor。</li></ul></td>347 <li>支持空Tensor。</li></ul></td>
344 <td>BFLOAT16、FLOAT16、FLOAT32</td>348 <td>BFLOAT16、FLOAT16、FLOAT32</td>
345 <td>ND</td>349 <td>ND</td>
@@ -538,6 +542,7 @@ aclnnStatus aclnnInplaceBaddbmm(
538 aclnnStatus: 返回状态码,具体参见[aclnn返回码](../../../docs/zh/context/aclnn返回码.md)。542 aclnnStatus: 返回状态码,具体参见[aclnn返回码](../../../docs/zh/context/aclnn返回码.md)。
539 543 
540## 约束说明544## 约束说明
545+ 
541- 确定性说明:546- 确定性说明:
542aclnnBaddbmm&aclnnInplaceBaddbmm默认确定性实现。547aclnnBaddbmm&aclnnInplaceBaddbmm默认确定性实现。
543 548 
@@ -545,7 +550,9 @@ aclnnBaddbmm&aclnnInplaceBaddbmm默认确定性实现。
545- <term>Atlas A2 训练系列产品/Atlas A2 推理系列产品</term><term>Atlas A3 训练系列产品/Atlas A3 推理系列产品</term>:不支持batch1和batch2两输入其中一个输入为BFLOAT16, 另一个输入为FLOAT或FLOAT16的数据类型推导。550- <term>Atlas A2 训练系列产品/Atlas A2 推理系列产品</term><term>Atlas A3 训练系列产品/Atlas A3 推理系列产品</term>:不支持batch1和batch2两输入其中一个输入为BFLOAT16, 另一个输入为FLOAT或FLOAT16的数据类型推导。
546 551 
547## 调用示例552## 调用示例
553+ 
548示例代码如下,仅供参考,具体编译和执行过程请参考[编译与运行样例](../../../docs/zh/context/编译与运行样例.md)。554示例代码如下,仅供参考,具体编译和执行过程请参考[编译与运行样例](../../../docs/zh/context/编译与运行样例.md)。
555+ 
549```Cpp556```Cpp
550#include <iostream>557#include <iostream>
551#include <vector>558#include <vector>
Mmatmul/fused_linear_cross_entropy_loss_grad/README.md+3-3
@@ -1,6 +1,6 @@
1# FusedLinearCrossEntropyLossGrad1# FusedLinearCrossEntropyLossGrad
2 2 
3-## 产品支持情况3+## 产品支持情况
4 4 
5| 产品 | 是否支持 |5| 产品 | 是否支持 |
6| :----------------------------------------------------------- | :------: |6| :----------------------------------------------------------- | :------: |
@@ -47,7 +47,7 @@ $$
47\text{grad\_weight} = \text{softmax}^T \cdot \text{input} \in \mathbb{R}^{V \times H}47\text{grad\_weight} = \text{softmax}^T \cdot \text{input} \in \mathbb{R}^{V \times H}
48$$48$$
49 49 
50-</br>50+<br>
51&emsp;&emsp;省显存模式,softmaxOptional为nullptr:51&emsp;&emsp;省显存模式,softmaxOptional为nullptr:
52 52 
53$$53$$
@@ -106,4 +106,4 @@ $$
106 106 
107| 调用方式 | 调用样例 | 说明 |107| 调用方式 | 调用样例 | 说明 |
108|-----------|-------------------------------------|-------------------------------------|108|-----------|-------------------------------------|-------------------------------------|
109-| aclnn调用 | [test_aclnn_fused_linear_cross_entropy_loss_grad](./examples/test_aclnn_fused_linear_cross_entropy_loss_grad.cpp) | 通过aclnnFusedLinearCrossEntropyLossGrad接口方式调用FusedLinearCrossEntropyLossGrad算子。 |109+| aclnn调用 | [test_aclnn_fused_linear_cross_entropy_loss_grad](./examples/test_aclnn_fused_linear_cross_entropy_loss_grad.cpp) | 通过aclnnFusedLinearCrossEntropyLossGrad接口方式调用FusedLinearCrossEntropyLossGrad算子。 |
Mmatmul/fused_linear_cross_entropy_loss_grad/docs/aclnnFusedLinearCrossEntropyLossGrad.md+4-2
@@ -49,7 +49,7 @@ $$
49\text{grad\_weight} = \text{softmax}^T \cdot \text{input} \in \mathbb{R}^{V \times H}49\text{grad\_weight} = \text{softmax}^T \cdot \text{input} \in \mathbb{R}^{V \times H}
50$$50$$
51 51 
52-</br>52+<br>
53&emsp;&emsp;省显存模式,softmaxOptional为nullptr:53&emsp;&emsp;省显存模式,softmaxOptional为nullptr:
54 54 
55$$55$$
@@ -120,6 +120,7 @@ $$
120 uint64_t *workspaceSize,120 uint64_t *workspaceSize,
121 aclOpExecutor **executor)121 aclOpExecutor **executor)
122 ```122 ```
123+ 
123 ```Cpp124 ```Cpp
124 aclnnStatus aclnnFusedLinearCrossEntropyLossGrad(125 aclnnStatus aclnnFusedLinearCrossEntropyLossGrad(
125 void *workspace,126 void *workspace,
@@ -378,6 +379,7 @@ $$
378 aclnnStatus:返回状态码,具体参见[aclnn返回码](../../../docs/zh/context/aclnn返回码.md)。379 aclnnStatus:返回状态码,具体参见[aclnn返回码](../../../docs/zh/context/aclnn返回码.md)。
379 380 
380## 约束说明381## 约束说明
382+ 
381- 确定性说明:383- 确定性说明:
382 - aclnnFusedLinearCrossEntropyLossGrad默认确定性实现。384 - aclnnFusedLinearCrossEntropyLossGrad默认确定性实现。
383 385 
@@ -612,4 +614,4 @@ int main()
612 614 
613 return 0;615 return 0;
614}616}
615-```617+```
Mmatmul/fused_mat_mul/README.md+9-11
@@ -1,7 +1,6 @@
1# FusedMatMul1# FusedMatMul
2 2 
3- 3+## 产品支持情况
4-## 产品支持情况
5 4 
6| 产品 | 是否支持 |5| 产品 | 是否支持 |
7| :----------------------------------------------------------- | :------: |6| :----------------------------------------------------------- | :------: |
@@ -21,7 +20,6 @@
21 y = OP((x1 @ x2 + bias), x3)20 y = OP((x1 @ x2 + bias), x3)
22 $$21 $$
23 22 
24- 
25## 参数说明23## 参数说明
26 24 
27<table style="undefined;table-layout: fixed; width: 1550px"><colgroup>25<table style="undefined;table-layout: fixed; width: 1550px"><colgroup>
@@ -48,7 +46,7 @@
48 <td>x1</td>46 <td>x1</td>
49 <td>输入</td>47 <td>输入</td>
50 <td>公式中的输入x1。</td>48 <td>公式中的输入x1。</td>
51- <td><ul><li>数据类型需要与x2满足数据类型推导规则(参见<a href="../../docs/zh/context/互推导关系.md" target="_blank">互推导关系</a>)。</li></td>49+ <td><ul><li>数据类型需要与x2满足数据类型推导规则(参见<a href="../../docs/zh/context/互推导关系.md" target="_blank">互推导关系</a>)。</li></ul></td>
52 <td>FLOAT16、BFLOAT16、FLOAT32</td>50 <td>FLOAT16、BFLOAT16、FLOAT32</td>
53 <td>ND</td>51 <td>ND</td>
54 </tr>52 </tr>
@@ -56,7 +54,7 @@
56 <td>x2</td>54 <td>x2</td>
57 <td>输入</td>55 <td>输入</td>
58 <td>公式中的输入x2。</td>56 <td>公式中的输入x2。</td>
59- <td><ul><li>数据类型需要与x1满足数据类型推导规则(参见<a href="../../docs/zh/context/互推导关系.md" target="_blank">互推导关系</a>)。</li></td>57+ <td><ul><li>数据类型需要与x1满足数据类型推导规则(参见<a href="../../docs/zh/context/互推导关系.md" target="_blank">互推导关系</a>)。</li></ul></td>
60 <td>数据类型与x1保持一致</td>58 <td>数据类型与x1保持一致</td>
61 <td>ND</td>59 <td>ND</td>
62 </tr>60 </tr>
@@ -64,7 +62,7 @@
64 <td>bias</td>62 <td>bias</td>
65 <td>输入</td>63 <td>输入</td>
66 <td>公式中的输入bias。</td>64 <td>公式中的输入bias。</td>
67- <td><ul><li>仅当fusedOpType为""、"relu"、"add"、"mul"时生效,其他情况传入空指针即可。</li></td>65+ <td><ul><li>仅当fusedOpType为""、"relu"、"add"、"mul"时生效,其他情况传入空指针即可。</li></ul></td>
68 <td>FLOAT16、BFLOAT16、FLOAT32</td>66 <td>FLOAT16、BFLOAT16、FLOAT32</td>
69 <td>ND</td>67 <td>ND</td>
70 </tr>68 </tr>
@@ -72,7 +70,7 @@
72 <td>x3</td>70 <td>x3</td>
73 <td>输入</td>71 <td>输入</td>
74 <td>公式中的输入x3。</td>72 <td>公式中的输入x3。</td>
75- <td><ul>-</td>73+ <td>-</td>
76 <td>数据类型与x1保持一致</td>74 <td>数据类型与x1保持一致</td>
77 <td>ND</td>75 <td>ND</td>
78 </tr>76 </tr>
@@ -80,7 +78,7 @@
80 <td>fusedOpType</td>78 <td>fusedOpType</td>
81 <td>输入</td>79 <td>输入</td>
82 <td>公式中的输入OP。</td>80 <td>公式中的输入OP。</td>
83- <td><ul><li>融合模式取值必须是""(表示不做融合)、"add"、"mul"、"gelu_erf"、"gelu_tanh"、"relu"中的一种。</li></td>81+ <td><ul><li>融合模式取值必须是""(表示不做融合)、"add"、"mul"、"gelu_erf"、"gelu_tanh"、"relu"中的一种。</li></ul></td>
84 <td>STRING</td>82 <td>STRING</td>
85 <td>-</td>83 <td>-</td>
86 </tr>84 </tr>
@@ -88,16 +86,16 @@
88 <td>y</td>86 <td>y</td>
89 <td>输出</td>87 <td>输出</td>
90 <td>公式中的输出y。</td>88 <td>公式中的输出y。</td>
91- <td><ul><li>数据类型需要与x1和x2推导后的数据类型一致(参见<a href="../../docs/zh/context/互推导关系.md" target="_blank">互推导关系</a>)。</li></td>89+ <td><ul><li>数据类型需要与x1和x2推导后的数据类型一致(参见<a href="../../docs/zh/context/互推导关系.md" target="_blank">互推导关系</a>)。</li></ul></td>
92 <td>FLOAT16、BFLOAT16、FLOAT32</td>90 <td>FLOAT16、BFLOAT16、FLOAT32</td>
93 <td>ND</td>91 <td>ND</td>
94 </tr>92 </tr>
95 </tbody></table>93 </tbody></table>
96 94 
97- 
98## 约束说明95## 约束说明
99 96 
100- 当fusedOpType取值为"gelu_erf"、"gelu_tanh"时,x1、x2、x3的数据类型必须为BFLOAT16、FLOAT16;当fusedOpType为""、"relu"、"add"、"mul"时, x1、x2、x3的数据类型必须为FLOAT32(仅支持使能HFLOAT32场景)、BFLOAT16、FLOAT16。97- 当fusedOpType取值为"gelu_erf"、"gelu_tanh"时,x1、x2、x3的数据类型必须为BFLOAT16、FLOAT16;当fusedOpType为""、"relu"、"add"、"mul"时, x1、x2、x3的数据类型必须为FLOAT32(仅支持使能HFLOAT32场景)、BFLOAT16、FLOAT16。
98+ 
101## 调用说明99## 调用说明
102 100 
103<table style="undefined;table-layout: fixed; width: 900px"><colgroup>101<table style="undefined;table-layout: fixed; width: 900px"><colgroup>
@@ -117,4 +115,4 @@
117 <td><a href="examples/arch35/test_aclnn_fused_mat_mul.cpp">test_aclnn_fused_mat_mul</a></td>115 <td><a href="examples/arch35/test_aclnn_fused_mat_mul.cpp">test_aclnn_fused_mat_mul</a></td>
118 <td>通过<a href="docs/aclnnFusedMatmul.md">aclnnFusedMatmul</a>接口方式调用FusedMatmul算子</td>116 <td>通过<a href="docs/aclnnFusedMatmul.md">aclnnFusedMatmul</a>接口方式调用FusedMatmul算子</td>
119 </tr>117 </tr>
120- </tbody></table> 118+ </tbody></table>
Mmatmul/fused_mat_mul/docs/aclnnFusedMatmul.md+11-10
@@ -68,6 +68,7 @@ aclnnStatus aclnnFusedMatmulGetWorkspaceSize(
68 uint64_t *workspaceSize,68 uint64_t *workspaceSize,
69 aclOpExecutor **executor)69 aclOpExecutor **executor)
70```70```
71+ 
71```cpp72```cpp
72aclnnStatus aclnnFusedMatmul(73aclnnStatus aclnnFusedMatmul(
73 void *workspace,74 void *workspace,
@@ -105,7 +106,7 @@ aclnnStatus aclnnFusedMatmul(
105 <td>x1</td>106 <td>x1</td>
106 <td>输入</td>107 <td>输入</td>
107 <td>表示矩阵乘的第一个矩阵,对应公式中的x1。</td>108 <td>表示矩阵乘的第一个矩阵,对应公式中的x1。</td>
108- <td><ul><li>数据类型需要与x2满足数据类型推导规则(参见<a href="../../../docs/zh/context/互推导关系.md" target="_blank">互推导关系</a>)。</li></td>109+ <td>数据类型需要与x2满足数据类型推导规则(参见<a href="../../../docs/zh/context/互推导关系.md" target="_blank">互推导关系</a>)。</td>
109 <td>FLOAT16、BFLOAT16、FLOAT32</td>110 <td>FLOAT16、BFLOAT16、FLOAT32</td>
110 <td>ND</td>111 <td>ND</td>
111 <td>2</td>112 <td>2</td>
@@ -115,7 +116,7 @@ aclnnStatus aclnnFusedMatmul(
115 <td>x2</td>116 <td>x2</td>
116 <td>输入</td>117 <td>输入</td>
117 <td>表示矩阵乘的第二个矩阵,对应公式中的x2。</td>118 <td>表示矩阵乘的第二个矩阵,对应公式中的x2。</td>
118- <td><ul><li>数据类型需要与x1满足数据类型推导规则(参见<a href="../../../docs/zh/context/互推导关系.md" target="_blank">互推导关系</a>)。</li></td>119+ <td>数据类型需要与x1满足数据类型推导规则(参见<a href="../../../docs/zh/context/互推导关系.md" target="_blank">互推导关系</a>)。</td>
119 <td>数据类型与x1保持一致</td>120 <td>数据类型与x1保持一致</td>
120 <td>ND</td>121 <td>ND</td>
121 <td>2</td>122 <td>2</td>
@@ -125,7 +126,7 @@ aclnnStatus aclnnFusedMatmul(
125 <td>bias</td>126 <td>bias</td>
126 <td>输入</td>127 <td>输入</td>
127 <td>表示偏置项,对应公式中的bias。</td>128 <td>表示偏置项,对应公式中的bias。</td>
128- <td><ul><li>仅当fusedOpType为""、"relu"、"add"、"mul"时生效,其他情况传入空指针即可。</li></td>129+ <td>仅当fusedOpType为""、"relu"、"add"、"mul"时生效,其他情况传入空指针即可。</td>
129 <td>FLOAT16、BFLOAT16、FLOAT32</td>130 <td>FLOAT16、BFLOAT16、FLOAT32</td>
130 <td>ND</td>131 <td>ND</td>
131 <td>1-2</td>132 <td>1-2</td>
@@ -135,7 +136,7 @@ aclnnStatus aclnnFusedMatmul(
135 <td>x3</td>136 <td>x3</td>
136 <td>输入</td>137 <td>输入</td>
137 <td>表示融合操作的第二个矩阵,对应公式中的x3。</td>138 <td>表示融合操作的第二个矩阵,对应公式中的x3。</td>
138- <td><ul>-</td>139+ <td>-</td>
139 <td>数据类型与x1保持一致</td>140 <td>数据类型与x1保持一致</td>
140 <td>ND</td>141 <td>ND</td>
141 <td>2</td>142 <td>2</td>
@@ -145,7 +146,7 @@ aclnnStatus aclnnFusedMatmul(
145 <td>y</td>146 <td>y</td>
146 <td>输出</td>147 <td>输出</td>
147 <td>表示计算的输出矩阵,对应公式中的y。</td>148 <td>表示计算的输出矩阵,对应公式中的y。</td>
148- <td><ul><li>数据类型需要与x1和x2推导后的数据类型一致(参见<a href="../../../docs/zh/context/互推导关系.md" target="_blank">互推导关系</a>)。</li></td>149+ <td>数据类型需要与x1和x2推导后的数据类型一致(参见<a href="../../../docs/zh/context/互推导关系.md" target="_blank">互推导关系</a>)。</td>
149 <td>FLOAT16、BFLOAT16、FLOAT32</td>150 <td>FLOAT16、BFLOAT16、FLOAT32</td>
150 <td>ND</td>151 <td>ND</td>
151 <td>2</td>152 <td>2</td>
@@ -171,7 +172,7 @@ aclnnStatus aclnnFusedMatmul(
171 <td>fusedOpType</td>172 <td>fusedOpType</td>
172 <td>输入</td>173 <td>输入</td>
173 <td>表示指定Matmul算子支持的融合模式,对应公式中的OP。</td>174 <td>表示指定Matmul算子支持的融合模式,对应公式中的OP。</td>
174- <td><ul><li>融合模式取值必须是""(表示不做融合)、"add"、"mul"、"gelu_erf"、"gelu_tanh"、"relu"中的一种。</li></td>175+ <td>融合模式取值必须是""(表示不做融合)、"add"、"mul"、"gelu_erf"、"gelu_tanh"、"relu"中的一种。</td>
175 <td>STRING</td>176 <td>STRING</td>
176 <td>-</td>177 <td>-</td>
177 <td>-</td>178 <td>-</td>
@@ -181,7 +182,7 @@ aclnnStatus aclnnFusedMatmul(
181 <td>workspaceSize</td>182 <td>workspaceSize</td>
182 <td>输出</td>183 <td>输出</td>
183 <td>返回用户需要在Device侧申请的workspace大小。</td>184 <td>返回用户需要在Device侧申请的workspace大小。</td>
184- <td><ul>-</td>185+ <td>-</td>
185 <td>-</td>186 <td>-</td>
186 <td>-</td>187 <td>-</td>
187 <td>-</td>188 <td>-</td>
@@ -191,7 +192,7 @@ aclnnStatus aclnnFusedMatmul(
191 <td>executor</td>192 <td>executor</td>
192 <td>输出</td>193 <td>输出</td>
193 <td>返回op执行器,包含了算子计算流程。</td>194 <td>返回op执行器,包含了算子计算流程。</td>
194- <td><ul>-</td>195+ <td>-</td>
195 <td>-</td>196 <td>-</td>
196 <td>-</td>197 <td>-</td>
197 <td>-</td>198 <td>-</td>
@@ -258,7 +259,6 @@ aclnnStatus aclnnFusedMatmul(
258 </tr>259 </tr>
259 </tbody></table>260 </tbody></table>
260 261 
261- 
262## aclnnFusedMatmul262## aclnnFusedMatmul
263 263 
264- **参数说明:**264- **参数说明:**
@@ -301,6 +301,7 @@ aclnnStatus aclnnFusedMatmul(
301 aclnnStatus:返回状态码,具体参见[aclnn返回码](../../../docs/zh/context/aclnn返回码.md)。301 aclnnStatus:返回状态码,具体参见[aclnn返回码](../../../docs/zh/context/aclnn返回码.md)。
302 302 
303## 约束说明303## 约束说明
304+ 
304- 确定性说明:305- 确定性说明:
305 - <term>Atlas 训练系列产品</term><term>Atlas 推理系列产品</term>:aclnnFusedMatmul默认确定性实现。306 - <term>Atlas 训练系列产品</term><term>Atlas 推理系列产品</term>:aclnnFusedMatmul默认确定性实现。
306 307 
@@ -460,4 +461,4 @@ int main() {
460 aclFinalize();461 aclFinalize();
461 return 0;462 return 0;
462}463}
463-```464+```
Mmatmul/gemm_v3/README.md+4-5
@@ -1,7 +1,6 @@
1# GemmV31# GemmV3
2 2 
3- 3+## 产品支持情况
4-## 产品支持情况
5 4 
6| 产品 | 是否支持 |5| 产品 | 是否支持 |
7| ---- | :----:|6| ---- | :----:|
@@ -98,7 +97,7 @@
98 <tbody>97 <tbody>
99 <tr>98 <tr>
100 <td>aclnn接口</td>99 <td>aclnn接口</td>
101- <td>test_aclnn_gemmv3</a></td>100+ <td>test_aclnn_gemmv3</td>
102- <td>参考示例算子调用aclnnGemmv3</a>接口方式调用Gemmv3算子</td>101+ <td>参考示例算子调用aclnnGemmv3接口方式调用Gemmv3算子</td>
103 </tr>102 </tr>
104- </tbody></table> 103+ </tbody></table>
Mmatmul/mat_mul_v3/docs/aclnnAddmm&aclnnInplaceAddmm.md+9-6
@@ -32,6 +32,7 @@
32 - aclnnAddmm:需新建一个输出张量对象存储计算结果。32 - aclnnAddmm:需新建一个输出张量对象存储计算结果。
33 - aclnnInplaceAddmm:无需新建输出张量对象,直接在输入张量的内存中存储计算结果。33 - aclnnInplaceAddmm:无需新建输出张量对象,直接在输入张量的内存中存储计算结果。
34- 每个算子分为[两段式接口](../../../docs/zh/context/两段式接口.md),必须先调用 “aclnnAddmmGetWorkspaceSize” 或者 “aclnnInplaceAddmmGetWorkspaceSize” 接口获取入参并根据计算流程计算所需workspace大小,再调用 “aclnnAddmm” 或者 “aclnnInplaceAddmm” 接口执行计算。34- 每个算子分为[两段式接口](../../../docs/zh/context/两段式接口.md),必须先调用 “aclnnAddmmGetWorkspaceSize” 或者 “aclnnInplaceAddmmGetWorkspaceSize” 接口获取入参并根据计算流程计算所需workspace大小,再调用 “aclnnAddmm” 或者 “aclnnInplaceAddmm” 接口执行计算。
35+ 
35```cpp36```cpp
36aclnnStatus aclnnAddmmGetWorkspaceSize(37aclnnStatus aclnnAddmmGetWorkspaceSize(
37 const aclTensor *self,38 const aclTensor *self,
@@ -44,6 +45,7 @@ aclnnStatus aclnnAddmmGetWorkspaceSize(
44 uint64_t *workspaceSize,45 uint64_t *workspaceSize,
45 aclOpExecutor **executor)46 aclOpExecutor **executor)
46```47```
48+ 
47```cpp49```cpp
48aclnnStatus aclnnAddmm(50aclnnStatus aclnnAddmm(
49 void *workspace,51 void *workspace,
@@ -51,6 +53,7 @@ aclnnStatus aclnnAddmm(
51 aclOpExecutor *executor,53 aclOpExecutor *executor,
52 aclrtStream stream)54 aclrtStream stream)
53```55```
56+ 
54```cpp57```cpp
55aclnnStatus aclnnInplaceAddmmGetWorkspaceSize(58aclnnStatus aclnnInplaceAddmmGetWorkspaceSize(
56 const aclTensor *selfRef,59 const aclTensor *selfRef,
@@ -62,6 +65,7 @@ aclnnStatus aclnnInplaceAddmmGetWorkspaceSize(
62 uint64_t *workspaceSize,65 uint64_t *workspaceSize,
63 aclOpExecutor **executor)66 aclOpExecutor **executor)
64```67```
68+ 
65```cpp69```cpp
66aclnnStatus aclnnInplaceAddmm(70aclnnStatus aclnnInplaceAddmm(
67 void *workspace,71 void *workspace,
@@ -153,6 +157,7 @@ aclnnStatus aclnnInplaceAddmm(
153 <td>-</td>157 <td>-</td>
154 <td>-</td>158 <td>-</td>
155 </tr>159 </tr>
160+ <tr>
156 <td>out</td>161 <td>out</td>
157 <td>输出</td>162 <td>输出</td>
158 <td>表示矩阵乘的输出矩阵,公式中的out。</td>163 <td>表示矩阵乘的输出矩阵,公式中的out。</td>
@@ -290,7 +295,6 @@ aclnnStatus aclnnInplaceAddmm(
290 </tbody>295 </tbody>
291 </table>296 </table>
292 297 
293- 
294- **返回值**298- **返回值**
295 299 
296 aclnnStatus:返回状态码,具体参见[aclnn返回码](../../../docs/zh/context/aclnn返回码.md)。300 aclnnStatus:返回状态码,具体参见[aclnn返回码](../../../docs/zh/context/aclnn返回码.md)。
@@ -352,7 +356,6 @@ aclnnStatus aclnnInplaceAddmm(
352 <td>2</td>356 <td>2</td>
353 <td>√</td>357 <td>√</td>
354 </tr>358 </tr>
355- <tr>
356 <tr>359 <tr>
357 <td>beta(β)</td>360 <td>beta(β)</td>
358 <td>输入</td>361 <td>输入</td>
@@ -372,6 +375,7 @@ aclnnStatus aclnnInplaceAddmm(
372 <td>-</td>375 <td>-</td>
373 <td>-</td>376 <td>-</td>
374 <td>-</td>377 <td>-</td>
378+ </tr>
375 <tr>379 <tr>
376 <td>cubeMathType</td>380 <td>cubeMathType</td>
377 <td>输入</td>381 <td>输入</td>
@@ -462,12 +466,10 @@ aclnnStatus aclnnInplaceAddmm(
462 </tbody>466 </tbody>
463 </table>467 </table>
464 468 
465- 
466## aclnnInplaceAddmm469## aclnnInplaceAddmm
467 470 
468- **参数说明**471- **参数说明**
469 472 
470- 
471 <table style="undefined;table-layout: fixed; width: 1150px"><colgroup>473 <table style="undefined;table-layout: fixed; width: 1150px"><colgroup>
472 <col style="width: 168px">474 <col style="width: 168px">
473 <col style="width: 128px">475 <col style="width: 128px">
@@ -503,12 +505,12 @@ aclnnStatus aclnnInplaceAddmm(
503 </tbody>505 </tbody>
504 </table>506 </table>
505 507 
506- 
507- **返回值**508- **返回值**
508 509 
509 aclnnStatus:返回状态码,具体参见[aclnn返回码](../../../docs/zh/context/aclnn返回码.md)。510 aclnnStatus:返回状态码,具体参见[aclnn返回码](../../../docs/zh/context/aclnn返回码.md)。
510 511 
511## 约束说明512## 约束说明
513+ 
512- 确定性说明:514- 确定性说明:
513 - <term>Atlas 训练系列产品</term><term>Atlas 推理系列产品</term>:aclnnAddmm&aclnnInplaceAddmm默认非确定性实现,支持通过aclrtCtxSetSysParamOpt开启确定性。515 - <term>Atlas 训练系列产品</term><term>Atlas 推理系列产品</term>:aclnnAddmm&aclnnInplaceAddmm默认非确定性实现,支持通过aclrtCtxSetSysParamOpt开启确定性。
514 - <term>Ascend 950PR/Ascend 950DT</term>: aclnnAddmm&aclnnInplaceAddmm默认确定性实现。516 - <term>Ascend 950PR/Ascend 950DT</term>: aclnnAddmm&aclnnInplaceAddmm默认确定性实现。
@@ -519,9 +521,10 @@ aclnnStatus aclnnInplaceAddmm(
519 - aclnnAddmm&aclnnInplaceAddmm默认非一致性实现,支持通过aclrtCtxSetSysParamOpt开启一致性。521 - aclnnAddmm&aclnnInplaceAddmm默认非一致性实现,支持通过aclrtCtxSetSysParamOpt开启一致性。
520 - 例如,在进行矩阵乘时,不同基本块的累加顺序可能不同,这可能会导致相同数据在不同行的计算结果出现细微差异。然而,在开启强一致性计算的情况下,即使在不同的行中,只要输入相同,计算结果也将相同。522 - 例如,在进行矩阵乘时,不同基本块的累加顺序可能不同,这可能会导致相同数据在不同行的计算结果出现细微差异。然而,在开启强一致性计算的情况下,即使在不同的行中,只要输入相同,计算结果也将相同。
521 523 
522- 
523## 调用示例524## 调用示例
525+ 
524示例代码如下,仅供参考,具体编译和执行过程请参考[编译与运行样例](../../../docs/zh/context/编译与运行样例.md)。526示例代码如下,仅供参考,具体编译和执行过程请参考[编译与运行样例](../../../docs/zh/context/编译与运行样例.md)。
527+ 
525```Cpp528```Cpp
526#include <iostream>529#include <iostream>
527#include <vector>530#include <vector>
Mmatmul/mat_mul_v3/docs/aclnnAddmmWeightNz.md+7-8
@@ -27,8 +27,8 @@
27 27 
28## 函数原型28## 函数原型
29 29 
30- 
31每个算子分为[两段式接口](../../../docs/zh/context/两段式接口.md),必须先调用 “aclnnAddmmWeightNzGetWorkspaceSize” 接口获取入参并根据计算流程计算所需workspace大小,再调用 “aclnnAddmmWeightNz”接口执行计算。30每个算子分为[两段式接口](../../../docs/zh/context/两段式接口.md),必须先调用 “aclnnAddmmWeightNzGetWorkspaceSize” 接口获取入参并根据计算流程计算所需workspace大小,再调用 “aclnnAddmmWeightNz”接口执行计算。
31+ 
32```cpp32```cpp
33aclnnStatus aclnnAddmmWeightNzGetWorkspaceSize(33aclnnStatus aclnnAddmmWeightNzGetWorkspaceSize(
34 const aclTensor *self, 34 const aclTensor *self,
@@ -41,6 +41,7 @@ aclnnStatus aclnnAddmmWeightNzGetWorkspaceSize(
41 uint64_t *workspaceSize, 41 uint64_t *workspaceSize,
42 aclOpExecutor **executor)42 aclOpExecutor **executor)
43```43```
44+ 
44```cpp45```cpp
45aclnnStatus aclnnAddmmWeightNz(46aclnnStatus aclnnAddmmWeightNz(
46 void *workspace,47 void *workspace,
@@ -49,7 +50,6 @@ aclnnStatus aclnnAddmmWeightNz(
49 aclrtStream stream)50 aclrtStream stream)
50```51```
51 52 
52- 
53## aclnnAddmmWeightNzGetWorkspaceSize53## aclnnAddmmWeightNzGetWorkspaceSize
54 54 
55- **参数说明**55- **参数说明**
@@ -102,8 +102,8 @@ aclnnStatus aclnnAddmmWeightNz(
102 <td>输入</td>102 <td>输入</td>
103 <td>表示矩阵乘的第二个矩阵,公式中的mat2。</td>103 <td>表示矩阵乘的第二个矩阵,公式中的mat2。</td>
104 <td><ul><li>数据类型需要与mat1满足数据类型推导规则(参见<a href="../../../docs/zh/context/互推导关系.md">互推导关系</a>和<a href="#约束说明">约束说明</a>)。</li><li>mat2的Reduce维度需要与mat1的Reduce维度大小相等。</li><li>需要与self、mat1满足<a href="../../../docs/zh/context/broadcast关系.md">broadcast关系</a>。</li> 104 <td><ul><li>数据类型需要与mat1满足数据类型推导规则(参见<a href="../../../docs/zh/context/互推导关系.md">互推导关系</a>和<a href="#约束说明">约束说明</a>)。</li><li>mat2的Reduce维度需要与mat1的Reduce维度大小相等。</li><li>需要与self、mat1满足<a href="../../../docs/zh/context/broadcast关系.md">broadcast关系</a>。</li>
105- </li><li>当mat2矩阵不转置时,NZ格式各个维度表示:(n1,k1,k0,n0),其中k0 = 16, n0为16。mat1 shape中的k和mat2 shape中的k1需要满足以下关系:ceil(k,k0) = k1, mat2 shape中的n1与out的n满足以下关系:ceil(n, n0) = n1。</li> 105+ <li>当mat2矩阵不转置时,NZ格式各个维度表示:(n1,k1,k0,n0),其中k0 = 16, n0为16。mat1 shape中的k和mat2 shape中的k1需要满足以下关系:ceil(k,k0) = k1, mat2 shape中的n1与out的n满足以下关系:ceil(n, n0) = n1。</li>
106- </li><li>当mat2矩阵转置时,NZ格式各个维度表示:(k1,n1,n0,k0),其中n0 = 16, k0 = 16。mat1 shape中的k和mat2 shape中的k1需要满足以下关系:ceil(k,k0) = k1, mat2 shape中的n1与out的n满足以下关系:ceil(n, n0) = n1。</li> 106+ <li>当mat2矩阵转置时,NZ格式各个维度表示:(k1,n1,n0,k0),其中n0 = 16, k0 = 16。mat1 shape中的k和mat2 shape中的k1需要满足以下关系:ceil(k,k0) = k1, mat2 shape中的n1与out的n满足以下关系:ceil(n, n0) = n1。</li></ul>
107 </td>107 </td>
108 <td>BFLOAT16、FLOAT16</td>108 <td>BFLOAT16、FLOAT16</td>
109 <td>NZ</td>109 <td>NZ</td>
@@ -223,12 +223,10 @@ aclnnStatus aclnnAddmmWeightNz(
223 </tbody>223 </tbody>
224 </table>224 </table>
225 225 
226- 
227## aclnnAddmmWeightNz226## aclnnAddmmWeightNz
228 227 
229- **参数说明**228- **参数说明**
230 229 
231- 
232 <table style="undefined;table-layout: fixed; width: 1150px"><colgroup>230 <table style="undefined;table-layout: fixed; width: 1150px"><colgroup>
233 <col style="width: 168px">231 <col style="width: 168px">
234 <col style="width: 128px">232 <col style="width: 128px">
@@ -264,12 +262,12 @@ aclnnStatus aclnnAddmmWeightNz(
264 </tbody>262 </tbody>
265 </table>263 </table>
266 264 
267- 
268- **返回值**265- **返回值**
269 266 
270 aclnnStatus:返回状态码,具体参见[aclnn返回码](../../../docs/zh/context/aclnn返回码.md)。267 aclnnStatus:返回状态码,具体参见[aclnn返回码](../../../docs/zh/context/aclnn返回码.md)。
271 268 
272## 约束说明269## 约束说明
270+ 
273- 确定性说明:aclnnAddmmWeightNz默认确定性实现。271- 确定性说明:aclnnAddmmWeightNz默认确定性实现。
274 272 
275- 计算一致性说明273- 计算一致性说明
@@ -281,9 +279,10 @@ aclnnStatus aclnnAddmmWeightNz(
281- 不支持mat1与mat2两个输入中一个输入为BFLOAT16,另一个输入为FLOAT或者FLOAT16的数据类型推导。279- 不支持mat1与mat2两个输入中一个输入为BFLOAT16,另一个输入为FLOAT或者FLOAT16的数据类型推导。
282- 不支持mat2最后两根轴其中一根轴为1,即k=1或者n=1。280- 不支持mat2最后两根轴其中一根轴为1,即k=1或者n=1。
283 281 
284- 
285## 调用示例282## 调用示例
283+ 
286示例代码如下,仅供参考,具体编译和执行过程请参考[编译与运行样例](../../../docs/zh/context/编译与运行样例.md)。284示例代码如下,仅供参考,具体编译和执行过程请参考[编译与运行样例](../../../docs/zh/context/编译与运行样例.md)。
285+ 
287```Cpp286```Cpp
288 #include <iostream>287 #include <iostream>
289 #include <vector>288 #include <vector>
Mmatmul/mat_mul_v3/docs/aclnnMatmul.md+5-1
@@ -24,6 +24,7 @@
24## 函数原型24## 函数原型
25 25 
26每个算子分为[两段式接口](../../../docs/zh/context/两段式接口.md),必须先调用“aclnnMatmulGetWorkspaceSize”接口获取计算所需workspace大小以及包含了算子计算流程的执行器,再调用“aclnnMatmul”接口执行计算。26每个算子分为[两段式接口](../../../docs/zh/context/两段式接口.md),必须先调用“aclnnMatmulGetWorkspaceSize”接口获取计算所需workspace大小以及包含了算子计算流程的执行器,再调用“aclnnMatmul”接口执行计算。
27+ 
27```cpp28```cpp
28aclnnStatus aclnnMatmulGetWorkspaceSize(29aclnnStatus aclnnMatmulGetWorkspaceSize(
29 const aclTensor *self,30 const aclTensor *self,
@@ -41,7 +42,9 @@ aclnnStatus aclnnMatmul(
41 aclOpExecutor *executor,42 aclOpExecutor *executor,
42 aclrtStream stream)43 aclrtStream stream)
43```44```
45+ 
44## aclnnMatmulGetWorkspaceSize46## aclnnMatmulGetWorkspaceSize
47+ 
45- **参数说明:**48- **参数说明:**
46 <table style="undefined;table-layout: fixed; width: 1508px"><colgroup>49 <table style="undefined;table-layout: fixed; width: 1508px"><colgroup>
47 <col style="width: 151px">50 <col style="width: 151px">
@@ -229,12 +232,12 @@ aclnnStatus aclnnMatmul(
229 </table>232 </table>
230 </div>233 </div>
231 234 
232- 
233- **返回值:**235- **返回值:**
234 236 
235 aclnnStatus:返回状态码,具体参见[aclnn返回码](../../../docs/zh/context/aclnn返回码.md)。237 aclnnStatus:返回状态码,具体参见[aclnn返回码](../../../docs/zh/context/aclnn返回码.md)。
236 238 
237## 约束说明239## 约束说明
240+ 
238- 确定性说明:241- 确定性说明:
239 - <term>Atlas 训练系列产品</term><term>Atlas 推理系列产品</term>:aclnnMatmul默认确定性实现。242 - <term>Atlas 训练系列产品</term><term>Atlas 推理系列产品</term>:aclnnMatmul默认确定性实现。
240 - <term>Ascend 950PR/Ascend 950DT</term>: aclnnMatmul默认确定性实现。243 - <term>Ascend 950PR/Ascend 950DT</term>: aclnnMatmul默认确定性实现。
@@ -251,6 +254,7 @@ aclnnStatus aclnnMatmul(
251## 调用示例254## 调用示例
252 255 
253示例代码如下,仅供参考,具体编译和执行过程请参考[编译与运行样例](../../../docs/zh/context/编译与运行样例.md)。256示例代码如下,仅供参考,具体编译和执行过程请参考[编译与运行样例](../../../docs/zh/context/编译与运行样例.md)。
257+ 
254```Cpp258```Cpp
255#include <iostream>259#include <iostream>
256#include <vector>260#include <vector>
Mmatmul/mat_mul_v3/docs/aclnnMatmulWeightNz.md+15-10
@@ -24,6 +24,7 @@
24## 函数原型24## 函数原型
25 25 
26每个算子分为[两段式接口](../../../docs/zh/context/两段式接口.md),必须先调用“aclnnMatmulWeightNzGetWorkspaceSize”接口获取计算所需workspace大小以及包含了算子计算流程的执行器,再调用“aclnnMatmulWeightNz”接口执行计算。26每个算子分为[两段式接口](../../../docs/zh/context/两段式接口.md),必须先调用“aclnnMatmulWeightNzGetWorkspaceSize”接口获取计算所需workspace大小以及包含了算子计算流程的执行器,再调用“aclnnMatmulWeightNz”接口执行计算。
27+ 
27```cpp28```cpp
28aclnnStatus aclnnMatmulWeightNzGetWorkspaceSize(29aclnnStatus aclnnMatmulWeightNzGetWorkspaceSize(
29 const aclTensor *self,30 const aclTensor *self,
@@ -33,6 +34,7 @@ aclnnStatus aclnnMatmulWeightNzGetWorkspaceSize(
33 uint64_t *workspaceSize,34 uint64_t *workspaceSize,
34 aclOpExecutor **executor)35 aclOpExecutor **executor)
35```36```
37+ 
36```cpp38```cpp
37aclnnStatus aclnnMatmulWeightNz(39aclnnStatus aclnnMatmulWeightNz(
38 void *workspace,40 void *workspace,
@@ -42,6 +44,7 @@ aclnnStatus aclnnMatmulWeightNz(
42```44```
43 45 
44## aclnnMatmulWeightNzGetWorkspaceSize46## aclnnMatmulWeightNzGetWorkspaceSize
47+ 
45- **参数说明**48- **参数说明**
46 <table style="undefined;table-layout: fixed; width: 1508px"><colgroup>49 <table style="undefined;table-layout: fixed; width: 1508px"><colgroup>
47 <col style="width: 151px">50 <col style="width: 151px">
@@ -69,9 +72,9 @@ aclnnStatus aclnnMatmulWeightNz(
69 <td>self</td>72 <td>self</td>
70 <td>输入</td>73 <td>输入</td>
71 <td>表示矩阵乘的第一个矩阵,公式中的self。</td>74 <td>表示矩阵乘的第一个矩阵,公式中的self。</td>
72- <td>数据类型需要与mat2满足数据类型推导规则(参见<a href="../../../docs/zh/context/互推导关系.md">互推导关系</a>和<a href="#约束说明">约束说明</a>)。</br>75+ <td>数据类型需要与mat2满足数据类型推导规则(参见<a href="../../../docs/zh/context/互推导关系.md">互推导关系</a>和<a href="#约束说明">约束说明</a>)。<br>
73- - 在self不转置的情况下各个维度表示:(m,k)</br>76+ - 在self不转置的情况下各个维度表示:(m,k)<br>
74- - 在self转置的情况下各个维度表示:(k,m)</br></td>77+ - 在self转置的情况下各个维度表示:(k,m)</td>
75 <td>BFLOAT16、FLOAT16</td>78 <td>BFLOAT16、FLOAT16</td>
76 <td>ND</td>79 <td>ND</td>
77 <td>2</td>80 <td>2</td>
@@ -81,10 +84,10 @@ aclnnStatus aclnnMatmulWeightNz(
81 <td>mat2</td>84 <td>mat2</td>
82 <td>输入</td>85 <td>输入</td>
83 <td>表示矩阵乘的第二个矩阵,公式中的mat2。</td>86 <td>表示矩阵乘的第二个矩阵,公式中的mat2。</td>
84- <td>数据类型需要与self满足数据类型推导规则(参见<a href="../../../docs/zh/context/互推导关系.md">互推导关系</a>和<a href="#约束说明">约束说明</a>)。</br>87+ <td>数据类型需要与self满足数据类型推导规则(参见<a href="../../../docs/zh/context/互推导关系.md">互推导关系</a>和<a href="#约束说明">约束说明</a>)。<br>
85- mat2的Reduce维度需要与self的Reduce维度大小相等。</br>88+ mat2的Reduce维度需要与self的Reduce维度大小相等。<br>
86- 当B矩阵不转置时, NZ格式各个维度表示:(n1,k1,k0,n0),其中k0 = 16, n0为16。self shape中的k和mat2 shape中的k1需要满足以下关系:ceil(k,k0) = k1, mat2 shape中的n1与out的n满足以下关系: ceil(n, n0) = n1。</br>89+ 当B矩阵不转置时, NZ格式各个维度表示:(n1,k1,k0,n0),其中k0 = 16, n0为16。self shape中的k和mat2 shape中的k1需要满足以下关系:ceil(k,k0) = k1, mat2 shape中的n1与out的n满足以下关系: ceil(n, n0) = n1。<br>
87- 当B矩阵转置时, NZ格式各个维度表示:(k1,n1,n0,k0),其中n0 = 16, k0为16。self shape中的k和mat2 shape中的k1需要满足以下关系:ceil(k,k0) = k1, mat2 shape中的n1与out的n满足以下关系: ceil(n, n0) = n1。</br>90+ 当B矩阵转置时, NZ格式各个维度表示:(k1,n1,n0,k0),其中n0 = 16, k0为16。self shape中的k和mat2 shape中的k1需要满足以下关系:ceil(k,k0) = k1, mat2 shape中的n1与out的n满足以下关系: ceil(n, n0) = n1。<br>
88 </td>91 </td>
89 <td>BFLOAT16、FLOAT16、FLOAT32</td>92 <td>BFLOAT16、FLOAT16、FLOAT32</td>
90 <td>NZ</td>93 <td>NZ</td>
@@ -178,9 +181,10 @@ aclnnStatus aclnnMatmulWeightNz(
178 </tr>181 </tr>
179 <tr>182 <tr>
180 <td>self和mat2无法做数据类型推导。</td>183 <td>self和mat2无法做数据类型推导。</td>
184+ </tr>
181 <tr>185 <tr>
182 <td>推导出的数据类型无法转换为指定输出out的类型。</td>186 <td>推导出的数据类型无法转换为指定输出out的类型。</td>
183- <tr>187+ </tr>
184 </tbody>188 </tbody>
185 </table>189 </table>
186 190 
@@ -188,7 +192,6 @@ aclnnStatus aclnnMatmulWeightNz(
188 192 
189- **参数说明**193- **参数说明**
190 194 
191- 
192 <div style="overflow-x: auto;">195 <div style="overflow-x: auto;">
193 <table style="undefined;table-layout: fixed; width: 1030px"><colgroup>196 <table style="undefined;table-layout: fixed; width: 1030px"><colgroup>
194 <col style="width: 250px">197 <col style="width: 250px">
@@ -226,12 +229,12 @@ aclnnStatus aclnnMatmulWeightNz(
226 </table>229 </table>
227 </div>230 </div>
228 231 
229- 
230- **返回值**232- **返回值**
231 233 
232 aclnnStatus:返回状态码,具体参见[aclnn返回码](../../../docs/zh/context/aclnn返回码.md)。234 aclnnStatus:返回状态码,具体参见[aclnn返回码](../../../docs/zh/context/aclnn返回码.md)。
233 235 
234## 约束说明236## 约束说明
237+ 
235- 确定性说明:238- 确定性说明:
236 - <term>Atlas 训练系列产品</term><term>Atlas 推理系列产品</term><term>Ascend 950PR/Ascend 950DT</term>:aclnnMatmulWeightNz默认确定性实现。239 - <term>Atlas 训练系列产品</term><term>Atlas 推理系列产品</term><term>Ascend 950PR/Ascend 950DT</term>:aclnnMatmulWeightNz默认确定性实现。
237 240 
@@ -250,6 +253,7 @@ aclnnStatus aclnnMatmulWeightNz(
250 253 
251- <term>Atlas A2 训练系列产品/Atlas A2 推理系列产品</term><term>Atlas A3 训练系列产品/Atlas A3 推理系列产品</term>254- <term>Atlas A2 训练系列产品/Atlas A2 推理系列产品</term><term>Atlas A3 训练系列产品/Atlas A3 推理系列产品</term>
252 self和mat2数据类型为float16,mat2为NZ格式场景下的示例代码如下,仅供参考,具体编译和执行过程请参考[编译与运行样例](../../../docs/zh/context/编译与运行样例.md)。255 self和mat2数据类型为float16,mat2为NZ格式场景下的示例代码如下,仅供参考,具体编译和执行过程请参考[编译与运行样例](../../../docs/zh/context/编译与运行样例.md)。
256+ 
253 ```Cpp257 ```Cpp
254 #include <iostream>258 #include <iostream>
255 #include <vector>259 #include <vector>
@@ -474,6 +478,7 @@ aclnnStatus aclnnMatmulWeightNz(
474 478 
475- <term>Ascend 950PR/Ascend 950DT</term>479- <term>Ascend 950PR/Ascend 950DT</term>
476 self和mat2数据类型为bfloat16,mat2为NZ格式场景下的示例代码如下,仅供参考,具体编译和执行过程请参考[编译与运行样例](../../../docs/zh/context/编译与运行样例.md)。480 self和mat2数据类型为bfloat16,mat2为NZ格式场景下的示例代码如下,仅供参考,具体编译和执行过程请参考[编译与运行样例](../../../docs/zh/context/编译与运行样例.md)。
481+
477 ```Cpp482 ```Cpp
478 #include <iostream>483 #include <iostream>
479 #include <vector>484 #include <vector>
Mmatmul/mat_mul_v3/docs/aclnnMm.md+41-37
@@ -23,6 +23,7 @@
23## 函数原型23## 函数原型
24 24 
25每个算子分为[两段式接口](../../../docs/zh/context/两段式接口.md),必须先调用“aclnnMmGetWorkspaceSize”接口获取计算所需workspace大小以及包含了算子计算流程的执行器,再调用“aclnnMm”接口执行计算。25每个算子分为[两段式接口](../../../docs/zh/context/两段式接口.md),必须先调用“aclnnMmGetWorkspaceSize”接口获取计算所需workspace大小以及包含了算子计算流程的执行器,再调用“aclnnMm”接口执行计算。
26+ 
26```cpp27```cpp
27aclnnStatus aclnnMmGetWorkspaceSize(28aclnnStatus aclnnMmGetWorkspaceSize(
28 const aclTensor *self,29 const aclTensor *self,
@@ -32,6 +33,7 @@ aclnnStatus aclnnMmGetWorkspaceSize(
32 uint64_t *workspaceSize,33 uint64_t *workspaceSize,
33 aclOpExecutor **executor)34 aclOpExecutor **executor)
34```35```
36+ 
35```cpp37```cpp
36aclnnStatus aclnnMm(38aclnnStatus aclnnMm(
37 void *workspace,39 void *workspace,
@@ -39,6 +41,7 @@ aclnnStatus aclnnMm(
39 aclOpExecutor *executor,41 aclOpExecutor *executor,
40 aclrtStream stream)42 aclrtStream stream)
41```43```
44+ 
42## aclnnMmGetWorkspaceSize45## aclnnMmGetWorkspaceSize
43 46 
44- **参数说明:**47- **参数说明:**
@@ -185,54 +188,54 @@ aclnnStatus aclnnMm(
185 </tr>188 </tr>
186 </tbody>189 </tbody>
187 </table>190 </table>
191+ 
188## aclnnMm192## aclnnMm
189 193 
190- **参数说明:**194- **参数说明:**
191 195 
192- 
193 <div style="overflow-x: auto;">196 <div style="overflow-x: auto;">
194- <table style="undefined;table-layout: fixed; width: 1030px"><colgroup>197+ <table style="undefined;table-layout: fixed; width: 1030px"><colgroup>
195- <col style="width: 250px">198+ <col style="width: 250px">
196- <col style="width: 130px">199+ <col style="width: 130px">
197- <col style="width: 650px">200+ <col style="width: 650px">
198- </colgroup>201+ </colgroup>
199- <table><thead>202+ <table><thead>
200- <tr>203+ <tr>
201- <th>参数名</th>204+ <th>参数名</th>
202- <th>输入/输出</th>205+ <th>输入/输出</th>
203- <th>描述</th>206+ <th>描述</th>
204- </tr></thead>207+ </tr></thead>
205- <tbody>208+ <tbody>
206- <tr>209+ <tr>
207- <td>workspace</td>210+ <td>workspace</td>
208- <td>输入</td>211+ <td>输入</td>
209- <td>在Device侧申请的workspace内存地址。</td>212+ <td>在Device侧申请的workspace内存地址。</td>
210- </tr>213+ </tr>
211- <tr>214+ <tr>
212- <td>workspaceSize</td>215+ <td>workspaceSize</td>
213- <td>输入</td>216+ <td>输入</td>
214- <td>在Device侧申请的workspace大小,由第一段接口aclnnMmGetWorkspaceSize获取。</td>217+ <td>在Device侧申请的workspace大小,由第一段接口aclnnMmGetWorkspaceSize获取。</td>
215- </tr>218+ </tr>
216- <tr>219+ <tr>
217- <td>executor</td>220+ <td>executor</td>
218- <td>输入</td>221+ <td>输入</td>
219- <td>op执行器,包含了算子计算流程。</td>222+ <td>op执行器,包含了算子计算流程。</td>
220- </tr>223+ </tr>
221- <tr>224+ <tr>
222- <td>stream</td>225+ <td>stream</td>
223- <td>输入</td>226+ <td>输入</td>
224- <td>指定执行任务的stream。</td>227+ <td>指定执行任务的stream。</td>
225- </tr>228+ </tr>
226- </tbody>229+ </tbody>
227- </table>230+ </table>
228- </div>231+ </div>
229- 
230 232 
231- **返回值:**233- **返回值:**
232 234 
233 aclnnStatus:返回状态码,具体参见[aclnn返回码](../../../docs/zh/context/aclnn返回码.md)。235 aclnnStatus:返回状态码,具体参见[aclnn返回码](../../../docs/zh/context/aclnn返回码.md)。
234 236 
235## 约束说明237## 约束说明
238+ 
236- 确定性说明:239- 确定性说明:
237 - <term>Atlas 训练系列产品</term><term>Atlas 推理系列产品</term><term>Ascend 950PR/Ascend 950DT</term>:aclnnMm默认确定性实现。240 - <term>Atlas 训练系列产品</term><term>Atlas 推理系列产品</term><term>Ascend 950PR/Ascend 950DT</term>:aclnnMm默认确定性实现。
238 241 
@@ -245,6 +248,7 @@ aclnnStatus aclnnMm(
245## 调用示例248## 调用示例
246 249 
247示例代码如下,仅供参考,具体编译和执行过程请参考[编译与运行样例](../../../docs/zh/context/编译与运行样例.md)。250示例代码如下,仅供参考,具体编译和执行过程请参考[编译与运行样例](../../../docs/zh/context/编译与运行样例.md)。
251+ 
248```Cpp252```Cpp
249#include <iostream>253#include <iostream>
250#include <vector>254#include <vector>
Mmatmul/quant_batch_matmul_inplace_add/docs/aclnnQuantBatchMatmulInplaceAdd.md+7-2
@@ -195,7 +195,8 @@ aclnnStatus aclnnQuantBatchMatmulInplaceAdd(
195 <td>-</td>195 <td>-</td>
196 <td>-</td>196 <td>-</td>
197 </tr>197 </tr>
198- <tbody></table>198+ </tbody>
199+ </table>
199 200 
200 - 计算公式:<a name='f1'></a>201 - 计算公式:<a name='f1'></a>
201 202 
@@ -272,10 +273,13 @@ aclnnStatus aclnnQuantBatchMatmulInplaceAdd(
272 $$273 $$
273- 动态量化(mx 量化)场景约束:274- 动态量化(mx 量化)场景约束:
274 - 输入和输出支持以下数据类型组合:275 - 输入和输出支持以下数据类型组合:
276+ 
275 | x1 | x2 | x1Scale | x2Scale | outRef |277 | x1 | x2 | x1Scale | x2Scale | outRef |
276 |:-------:|:-------:| :------- | :------ | :------ |278 |:-------:|:-------:| :------- | :------ | :------ |
277 |FLOAT8_E5M2/FLOAT8_E4M3FN |FLOAT8_E5M2/FLOAT8_E4M3FN| FLOAT8_E8M0 | FLOAT8_E8M0 | FLOAT32 |279 |FLOAT8_E5M2/FLOAT8_E4M3FN |FLOAT8_E5M2/FLOAT8_E4M3FN| FLOAT8_E8M0 | FLOAT8_E8M0 | FLOAT32 |
280+ 
278 - x1数据类型、x2数据类型、x1、x2、x1Scale、x2Scale和groupSize的取值关系:281 - x1数据类型、x2数据类型、x1、x2、x1Scale、x2Scale和groupSize的取值关系:
282+ 
279 | x1数据类型 | x2数据类型 | x1 shape | x2 shape | x1Scale Shape | x2Scale Shape | yRef Shape | [gsM, gsN, gsK] | groupSize |283 | x1数据类型 | x2数据类型 | x1 shape | x2 shape | x1Scale Shape | x2Scale Shape | yRef Shape | [gsM, gsN, gsK] | groupSize |
280 |:-------:|:-------:| :------- | :------ | :------ | :------ | :------ | :------ | :------ |284 |:-------:|:-------:| :------- | :------ | :------ | :------ | :------ | :------ | :------ |
281 |FLOAT8_E5M2/FLOAT8_E4M3FN |FLOAT8_E5M2/FLOAT8_E4M3FN| (k, m) | (k, n) | (ceil(k / 64), m, 2) | (ceil(k / 64), n, 2) | (m, n) | [1, 1, 32] | 32 |285 |FLOAT8_E5M2/FLOAT8_E4M3FN |FLOAT8_E5M2/FLOAT8_E4M3FN| (k, m) | (k, n) | (ceil(k / 64), m, 2) | (ceil(k / 64), n, 2) | (m, n) | [1, 1, 32] | 32 |
@@ -492,4 +496,5 @@ int main()
492 Finalize(deviceId, stream);496 Finalize(deviceId, stream);
493 return 0;497 return 0;
494}498}
495- ```499+ ```
500+
Mmatmul/quant_batch_matmul_v3/docs/aclnnQuantMatmulV3.md+6-3
@@ -107,8 +107,9 @@ aclnnStatus aclnnQuantMatmulV3(
107 <td>输入</td>107 <td>输入</td>
108 <td>公式中的输入x2。</td>108 <td>公式中的输入x2。</td>
109 <td><ul>109 <td><ul>
110- <li>ND:<ul><li>支持最后两根轴转置情况下的非连续tensor,其他场景的非连续的Tensor不支持</li>110+ <li>ND:
111- <li>在transposeX1为false时shape形如(batchn,k),在transposeX1为true时shape形如(batch,k,n),batch可不存在,中k与x1shape中k一致</li></ul>111+ <ul><li>支持最后两根轴转置情况下的非连续tensor,其他场景非连续Tensor不支持</li>
112+ <li>在transposeX1为false时shape形如(batch,n,k),在transposeX1为true时shape形如(batch,k,n),batch可不存在,其中k与x1的shape中的k一致</li></ul></li>
112 <li>NZ:113 <li>NZ:
113 <ul><li>在transposeX2为true时shape形如(batch,k1,n1,n0,k0),batch可不存在,其中k0=32,n0=16,x1 shape中的k和x2 shape中的k1需要满足ceil(k / 32) = k1</li></ul>114 <ul><li>在transposeX2为true时shape形如(batch,k1,n1,n0,k0),batch可不存在,其中k0=32,n0=16,x1 shape中的k和x2 shape中的k1需要满足ceil(k / 32) = k1</li></ul>
114 <ul><li>在transposeX2为false时shape形如(batch,n1,k1,k0,n0),batch可不存在,其中k0=16,n0=32,x1 shape中的k和x2 shape中的k1需要满足ceil(k / 16) = k1</li></ul>115 <ul><li>在transposeX2为false时shape形如(batch,n1,k1,k0,n0),batch可不存在,其中k0=16,n0=32,x1 shape中的k和x2 shape中的k1需要满足ceil(k / 16) = k1</li></ul>
@@ -291,7 +292,7 @@ aclnnStatus aclnnQuantMatmulV3(
291 <tr>292 <tr>
292 <td>workspaceSize</td>293 <td>workspaceSize</td>
293 <td>输入</td>294 <td>输入</td>
294- <td>在Device侧申请的workspace大小,由第一段接口aclnnQuantMatmulV3GetWorkspaceSize获取</ td>295+ <td>在Device侧申请的workspace大小,由第一段接口aclnnQuantMatmulV3GetWorkspaceSize获取</td>
295 </tr>296 </tr>
296 <tr>297 <tr>
297 <td>executor</td>298 <td>executor</td>
@@ -871,6 +872,7 @@ aclnnStatus aclnnQuantMatmulV3(
871 return 0;872 return 0;
872 }873 }
873 ```874 ```
875+ 
874- <term>Atlas A2 训练系列产品/Atlas A2 推理系列产品</term><term>Atlas A3 训练系列产品/Atlas A3 推理系列产品</term>:INT4量化场景示例代码如下(x1和x2数据类型为INT4,transposeX2=false),仅供参考,具体编译和执行过程请参考[编译与运行样例](../../../docs/zh/context/编译与运行样例.md)。876- <term>Atlas A2 训练系列产品/Atlas A2 推理系列产品</term><term>Atlas A3 训练系列产品/Atlas A3 推理系列产品</term>:INT4量化场景示例代码如下(x1和x2数据类型为INT4,transposeX2=false),仅供参考,具体编译和执行过程请参考[编译与运行样例](../../../docs/zh/context/编译与运行样例.md)。
875 877 
876 ```Cpp878 ```Cpp
@@ -1125,6 +1127,7 @@ aclnnStatus aclnnQuantMatmulV3(
1125 return 0;1127 return 0;
1126 }1128 }
1127 ```1129 ```
1130+
1128- <term>Atlas 推理系列产品</term>:x2为NZ场景的示例代码如下(transposeX2=true),仅供参考,具体编译和执行过程请参考[编译与运行样例](../../../docs/zh/context/编译与运行样例.md)。1131- <term>Atlas 推理系列产品</term>:x2为NZ场景的示例代码如下(transposeX2=true),仅供参考,具体编译和执行过程请参考[编译与运行样例](../../../docs/zh/context/编译与运行样例.md)。
1129 1132 
1130 ```Cpp1133 ```Cpp
Mmatmul/quant_batch_matmul_v3/docs/aclnnQuantMatmulWeightNz.md+11-8
@@ -174,7 +174,7 @@ aclnnStatus aclnnQuantMatmulWeightNz(
174 <ul>174 <ul>
175 <li>在transposeX2为true情况下各个维度表示:(batch, k1, n1, n0, k0),batch可不存在,k0 = 32, n0 = 16。</li>175 <li>在transposeX2为true情况下各个维度表示:(batch, k1, n1, n0, k0),batch可不存在,k0 = 32, n0 = 16。</li>
176 <li>在transposeX2为false情况下各个维度表示:(batch, n1, k1, k0, n0),batch可不存在,k0 = 16, n0 = 32。</li>176 <li>在transposeX2为false情况下各个维度表示:(batch, n1, k1, k0, n0),batch可不存在,k0 = 16, n0 = 32。</li>
177- <li>x1 shape中的k和x2 shape中的k1需要满足ceil(k / k0) = k1, </br>x2 shape中的n1与out的n需要满足ceil(n / n0) = n1。</li>177+ <li>x1 shape中的k和x2 shape中的k1需要满足ceil(k / k0) = k1, <br>x2 shape中的n1与out的n需要满足ceil(n / n0) = n1。</li>
178 </ul>178 </ul>
179 </td>179 </td>
180 <td>INT4<sup>1、3</sup>、INT8、INT32<sup>1、3</sup>、FLOAT4_E2M1<sup>1、2</sup>、FLOAT32<sup>1、2</sup>、FLOAT8_E4M3FN<sup>1、2</sup></td>180 <td>INT4<sup>1、3</sup>、INT8、INT32<sup>1、3</sup>、FLOAT4_E2M1<sup>1、2</sup>、FLOAT32<sup>1、2</sup>、FLOAT8_E4M3FN<sup>1、2</sup></td>
@@ -259,7 +259,6 @@ aclnnStatus aclnnQuantMatmulWeightNz(
259 <td>1</td>259 <td>1</td>
260 <td>-</td>260 <td>-</td>
261 </tr>261 </tr>
262- <tr>
263 <tr>262 <tr>
264 <td>bias</td>263 <td>bias</td>
265 <td>输入</td>264 <td>输入</td>
@@ -379,7 +378,6 @@ aclnnStatus aclnnQuantMatmulWeightNz(
379 - 支持groupSize传非0。378 - 支持groupSize传非0。
380 </details>379 </details>
381 380 
382- 
383- **返回值:**381- **返回值:**
384 382 
385 aclnnStatus:返回状态码,具体参见[aclnn返回码](../../../docs/zh/context/aclnn返回码.md)。383 aclnnStatus:返回状态码,具体参见[aclnn返回码](../../../docs/zh/context/aclnn返回码.md)。
@@ -426,7 +424,6 @@ aclnnStatus aclnnQuantMatmulWeightNz(
426 </tbody>424 </tbody>
427 </table>425 </table>
428 426 
429- 
430## aclnnQuantMatmulWeightNz427## aclnnQuantMatmulWeightNz
431 428 
432- **参数说明:**429- **参数说明:**
@@ -490,10 +487,10 @@ aclnnStatus aclnnQuantMatmulWeightNz(
490 | INT8 | INT8 | null | FLOAT32/BFLOAT16 | null | null | null/INT32 | INT32 |487 | INT8 | INT8 | null | FLOAT32/BFLOAT16 | null | null | null/INT32 | INT32 |
491 | INT4 | INT4 | null/FLOAT32 | BFLOAT16 | null/FLOAT32 | null | null/BFLOAT16 | BFLOAT16 |488 | INT4 | INT4 | null/FLOAT32 | BFLOAT16 | null/FLOAT32 | null | null/BFLOAT16 | BFLOAT16 |
492 | INT4 | INT4 | null/FLOAT32 | FLOAT32 | null/FLOAT32 | null | null/BFLOAT16 | BFLOAT16 |489 | INT4 | INT4 | null/FLOAT32 | FLOAT32 | null/FLOAT32 | null | null/BFLOAT16 | BFLOAT16 |
493- | INT4 | INT4 | null/FLOAT32 | UINT64 | null/FLOAT32 | null | null/INT32 | FLOAT16 |490+ | INT4 | INT4 | null/FLOAT32 | UINT64 | null/FLOAT32 | null | null/INT32 | FLOAT16 |
494- | INT4 | INT4 | null/FLOAT32 | FLOAT32 | null/FLOAT32 | null | null/INT32 | FLOAT16 |491+ | INT4 | INT4 | null/FLOAT32 | FLOAT32 | null/FLOAT32 | null | null/INT32 | FLOAT16 |
495- | INT8 | INT32 | UINT64 | FLOAT32 | null | FLOAT32 | null | FLOAT16/BFLOAT16 |492+ | INT8 | INT32 | UINT64 | FLOAT32 | null | FLOAT32 | null | FLOAT16/BFLOAT16 |
496- 493+
497 - x1的约束:当数据类型为INT8时,且x2的数据类型为INT32时,transposeX1为false。维度为:(m,k),要求k为偶数,并小于29576。494 - x1的约束:当数据类型为INT8时,且x2的数据类型为INT32时,transposeX1为false。维度为:(m,k),要求k为偶数,并小于29576。
498 - yOffset的约束:shape支持1维(n)。为计算过程中离线计算的辅助结果,值要求为8 * x2 * x2Scale,并在第1维累加。495 - yOffset的约束:shape支持1维(n)。为计算过程中离线计算的辅助结果,值要求为8 * x2 * x2Scale,并在第1维累加。
499 496 
@@ -511,6 +508,7 @@ aclnnStatus aclnnQuantMatmulWeightNz(
511 | INT8 | INT8 | null | UINT64/INT64 | null | null/INT32 | FLOAT16 |508 | INT8 | INT8 | null | UINT64/INT64 | null | null/INT32 | FLOAT16 |
512 | INT8 | INT8 | null | UINT64/INT64 | null/FLOAT32 | null/INT32 | INT8 |509 | INT8 | INT8 | null | UINT64/INT64 | null/FLOAT32 | null/INT32 | INT8 |
513 | INT8 | INT8 | FLOAT | FLOAT | null | null/INT32 | FLOAT16 |510 | INT8 | INT8 | FLOAT | FLOAT | null | null/INT32 | FLOAT16 |
511+ 
514 - 当x1Scale不为null时,只支持K-C量化。512 - 当x1Scale不为null时,只支持K-C量化。
515 513 
516</details>514</details>
@@ -526,6 +524,7 @@ aclnnStatus aclnnQuantMatmulWeightNz(
526 <a id="T-C量化 && T-T量化"></a>524 <a id="T-C量化 && T-T量化"></a>
527 - 输入和输出支持以下数据类型组合:525 - 输入和输出支持以下数据类型组合:
528 <a id="输入和输出支持以下数据类型组合TC/TT"></a>526 <a id="输入和输出支持以下数据类型组合TC/TT"></a>
527+ 
529 | x1 | x2 | x1Scale | x2Scale | x2Offset | yScale | bias | out |528 | x1 | x2 | x1Scale | x2Scale | x2Offset | yScale | bias | out |
530 | --------------- | ----------- | ----------- | --------------- | ------------ | -------| -------------------------- | ----------------------|529 | --------------- | ----------- | ----------- | --------------- | ------------ | -------| -------------------------- | ----------------------|
531 | INT8 | INT8 | null | UINT64/INT64 | null | null | null/INT32 | FLOAT16/ BFLOAT16 |530 | INT8 | INT8 | null | UINT64/INT64 | null | null | null/INT32 | FLOAT16/ BFLOAT16 |
@@ -541,6 +540,7 @@ aclnnStatus aclnnQuantMatmulWeightNz(
541 <a id="K-C量化 && K-T量化"></a>540 <a id="K-C量化 && K-T量化"></a>
542 - 输入和输出支持以下数据类型组合:541 - 输入和输出支持以下数据类型组合:
543 <a id="输入和输出支持以下数据类型组合KC/KT"></a>542 <a id="输入和输出支持以下数据类型组合KC/KT"></a>
543+ 
544 | x1 | x2 | x1Scale | x2Scale | x2Offset | yScale | bias | out |544 | x1 | x2 | x1Scale | x2Scale | x2Offset | yScale | bias | out |
545 | -------------------- | -------------------- | ------- | --------------- | -------- | -------| ------------------------- | --------------- |545 | -------------------- | -------------------- | ------- | --------------- | -------- | -------| ------------------------- | --------------- |
546 | INT8 | INT8 | FLOAT32 | FLOAT32/BFLOAT16| null | null | null/INT32/FLOAT32/BFLOAT16 | BFLOAT16 |546 | INT8 | INT8 | FLOAT32 | FLOAT32/BFLOAT16| null | null | null/INT32/FLOAT32/BFLOAT16 | BFLOAT16 |
@@ -553,11 +553,13 @@ aclnnStatus aclnnQuantMatmulWeightNz(
553 <a id="mx量化"></a>553 <a id="mx量化"></a>
554 - 输入和输出支持以下数据类型组合:554 - 输入和输出支持以下数据类型组合:
555 <a id="输入和输出支持以下数据类型组合mx"></a>555 <a id="输入和输出支持以下数据类型组合mx"></a>
556+ 
556 | x1 | x2 | x1Scale | x2Scale | x2Offset | yScale | bias | out |557 | x1 | x2 | x1Scale | x2Scale | x2Offset | yScale | bias | out |
557 |---------------| ------------- | ----------- | ----------- | -------- | ------ | -------------| --------------------------- |558 |---------------| ------------- | ----------- | ----------- | -------- | ------ | -------------| --------------------------- |
558 | FLOAT8_E4M3FN | FLOAT8_E4M3FN | FLOAT8_E8M0 | FLOAT8_E8M0 | null | null | null/FLOAT32 | FLOAT16/BFLOAT16/FLOAT32 |559 | FLOAT8_E4M3FN | FLOAT8_E4M3FN | FLOAT8_E8M0 | FLOAT8_E8M0 | null | null | null/FLOAT32 | FLOAT16/BFLOAT16/FLOAT32 |
559 560
560 - x1数据类型、x2数据类型、x1、x2、x1Scale、x2Scale和groupSize的取值关系:561 - x1数据类型、x2数据类型、x1、x2、x1Scale、x2Scale和groupSize的取值关系:
562+ 
561 |量化类型|x1数据类型|x2数据类型|x1 shape|x2 shape|x1Scale shape|x2Scale shape|bias shape|yScale shape|[groupSizeM, groupSizeN, groupSizeK]|groupSize|563 |量化类型|x1数据类型|x2数据类型|x1 shape|x2 shape|x1Scale shape|x2Scale shape|bias shape|yScale shape|[groupSizeM, groupSizeN, groupSizeK]|groupSize|
562 |-------|--------|--------|--------|--------|-------------|-------------|------------|---------------------------------------|--|--|564 |-------|--------|--------|--------|--------|-------------|-------------|------------|---------------------------------------|--|--|
563 |mx 全量化|FLOAT8_E4M3FN|FLOAT8_E4M3FN|<li>非转置:(batch, m, k)</li><li>转置:(batch, k, m)</li>|<li>非转置:(batch, k, n)</li><li>转置:(batch, n, k)</li>|<li>非转置:(m, ceil(k / 64), 2)</li><li>转置:(ceil(k / 64), m, 2)</li>|<li>非转置:(ceil(k / 64), n, 2)</li><li>转置:(n, ceil(k / 64), 2)</li>|(n,)或(batch, 1, n)|null|[1, 1, 32]|4295032864|565 |mx 全量化|FLOAT8_E4M3FN|FLOAT8_E4M3FN|<li>非转置:(batch, m, k)</li><li>转置:(batch, k, m)</li>|<li>非转置:(batch, k, n)</li><li>转置:(batch, n, k)</li>|<li>非转置:(m, ceil(k / 64), 2)</li><li>转置:(ceil(k / 64), m, 2)</li>|<li>非转置:(ceil(k / 64), n, 2)</li><li>转置:(n, ceil(k / 64), 2)</li>|(n,)或(batch, 1, n)|null|[1, 1, 32]|4295032864|
@@ -572,6 +574,7 @@ aclnnStatus aclnnQuantMatmulWeightNz(
572 | mx量化 |FLOAT8_E4M3FN |FLOAT32 |FLOAT8_E8M0 |FLOAT8_E8M0 |null/BFLOAT16|(m, k) |(n, k/8)|(m, k/32) |(n, k/32) |(1, n) | null | [0, 0, 32] / [1, 1, 32] |574 | mx量化 |FLOAT8_E4M3FN |FLOAT32 |FLOAT8_E8M0 |FLOAT8_E8M0 |null/BFLOAT16|(m, k) |(n, k/8)|(m, k/32) |(n, k/32) |(1, n) | null | [0, 0, 32] / [1, 1, 32] |
573 | T-CG量化 |FLOAT8_E4M3FN |FLOAT4_E2M1 |null |BFLOAT16 |null |(m, k) |(k, n) |null |(k/32, n) |null |(1, n) | [0, 0, 32] / [1, 1, 32] |575 | T-CG量化 |FLOAT8_E4M3FN |FLOAT4_E2M1 |null |BFLOAT16 |null |(m, k) |(k, n) |null |(k/32, n) |null |(1, n) | [0, 0, 32] / [1, 1, 32] |
574 | T-CG量化 |FLOAT8_E4M3FN |FLOAT32 |null |BFLOAT16 |null |(m, k) |(k, n/8)|null |(k/32, n) |null |(1, n) | [0, 0, 32] / [1, 1, 32] |576 | T-CG量化 |FLOAT8_E4M3FN |FLOAT32 |null |BFLOAT16 |null |(m, k) |(k, n/8)|null |(k/32, n) |null |(1, n) | [0, 0, 32] / [1, 1, 32] |
577+
575 - 约束说明:578 - 约束说明:
576 - k, n大小要求64对齐。579 - k, n大小要求64对齐。
577 - x1是FLOAT8_E4M3FN,x2是FLOAT32时, x2表示一个FLOAT32存储8个FLOAT4_E2M1的紧密排布的数据格式。580 - x1是FLOAT8_E4M3FN,x2是FLOAT32时, x2表示一个FLOAT32存储8个FLOAT4_E2M1的紧密排布的数据格式。
Mmatmul/quant_matmul_dequant/docs/aclnnQuantMatmulDequant.md+1-0
@@ -128,6 +128,7 @@ aclnnStatus aclnnQuantMatmulDequant(
128 <td>2、4</td>128 <td>2、4</td>
129 <td>√</td>129 <td>√</td>
130 </tr>130 </tr>
131+ <tr>
131 <td>weightScale(aclTensor*)</td>132 <td>weightScale(aclTensor*)</td>
132 <td>输入</td>133 <td>输入</td>
133 <td>表示weight的量化系数,公式中的scale_{weight}。</td>134 <td>表示weight的量化系数,公式中的scale_{weight}。</td>
Mmatmul/quant_matmul_reduce_sum/README.md+2-3
@@ -1,7 +1,6 @@
1# QuantMatmulReduceSum1# QuantMatmulReduceSum
2 2 
3- 3+## 产品支持情况
4-## 产品支持情况
5 4 
6| 产品 | 是否支持 |5| 产品 | 是否支持 |
7| ---- | :----:|6| ---- | :----:|
@@ -87,4 +86,4 @@
87 86 
88| 调用方式 | 样例代码 | 说明 |87| 调用方式 | 样例代码 | 说明 |
89| ---------------- | --------------------------- | --------------------------------------------------- |88| ---------------- | --------------------------- | --------------------------------------------------- |
90-| aclnn接口 | [test_aclnn_quant_matmul_reduce_sum](examples/test_aclnn_quant_matmul_reduce_sum_weight_nz.cpp) | 通过<br>[aclnnQuantMatmulReduceSumWeightNz](docs/aclnnQuantMatmulReduceSumWeightNz.md)</br>等方式调用QuantMatmulReduceSum算子。 |89+| aclnn接口 | [test_aclnn_quant_matmul_reduce_sum](examples/test_aclnn_quant_matmul_reduce_sum_weight_nz.cpp) | 通过[aclnnQuantMatmulReduceSumWeightNz](docs/aclnnQuantMatmulReduceSumWeightNz.md)等方式调用QuantMatmulReduceSum算子。 |
Mmatmul/quant_matmul_reduce_sum/docs/aclnnQuantMatmulReduceSumWeightNz.md+3-5
@@ -100,7 +100,7 @@ aclnnStatus aclnnQuantMatmulReduceSumWeightNz(
100 <td>100 <td>
101 <ul><li>不支持空Tensor。</li>101 <ul><li>不支持空Tensor。</li>
102 <li>各个维度表示:(batch,n1,k1,k0,n0),其中k0 = 16, n0 = 32, x1 shape中的k和x2 shape中的k1需要满足以下关系:ceil(k / 16) = k1, x2 shape中的n1与out的n满足以下关系: ceil(n / n0) = n1。</li>102 <li>各个维度表示:(batch,n1,k1,k0,n0),其中k0 = 16, n0 = 32, x1 shape中的k和x2 shape中的k1需要满足以下关系:ceil(k / 16) = k1, x2 shape中的n1与out的n满足以下关系: ceil(n / n0) = n1。</li>
103- <li>可使用aclnnCalculateMatmulWeightSizeV2接口以及aclnnTransMatmulWeight接口完成输入Format从ND到AI处理器亲和数据排布格式的转换。原始的ND格式的shape为(batch, k, n)。</li>103+ <li>可使用aclnnCalculateMatmulWeightSizeV2接口以及aclnnTransMatmulWeight接口完成输入Format从ND到AI处理器亲和数据排布格式的转换。原始的ND格式的shape为(batch, k, n)。</li></ul>
104 </td>104 </td>
105 <td>INT8</td>105 <td>INT8</td>
106 <td>NZ</td>106 <td>NZ</td>
@@ -112,7 +112,7 @@ aclnnStatus aclnnQuantMatmulReduceSumWeightNz(
112 <td>输入</td>112 <td>输入</td>
113 <td>公式中的x1Scale。</td>113 <td>公式中的x1Scale。</td>
114 <td>114 <td>
115- <ul><li>不支持空Tensor。</li>115+ <ul><li>不支持空Tensor。</li></ul>
116 <li>在实际计算时,x1Scale会被广播为(batch,m,n)。</li>116 <li>在实际计算时,x1Scale会被广播为(batch,m,n)。</li>
117 </td>117 </td>
118 <td>FLOAT32</td>118 <td>FLOAT32</td>
@@ -125,7 +125,7 @@ aclnnStatus aclnnQuantMatmulReduceSumWeightNz(
125 <td>输入</td>125 <td>输入</td>
126 <td>公式中的x2Scale。</td>126 <td>公式中的x2Scale。</td>
127 <td>127 <td>
128- <ul><li>不支持空Tensor。</li>128+ <ul><li>不支持空Tensor。</li></ul>
129 <li>在实际计算时,x2Scale会被广播为(batch,m,n)。</li>129 <li>在实际计算时,x2Scale会被广播为(batch,m,n)。</li>
130 </td>130 </td>
131 <td>BFLOAT16</td>131 <td>BFLOAT16</td>
@@ -302,7 +302,6 @@ aclnnStatus aclnnQuantMatmulReduceSumWeightNz(
302 </tbody>302 </tbody>
303 </table>303 </table>
304 304 
305- 
306## aclnnQuantMatmulReduceSumWeightNz305## aclnnQuantMatmulReduceSumWeightNz
307 306 
308- 参数说明307- 参数说明
@@ -351,7 +350,6 @@ aclnnStatus aclnnQuantMatmulReduceSumWeightNz(
351- 确定性说明:350- 确定性说明:
352 - aclnnQuantMatmulReduceSumWeightNz默认非确定性实现,支持通过aclrtCtxSetSysParamOpt开启确定性。351 - aclnnQuantMatmulReduceSumWeightNz默认非确定性实现,支持通过aclrtCtxSetSysParamOpt开启确定性。
353 352 
354- 
355## 调用示例353## 调用示例
356 354 
357示例代码如下,仅供参考,具体编译和执行过程请参考[编译与运行样例](../../../docs/zh/context/编译与运行样例.md)。355示例代码如下,仅供参考,具体编译和执行过程请参考[编译与运行样例](../../../docs/zh/context/编译与运行样例.md)。
Mmatmul/sparse4to2quant_matmul/docs/aclnnTransSparse4to2Para.md+0-3
@@ -134,11 +134,9 @@ aclnnStatus aclnnTransSparse4to2Para(
134 <td>-</td>134 <td>-</td>
135 <td>-</td>135 <td>-</td>
136 </tr>136 </tr>
137- </tr>
138 </tbody>137 </tbody>
139 </table>138 </table>
140 139 
141- 
142- **返回值:**140- **返回值:**
143 141 
144 aclnnStatus:返回状态码,具体参见[aclnn返回码](../../../docs/zh/context/aclnn返回码.md)。142 aclnnStatus:返回状态码,具体参见[aclnn返回码](../../../docs/zh/context/aclnn返回码.md)。
@@ -169,7 +167,6 @@ aclnnStatus aclnnTransSparse4to2Para(
169 </tr>167 </tr>
170 </tbody></table>168 </tbody></table>
171 169 
172- 
173## 调用示例170## 调用示例
174 171 
175示例代码如下,仅供参考,具体编译和执行过程请参考[编译与运行样例](../../../docs/zh/context/编译与运行样例.md)。172示例代码如下,仅供参考,具体编译和执行过程请参考[编译与运行样例](../../../docs/zh/context/编译与运行样例.md)。
Mmatmul/transpose_batch_mat_mul/docs/aclnnTransposeBatchMatMul.md+1-2
@@ -11,7 +11,6 @@
11| <term>Atlas 推理系列产品</term> | × |11| <term>Atlas 推理系列产品</term> | × |
12| <term>Atlas 训练系列产品</term> | × |12| <term>Atlas 训练系列产品</term> | × |
13 13 
14- 
15## 功能说明14## 功能说明
16 15 
17- 接口功能:完成张量x1与张量x2的矩阵乘计算。仅支持三维的Tensor传入。Tensor支持转置,转置序列根据传入的数列进行变更。permX1代表张量x1的转置序列,permX2代表张量x2的转置序列,序列值为0的是batch维度,其余两个维度做矩阵乘法。16- 接口功能:完成张量x1与张量x2的矩阵乘计算。仅支持三维的Tensor传入。Tensor支持转置,转置序列根据传入的数列进行变更。permX1代表张量x1的转置序列,permX2代表张量x2的转置序列,序列值为0的是batch维度,其余两个维度做矩阵乘法。
@@ -73,7 +72,7 @@ aclnnStatus aclnnTransposeBatchMatMul(
73 <th>数据格式</th>72 <th>数据格式</th>
74 <th>维度(shape)</th>73 <th>维度(shape)</th>
75 <th>非连续Tensor</th>74 <th>非连续Tensor</th>
76- <tr>75+ </tr>
77 </thead>76 </thead>
78 <tbody>77 <tbody>
79 <tr>78 <tr>
Mmatmul/transpose_quant_batch_mat_mul/docs/aclnnTransposeQuantBatchMatMul.md+1-2
@@ -74,7 +74,7 @@ aclnnStatus aclnnTransposeQuantBatchMatMul(
74 <th>数据格式</th>74 <th>数据格式</th>
75 <th>维度(shape)</th>75 <th>维度(shape)</th>
76 <th>非连续Tensor</th>76 <th>非连续Tensor</th>
77- <tr>77+ </tr>
78 </thead>78 </thead>
79 <tbody>79 <tbody>
80 <tr>80 <tr>
@@ -221,7 +221,6 @@ aclnnStatus aclnnTransposeQuantBatchMatMul(
221 </tbody>221 </tbody>
222 </table>222 </table>
223 223
224- 
225- **返回值:**224- **返回值:**
226 225 
227 aclnnStatus: 返回状态码,具体参见[aclnn返回码](../../../docs/zh/context/aclnn返回码.md)。226 aclnnStatus: 返回状态码,具体参见[aclnn返回码](../../../docs/zh/context/aclnn返回码.md)。
Moptim/apply_adam_w/README.md+6-7
@@ -91,7 +91,7 @@
91 <td>FLOAT16、BFLOAT16、FLOAT32</td>91 <td>FLOAT16、BFLOAT16、FLOAT32</td>
92 <td>ND</td>92 <td>ND</td>
93 </tr>93 </tr>
94- </tr>94+ <tr>
95 <tr>95 <tr>
96 <td>beta1_power</td>96 <td>beta1_power</td>
97 <td>计算输入</td>97 <td>计算输入</td>
@@ -107,7 +107,7 @@
107 <td>FLOAT16、BFLOAT16、FLOAT32</td>107 <td>FLOAT16、BFLOAT16、FLOAT32</td>
108 <td>ND</td>108 <td>ND</td>
109 </tr>109 </tr>
110- </tr>110+ <tr>
111 <tr>111 <tr>
112 <td>lr</td>112 <td>lr</td>
113 <td>计算输入</td>113 <td>计算输入</td>
@@ -123,7 +123,7 @@
123 <td>FLOAT16、BFLOAT16、FLOAT32</td>123 <td>FLOAT16、BFLOAT16、FLOAT32</td>
124 <td>ND</td>124 <td>ND</td>
125 </tr>125 </tr>
126- </tr>126+ <tr>
127 <tr>127 <tr>
128 <td>beta1</td>128 <td>beta1</td>
129 <td>计算输入</td>129 <td>计算输入</td>
@@ -131,7 +131,7 @@
131 <td>FLOAT16、BFLOAT16、FLOAT32</td>131 <td>FLOAT16、BFLOAT16、FLOAT32</td>
132 <td>ND</td>132 <td>ND</td>
133 </tr>133 </tr>
134- </tr>134+ <tr>
135 <tr>135 <tr>
136 <td>beta2</td>136 <td>beta2</td>
137 <td>计算输入</td>137 <td>计算输入</td>
@@ -155,8 +155,7 @@
155 <td>FLOAT16、BFLOAT16、FLOAT32</td>155 <td>FLOAT16、BFLOAT16、FLOAT32</td>
156 <td>ND</td>156 <td>ND</td>
157 </tr>157 </tr>
158- </tr>158+ <tr>
159- <tr>
160 <td>max_grad_norm</td>159 <td>max_grad_norm</td>
161 <td>计算输入</td>160 <td>计算输入</td>
162 <td>保存v参数的最大值,公式中的v。</td>161 <td>保存v参数的最大值,公式中的v。</td>
@@ -193,4 +192,4 @@
193 192 
194| 调用方式 | 调用样例 | 说明 |193| 调用方式 | 调用样例 | 说明 |
195|--------------|------------------------------------------------------------------------|--------------------------------------------------------------|194|--------------|------------------------------------------------------------------------|--------------------------------------------------------------|
196-| aclnn调用 | [test_aclnn_apply_adam_w](./examples/arch35/test_aclnn_apply_adam_w.cpp) | 通过[aclnnApplyAdamW](./docs/aclnnApplyAdamW.md)接口方式调用ApplyAdamW算子。 |195+| aclnn调用 | [test_aclnn_apply_adam_w](./examples/arch35/test_aclnn_apply_adam_w.cpp) | 通过[aclnnApplyAdamW](./docs/aclnnApplyAdamW.md)接口方式调用ApplyAdamW算子。 |
Moptim/apply_adam_w/docs/aclnnApplyAdamW.md+6-6
@@ -13,7 +13,6 @@
13| <term>Atlas 推理系列产品</term> | √ |13| <term>Atlas 推理系列产品</term> | √ |
14| <term>Atlas 训练系列产品</term> | √ |14| <term>Atlas 训练系列产品</term> | √ |
15 15 
16- 
17## 功能说明16## 功能说明
18 17 
19- **接口功能:** 实现AdamW优化器功能。18- **接口功能:** 实现AdamW优化器功能。
@@ -98,7 +97,6 @@ aclnnStatus aclnnApplyAdamW(
98 97 
99- **参数说明:**98- **参数说明:**
100 99 
101- </style>
102 <table class="tg" style="undefined;table-layout: fixed; width: 1428px"><colgroup>100 <table class="tg" style="undefined;table-layout: fixed; width: 1428px"><colgroup>
103 <col style="width: 230px">101 <col style="width: 230px">
104 <col style="width: 120px">102 <col style="width: 120px">
@@ -285,10 +283,10 @@ aclnnStatus aclnnApplyAdamW(
285 283 
286- **返回值:**284- **返回值:**
287 285 
288- aclnnStatus: 返回状态码,具体参见[aclnn返回码](../../../docs/zh/context/aclnn返回码.md)。286+ aclnnStatus:返回状态码,具体参见[aclnn返回码](../../../docs/zh/context/aclnn返回码.md)。
289 287 
290 第一段接口完成入参校验,出现以下场景时报错:288 第一段接口完成入参校验,出现以下场景时报错:
291- </style>289+ 
292 <table class="tg" style="undefined;table-layout: fixed; width: 1150px"><colgroup>290 <table class="tg" style="undefined;table-layout: fixed; width: 1150px"><colgroup>
293 <col style="width: 270px">291 <col style="width: 270px">
294 <col style="width: 130px">292 <col style="width: 130px">
@@ -370,15 +368,17 @@ aclnnStatus aclnnApplyAdamW(
370 368 
371- **返回值:**369- **返回值:**
372 370 
373- aclnnStatus: 返回状态码,具体参见[aclnn返回码](../../../docs/zh/context/aclnn返回码.md)。371+ aclnnStatus:返回状态码,具体参见[aclnn返回码](../../../docs/zh/context/aclnn返回码.md)。
374 372 
375## 约束说明373## 约束说明
376 374 
377-- 确定性计算: 375+- 确定性计算:
378 - aclnnApplyAdamW默认确定性实现。376 - aclnnApplyAdamW默认确定性实现。
379 377 
380## 调用示例378## 调用示例
379+ 
381示例代码如下,仅供参考,具体编译和执行过程请参考[编译与运行样例](../../../docs/zh/context/编译与运行样例.md)。380示例代码如下,仅供参考,具体编译和执行过程请参考[编译与运行样例](../../../docs/zh/context/编译与运行样例.md)。
381+ 
382```Cpp382```Cpp
383#include <iostream>383#include <iostream>
384#include <vector>384#include <vector>
Moptim/apply_adam_w_quant/docs/aclnnApplyAdamWQuant.md+7-7
@@ -23,22 +23,18 @@
23 m_{t}=\beta_{1} m_{t-1}+\left(1-\beta_{1}\right) g_{t} \\23 m_{t}=\beta_{1} m_{t-1}+\left(1-\beta_{1}\right) g_{t} \\
24 $$24 $$
25 25 
26- 
27 $$26 $$
28 v_{t}=\beta_{2} v_{t-1}+\left(1-\beta_{2}\right) g_{t}^{2}27 v_{t}=\beta_{2} v_{t-1}+\left(1-\beta_{2}\right) g_{t}^{2}
29 $$28 $$
30 29 
31- 
32 $$30 $$
33 \hat{m}_{t}=\frac{m_{t}}{1-\beta_{1}^{t}} \\31 \hat{m}_{t}=\frac{m_{t}}{1-\beta_{1}^{t}} \\
34 $$32 $$
35 33 
36- 
37 $$34 $$
38 \hat{v}_{t}=\frac{v_{t}}{1-\beta_{2}^{t}} \\35 \hat{v}_{t}=\frac{v_{t}}{1-\beta_{2}^{t}} \\
39 $$36 $$
40 37 
41- 
42 $$38 $$
43 \theta_{t+1}=\theta_{t}-\frac{\eta}{\sqrt{\hat{v}_{t}}+\epsilon} \hat{m}_{t}-\eta \cdot \lambda \cdot \theta_{t-1}39 \theta_{t+1}=\theta_{t}-\frac{\eta}{\sqrt{\hat{v}_{t}}+\epsilon} \hat{m}_{t}-\eta \cdot \lambda \cdot \theta_{t-1}
44 $$40 $$
@@ -82,7 +78,6 @@ aclnnStatus aclnnApplyAdamWQuant(
82 78 
83- **参数说明:**79- **参数说明:**
84 80 
85- </style>
86 <table class="tg" style="undefined;table-layout: fixed; width: 1498px"><colgroup>81 <table class="tg" style="undefined;table-layout: fixed; width: 1498px"><colgroup>
87 <col style="width: 250px">82 <col style="width: 250px">
88 <col style="width: 120px">83 <col style="width: 120px">
@@ -302,7 +297,7 @@ aclnnStatus aclnnApplyAdamWQuant(
302 aclnnStatus: 返回状态码,具体参见[aclnn返回码](../../../docs/zh/context/aclnn返回码.md)。297 aclnnStatus: 返回状态码,具体参见[aclnn返回码](../../../docs/zh/context/aclnn返回码.md)。
303 298 
304 第一段接口完成入参校验,出现以下场景时报错:299 第一段接口完成入参校验,出现以下场景时报错:
305- </style>300+ 
306 <table class="tg" style="undefined;table-layout: fixed; width: 1150px"><colgroup>301 <table class="tg" style="undefined;table-layout: fixed; width: 1150px"><colgroup>
307 <col style="width: 270px">302 <col style="width: 270px">
308 <col style="width: 130px">303 <col style="width: 130px">
@@ -372,7 +367,9 @@ aclnnStatus aclnnApplyAdamWQuant(
372 aclnnStatus: 返回状态码,具体参见[aclnn返回码](../../../docs/zh/context/aclnn返回码.md)。367 aclnnStatus: 返回状态码,具体参见[aclnn返回码](../../../docs/zh/context/aclnn返回码.md)。
373 368 
374## 约束说明369## 约束说明
370+ 
375 varRef的shape满足约束:371 varRef的shape满足约束:
372+ 
376 - varRef.shape = grad.shape373 - varRef.shape = grad.shape
377 - varRef.shape = mRef.shape374 - varRef.shape = mRef.shape
378 - varRef.shape = vRef.shape375 - varRef.shape = vRef.shape
@@ -380,10 +377,13 @@ aclnnStatus aclnnApplyAdamWQuant(
380 - varRef.size/blockSize = absmaxVRef.size377 - varRef.size/blockSize = absmaxVRef.size
381 378 
382 确定性计算:379 确定性计算:
380+ 
383 - aclnnApplyAdamWQuant默认确定性实现。381 - aclnnApplyAdamWQuant默认确定性实现。
384 382 
385## 调用示例383## 调用示例
384+ 
386示例代码如下,仅供参考,具体编译和执行过程请参考[编译与运行样例](../../../docs/zh/context/编译与运行样例.md)。385示例代码如下,仅供参考,具体编译和执行过程请参考[编译与运行样例](../../../docs/zh/context/编译与运行样例.md)。
386+ 
387```Cpp387```Cpp
388#include <iostream>388#include <iostream>
389#include <vector>389#include <vector>
@@ -594,4 +594,4 @@ aclrtResetDevice(deviceId);
594aclFinalize();594aclFinalize();
595return 0;595return 0;
596}596}
597-```597+```
Moptim/apply_adam_w_v2/README.md+2-8
@@ -23,32 +23,26 @@
23 if(maximize) : g_{t} = - g_{t}23 if(maximize) : g_{t} = - g_{t}
24 $$24 $$
25 25 
26- 
27 $$26 $$
28 m_{t}=\beta_{1} m_{t-1}+\left(1-\beta_{1}\right) g_{t}27 m_{t}=\beta_{1} m_{t-1}+\left(1-\beta_{1}\right) g_{t}
29 $$28 $$
30 29 
31- 
32 $$30 $$
33 v_{t}=\beta_{2} v_{t-1}+\left(1-\beta_{2}\right) g_{t}^{2}31 v_{t}=\beta_{2} v_{t-1}+\left(1-\beta_{2}\right) g_{t}^{2}
34 $$32 $$
35 33 
36- 
37 $$34 $$
38 \hat{m}_{t}=\frac{m_{t}}{1-\beta_{1}^{t}}35 \hat{m}_{t}=\frac{m_{t}}{1-\beta_{1}^{t}}
39 $$36 $$
40 37 
41- 
42 $$38 $$
43 \hat{v}_{t}=\frac{v_{t}}{1-\beta_{2}^{t}}39 \hat{v}_{t}=\frac{v_{t}}{1-\beta_{2}^{t}}
44 $$40 $$
45 41 
46- 
47 $$42 $$
48 if(amsgrad) : maxGradNorm = max(maxGradNorm,\hat{v}_{t})43 if(amsgrad) : maxGradNorm = max(maxGradNorm,\hat{v}_{t})
49 $$44 $$
50 45 
51- 
52 $$46 $$
53 \theta_{t+1}=\theta_{t}-\frac{\eta}{\sqrt{\hat{v}_{t}}+\epsilon} \hat{m}_{t}-\eta \cdot \lambda \cdot \theta_{t-1}47 \theta_{t+1}=\theta_{t}-\frac{\eta}{\sqrt{\hat{v}_{t}}+\epsilon} \hat{m}_{t}-\eta \cdot \lambda \cdot \theta_{t-1}
54 $$48 $$
@@ -74,7 +68,7 @@
74 <tr>68 <tr>
75 <td>varRef</td>69 <td>varRef</td>
76 <td>输入/输出</td>70 <td>输入/输出</td>
77- <td>待计算的权重输入同时也是输出,公式中的输入/输出θ71+ <td>待计算的权重输入同时也是输出,公式中的输入/输出θ</td>
78 <td>FLOAT16、BFLOAT16、FLOAT</td>72 <td>FLOAT16、BFLOAT16、FLOAT</td>
79 <td>ND</td>73 <td>ND</td>
80 </tr>74 </tr>
@@ -121,7 +115,7 @@
121 <td>-</td>115 <td>-</td>
122 </tr>116 </tr>
123 <tr>117 <tr>
124- <td>beta1118+ <td>beta1</td>
125 <td>属性</td>119 <td>属性</td>
126 <td><ul><li>beta1参数。</li><li>取值范围是(0,1),默认为0.1。计算公式中的β1。</li></ul></td>120 <td><ul><li>beta1参数。</li><li>取值范围是(0,1),默认为0.1。计算公式中的β1。</li></ul></td>
127 <td>FLOAT</td>121 <td>FLOAT</td>
Moptim/apply_fused_ema_adam/docs/aclnnApplyFusedEmaAdam.md+2-2
@@ -102,7 +102,7 @@ aclnnStatus aclnnApplyFusedEmaAdam(
102## aclnnApplyFusedEmaAdamGetWorkspaceSize102## aclnnApplyFusedEmaAdamGetWorkspaceSize
103 103 
104- **参数说明:**104- **参数说明:**
105- </style>105+ 
106 <table class="tg" style="undefined;table-layout: fixed; width: 1500px"><colgroup>106 <table class="tg" style="undefined;table-layout: fixed; width: 1500px"><colgroup>
107 <col style="width: 200px">107 <col style="width: 200px">
108 <col style="width: 120px">108 <col style="width: 120px">
@@ -292,7 +292,7 @@ aclnnStatus aclnnApplyFusedEmaAdam(
292 返回aclnnStatus状态码,具体参见[aclnn返回码](../../../docs/zh/context/aclnn返回码.md)。292 返回aclnnStatus状态码,具体参见[aclnn返回码](../../../docs/zh/context/aclnn返回码.md)。
293 293 
294 第一段接口完成入参校验,出现以下场景时报错:294 第一段接口完成入参校验,出现以下场景时报错:
295- </style>295+ 
296 <table class="tg" style="undefined;table-layout: fixed; width: 1150px"><colgroup>296 <table class="tg" style="undefined;table-layout: fixed; width: 1150px"><colgroup>
297 <col style="width: 270px">297 <col style="width: 270px">
298 <col style="width: 130px">298 <col style="width: 130px">
Mpooling/adaptive_avg_pool3d/docs/aclnnAdaptiveAvgPool3d.md+10-3
@@ -18,7 +18,9 @@
18在指定三维输出shape信息(outputSize)的情况下,完成张量self的3D自适应平均池化计算。aclnnAdaptiveAvgPool3d与aclnnAvgPool3d不同的是,aclnnAdaptiveAvgPool3d只需要指定输出的大小,就可以自动推导出kernel的大小与对应的步长。18在指定三维输出shape信息(outputSize)的情况下,完成张量self的3D自适应平均池化计算。aclnnAdaptiveAvgPool3d与aclnnAvgPool3d不同的是,aclnnAdaptiveAvgPool3d只需要指定输出的大小,就可以自动推导出kernel的大小与对应的步长。
19 19 
20## 函数原型20## 函数原型
21+ 
21每个算子分为[两段式接口](../../../docs/zh/context/两段式接口.md),必须先调用“aclnnAdaptiveAvgPool3dGetWorkspaceSize”接口获取计算所需workspace大小以及包含了算子计算流程的执行器,再调用“aclnnAdaptiveAvgPool3d”接口执行计算。22每个算子分为[两段式接口](../../../docs/zh/context/两段式接口.md),必须先调用“aclnnAdaptiveAvgPool3dGetWorkspaceSize”接口获取计算所需workspace大小以及包含了算子计算流程的执行器,再调用“aclnnAdaptiveAvgPool3d”接口执行计算。
23+ 
22```Cpp24```Cpp
23aclnnStatus aclnnAdaptiveAvgPool3dGetWorkspaceSize(25aclnnStatus aclnnAdaptiveAvgPool3dGetWorkspaceSize(
24 const aclTensor *self,26 const aclTensor *self,
@@ -27,6 +29,7 @@ aclnnStatus aclnnAdaptiveAvgPool3dGetWorkspaceSize(
27 uint64_t *workspaceSize,29 uint64_t *workspaceSize,
28 aclOpExecutor **executor)30 aclOpExecutor **executor)
29```31```
32+ 
30```Cpp33```Cpp
31aclnnStatus aclnnAdaptiveAvgPool3d(34aclnnStatus aclnnAdaptiveAvgPool3d(
32 void *workspace,35 void *workspace,
@@ -34,6 +37,7 @@ aclnnStatus aclnnAdaptiveAvgPool3d(
34 aclOpExecutor *executor,37 aclOpExecutor *executor,
35 aclrtStream stream)38 aclrtStream stream)
36```39```
40+ 
37## aclnnAdaptiveAvgPool3dGetWorkspaceSize41## aclnnAdaptiveAvgPool3dGetWorkspaceSize
38 42 
39- **参数说明:**43- **参数说明:**
@@ -112,11 +116,14 @@ aclnnStatus aclnnAdaptiveAvgPool3d(
112 </tr>116 </tr>
113 </tbody></table>117 </tbody></table>
114 118
115- - <term>Atlas 推理系列产品</term>: 参数`self`、`out`的数据类型不支持BFLOAT16。119+ - <term>Atlas 推理系列产品</term>: 参数`self`、`out`的数据类型不支持BFLOAT16。
116-- **返回值:**120+ 
121+- **返回值:**
117 122 
118 aclnnStatus:返回状态码,具体参见[aclnn返回码](../../../docs/zh/context/aclnn返回码.md)。123 aclnnStatus:返回状态码,具体参见[aclnn返回码](../../../docs/zh/context/aclnn返回码.md)。
124+ 
119 第一段接口完成入参校验,出现以下场景时报错:125 第一段接口完成入参校验,出现以下场景时报错:
126+ 
120 <table style="undefined;table-layout: fixed; width: 1166px"><colgroup>127 <table style="undefined;table-layout: fixed; width: 1166px"><colgroup>
121 <col style="width: 267px">128 <col style="width: 267px">
122 <col style="width: 124px">129 <col style="width: 124px">
@@ -203,6 +210,7 @@ aclnnStatus aclnnAdaptiveAvgPool3d(
203 aclnnStatus:返回状态码,具体参见[aclnn返回码](../../../docs/zh/context/aclnn返回码.md)。210 aclnnStatus:返回状态码,具体参见[aclnn返回码](../../../docs/zh/context/aclnn返回码.md)。
204 211 
205## 约束说明212## 约束说明
213+ 
206- 确定性计算:214- 确定性计算:
207 - aclnnAdaptiveAvgPool3d默认确定性实现。215 - aclnnAdaptiveAvgPool3d默认确定性实现。
208 216 
@@ -350,4 +358,3 @@ int main() {
350 return 0;358 return 0;
351}359}
352```360```
353- 
Mpooling/max_pool_with_argmax_v3/README.md+3-3
@@ -1,6 +1,6 @@
1# MaxPoolWithArgmaxV31# MaxPoolWithArgmaxV3
2 2 
3-## 产品支持情况3+## 产品支持情况
4 4 
5|产品 | 是否支持 |5|产品 | 是否支持 |
6|:-------------------------|:----------:|6|:-------------------------|:----------:|
@@ -96,7 +96,7 @@
96 <td>FLOAT16、BFLOAT16、FLOAT</td>96 <td>FLOAT16、BFLOAT16、FLOAT</td>
97 <td>ND</td>97 <td>ND</td>
98 </tr>98 </tr>
99- </tr>99+ <tr>
100 <td>argmax</td>100 <td>argmax</td>
101 <td>输出</td>101 <td>输出</td>
102 <td>输出的损失tensor</td>102 <td>输出的损失tensor</td>
@@ -113,4 +113,4 @@
113 113 
114| 调用方式 | 样例代码 | 说明 |114| 调用方式 | 样例代码 | 说明 |
115|--------------|------------------------------------------------------------------------|--------------------------------------------------------------|115|--------------|------------------------------------------------------------------------|--------------------------------------------------------------|
116-| aclnn调用 | [test_aclnn_max_pool_with_argmax_v3](examples/arch35/test_aclnn_max_pool_with_argmax_v3.cpp) | 通过[aclnnMaxPool2dWithIndices](../max_pool3d_with_argmax_v2/docs/aclnnMaxPool2dWithIndices.md)接口方式调用MaxPoolWithArgmaxV3算子。 |116+| aclnn调用 | [test_aclnn_max_pool_with_argmax_v3](examples/arch35/test_aclnn_max_pool_with_argmax_v3.cpp) | 通过[aclnnMaxPool2dWithIndices](../max_pool3d_with_argmax_v2/docs/aclnnMaxPool2dWithIndices.md)接口方式调用MaxPoolWithArgmaxV3算子。 |
Mrnn/bidirection_lstmv2/README.md+2-2
@@ -167,7 +167,7 @@
167 </tr>167 </tr>
168 <tr>168 <tr>
169 <td>packed</td>169 <td>packed</td>
170- <td属性</td>170+ <td>属性</td>
171 <td>表示输入x是否压缩。仅在batchSizeOptional不为空时生效。</td>171 <td>表示输入x是否压缩。仅在batchSizeOptional不为空时生效。</td>
172 <td>BOOL</td>172 <td>BOOL</td>
173 <td>-</td>173 <td>-</td>
@@ -203,4 +203,4 @@
203 203 
204| 调用方式 | 调用样例 | 说明 |204| 调用方式 | 调用样例 | 说明 |
205|--------------|------------------------------------------------------------------------|----------------------------------------------------------------|205|--------------|------------------------------------------------------------------------|----------------------------------------------------------------|
206-| aclnn调用 | [test_aclnn_bidirection_lstm_v2](examples/test_aclnn_bidirection_lstm_v2.cpp) | 通过[aclnnBidirectionLSTMV2](docs/aclnnBidirectionLSTMV2.md)接口方式调用BidirectionLSTMV2算子。 |206+| aclnn调用 | [test_aclnn_bidirection_lstm_v2](examples/test_aclnn_bidirection_lstm_v2.cpp) | 通过[aclnnBidirectionLSTMV2](docs/aclnnBidirectionLSTMV2.md)接口方式调用BidirectionLSTMV2算子。 |
Mrnn/single_layer_lstm_grad/README.md+10-7
@@ -1,4 +1,5 @@
1# SingleLayerLstmGrad1# SingleLayerLstmGrad
2+ 
2## 产品支持情况3## 产品支持情况
3 4 
4| 产品 | 是否支持 |5| 产品 | 是否支持 |
@@ -31,6 +32,7 @@
31| 隐藏状态 | $\mathbf{h}_t = \mathbf{o}_t \odot \tanh(\mathbf{c}_t)$ |32| 隐藏状态 | $\mathbf{h}_t = \mathbf{o}_t \odot \tanh(\mathbf{c}_t)$ |
32 33 
33其中:34其中:
35+ 
34- $\sigma$ 是 sigmoid 函数36- $\sigma$ 是 sigmoid 函数
35- $\odot$ 表示逐元素乘法 (Hadamard product)37- $\odot$ 表示逐元素乘法 (Hadamard product)
36- $W_*$ 是可学习的权重矩阵38- $W_*$ 是可学习的权重矩阵
@@ -302,42 +304,42 @@ $$
302 <tr>304 <tr>
303 <td>seq_length</td>305 <td>seq_length</td>
304 <td>可选输入</td>306 <td>可选输入</td>
305- <td><ul><li>表示实际序列长度对应的掩码矩阵。</li><li>shape为[T, Batch, hidden_size]。</li></td>307+ <td><ul><li>表示实际序列长度对应的掩码矩阵。</li><li>shape为[T, Batch, hidden_size]。</li></ul></td>
306 <td>FLOAT16、FLOAT32</td>308 <td>FLOAT16、FLOAT32</td>
307 <td>ND</td>309 <td>ND</td>
308 </tr>310 </tr>
309 <tr>311 <tr>
310 <td>dw</td>312 <td>dw</td>
311 <td>输出</td>313 <td>输出</td>
312- <td><ul><li>表示LSTM输入权重上的梯度,对应公式中的∂L/∂W。</li><li>shape为[4 * hidden_size,input_size+hidden_size]。</li></td>314+ <td><ul><li>表示LSTM输入权重上的梯度,对应公式中的∂L/∂W。</li><li>shape为[4 * hidden_size,input_size+hidden_size]。</li></ul></td>
313 <td>FLOAT16、FLOAT32</td>315 <td>FLOAT16、FLOAT32</td>
314 <td>ND</td>316 <td>ND</td>
315 </tr>317 </tr>
316 <tr>318 <tr>
317 <td>db</td>319 <td>db</td>
318 <td>输出</td>320 <td>输出</td>
319- <td><ul><li>表示LSTM输入偏置上的梯度,对应公式中的∂L/∂b。</li><li>shape为[4, hidden_size]。</li></td>321+ <td><ul><li>表示LSTM输入偏置上的梯度,对应公式中的∂L/∂b。</li><li>shape为[4, hidden_size]。</li></ul></td>
320 <td>FLOAT16、FLOAT32</td>322 <td>FLOAT16、FLOAT32</td>
321 <td>ND</td>323 <td>ND</td>
322 </tr>324 </tr>
323 <tr>325 <tr>
324 <td>dx</td>326 <td>dx</td>
325 <td>输出</td>327 <td>输出</td>
326- <td><ul><li>表示LSTM输入序列x上的梯度,对应公式中的δx。</li><li>shape为[T, Batch, input_size]。</li></td>328+ <td><ul><li>表示LSTM输入序列x上的梯度,对应公式中的δx。</li><li>shape为[T, Batch, input_size]。</li></ul></td>
327 <td>FLOAT16、FLOAT32</td>329 <td>FLOAT16、FLOAT32</td>
328 <td>ND</td>330 <td>ND</td>
329 </tr>331 </tr>
330 <tr>332 <tr>
331 <td>dh_prev</td>333 <td>dh_prev</td>
332 <td>输出</td>334 <td>输出</td>
333- <td><ul><li>表示LSTM输入inith的梯度,对应公式中在t=0时的δh_prev。</li><li>shape为[1, Batch, hidden_size]。</li></td>335+ <td><ul><li>表示LSTM输入inith的梯度,对应公式中在t=0时的δh_prev。</li><li>shape为[1, Batch, hidden_size]。</li></ul></td>
334 <td>FLOAT16、FLOAT32</td>336 <td>FLOAT16、FLOAT32</td>
335 <td>ND</td>337 <td>ND</td>
336 </tr>338 </tr>
337 <tr>339 <tr>
338 <td>dc_prev</td>340 <td>dc_prev</td>
339 <td>输出</td>341 <td>输出</td>
340- <td><ul><li>表示LSTM输入initc的梯度,对应公式中在t=0时的δc_prev。</li><li>shape为[1, Batch, hidden_size]。</td>342+ <td><ul><li>表示LSTM输入initc的梯度,对应公式中在t=0时的δc_prev。</li><li>shape为[1, Batch, hidden_size]。</li></ul></td>
341 <td>FLOAT16、FLOAT32</td>343 <td>FLOAT16、FLOAT32</td>
342 <td>ND</td>344 <td>ND</td>
343 </tr>345 </tr>
@@ -348,6 +350,7 @@ $$
348 <td>STRING</td>350 <td>STRING</td>
349 <td>-</td>351 <td>-</td>
350 </tr>352 </tr>
353+ <tr>
351 <td>gate_order</td>354 <td>gate_order</td>
352 <td>属性</td>355 <td>属性</td>
353 <td>ijfo的排布顺序。支持"ijfo"或"ifjo"。</td>356 <td>ijfo的排布顺序。支持"ijfo"或"ifjo"。</td>
@@ -364,4 +367,4 @@ $$
364 367 
365| 调用方式 | 样例代码 | 说明 |368| 调用方式 | 样例代码 | 说明 |
366| ---------------- | --------------------------- | --------------------------------------------------- |369| ---------------- | --------------------------- | --------------------------------------------------- |
367-| aclnn接口 | [test_aclnn_single_layer_lstm_grad.cpp](examples/test_aclnn_single_layer_lstm_grad.cpp) | 通过[aclnnLstmBackward](docs/aclnnLstmBackward.md)接口方式调用SingleLayerLstmGrad算子。 | |370+| aclnn接口 | [test_aclnn_single_layer_lstm_grad.cpp](examples/test_aclnn_single_layer_lstm_grad.cpp) | 通过[aclnnLstmBackward](docs/aclnnLstmBackward.md)接口方式调用SingleLayerLstmGrad算子。 | |
Mrnn/thnn_fused_lstm_cell/docs/aclnnThnnFusedLstmCell.md+3-1
@@ -90,6 +90,7 @@ aclnnStatus aclnnThnnFusedLstmCell(
90 <col style="width: 122px">90 <col style="width: 122px">
91 <col style="width: 230px">91 <col style="width: 230px">
92 <col style="width: 145px">92 <col style="width: 145px">
93+ </colgroup>
93 <thead>94 <thead>
94 <tr>95 <tr>
95 <th>参数名</th>96 <th>参数名</th>
@@ -276,7 +277,8 @@ aclnnStatus aclnnThnnFusedLstmCell(
276 </tr>277 </tr>
277 </tbody>278 </tbody>
278 </table>279 </table>
279-- **返回值:**280+ 
281+ - **返回值:**
280 282
281 aclnnStatus:返回状态码,具体参见[aclnn返回码](../../../docs/zh/context/aclnn返回码.md)。283 aclnnStatus:返回状态码,具体参见[aclnn返回码](../../../docs/zh/context/aclnn返回码.md)。
282 284 
Mrnn/thnn_fused_lstm_cell_grad/README.md+3-2
@@ -1,4 +1,5 @@
1# ThnnFusedLstmCellGrad1# ThnnFusedLstmCellGrad
2+ 
2## 产品支持情况3## 产品支持情况
3 4 
4| 产品 | 是否支持 |5| 产品 | 是否支持 |
@@ -55,7 +56,6 @@ $$
55\delta b = \sum_{n=1}^{N} \begin{bmatrix} \delta a_i \\ \delta a_f \\ \delta a_g \\ \delta a_o \end{bmatrix}_n56\delta b = \sum_{n=1}^{N} \begin{bmatrix} \delta a_i \\ \delta a_f \\ \delta a_g \\ \delta a_o \end{bmatrix}_n
56$$57$$
57 58 
58- 
59- **参数说明:**59- **参数说明:**
60 <table style="undefined;table-layout: fixed; width: 1250px"><colgroup>60 <table style="undefined;table-layout: fixed; width: 1250px"><colgroup>
61 <col style="width: 150px">61 <col style="width: 150px">
@@ -129,6 +129,7 @@ $$
129 <td>FLOAT、FLOAT16</td>129 <td>FLOAT、FLOAT16</td>
130 <td>ND</td>130 <td>ND</td>
131 </tr>131 </tr>
132+ <tr>
132 <td>has_bias</td>133 <td>has_bias</td>
133 <td>属性</td>134 <td>属性</td>
134 <td>是否需要计算bias梯度。</td>135 <td>是否需要计算bias梯度。</td>
@@ -145,4 +146,4 @@ $$
145 146 
146| 调用方式 | 样例代码 | 说明 |147| 调用方式 | 样例代码 | 说明 |
147| ---------------- | --------------------------- | --------------------------------------------------- |148| ---------------- | --------------------------- | --------------------------------------------------- |
148-| aclnn接口 | [test_aclnn_thnn_fused_lstm_cell_grad.cpp](examples/test_aclnn_thnn_fused_lstm_cell_grad.cpp) | 通过[aclnnThnnFusedLstmCellBackward](docs/aclnnThnnFusedLstmCellBackward.md)接口方式调用ThnnFusedLstmCellGrad算子。 | |149+| aclnn接口 | [test_aclnn_thnn_fused_lstm_cell_grad.cpp](examples/test_aclnn_thnn_fused_lstm_cell_grad.cpp) | 通过[aclnnThnnFusedLstmCellBackward](docs/aclnnThnnFusedLstmCellBackward.md)接口方式调用ThnnFusedLstmCellGrad算子。 | |
Mrnn/thnn_fused_lstm_cell_grad/docs/aclnnThnnFusedLstmCellBackward.md+8-8
@@ -122,7 +122,7 @@ aclnnStatus aclnnThnnFusedLstmCellBackward(
122 <td>gradCOptional</td>122 <td>gradCOptional</td>
123 <td>可选输入</td>123 <td>可选输入</td>
124 <td>表示LSTMCell正向输出细胞状态的梯度。</td>124 <td>表示LSTMCell正向输出细胞状态的梯度。</td>
125- <td><ul><li>数据类型与gradHy一致。</td>125+ <td>数据类型与gradHy一致。</td>
126 <td>FLOAT32、FLOAT16</td>126 <td>FLOAT32、FLOAT16</td>
127 <td>ND</td>127 <td>ND</td>
128 <td>[batch,hidden_size]</td>128 <td>[batch,hidden_size]</td>
@@ -132,7 +132,7 @@ aclnnStatus aclnnThnnFusedLstmCellBackward(
132 <td>cx</td>132 <td>cx</td>
133 <td>输入</td>133 <td>输入</td>
134 <td>表示LSTMCell正向输入细胞状态。</td>134 <td>表示LSTMCell正向输入细胞状态。</td>
135- <td><ul><li>数据类型与gradHy一致。</td>135+ <td>数据类型与gradHy一致。</td>
136 <td>FLOAT32、FLOAT16</td>136 <td>FLOAT32、FLOAT16</td>
137 <td>ND</td>137 <td>ND</td>
138 <td>[batch,hidden_size]</td>138 <td>[batch,hidden_size]</td>
@@ -142,7 +142,7 @@ aclnnStatus aclnnThnnFusedLstmCellBackward(
142 <td>cy</td>142 <td>cy</td>
143 <td>输入</td>143 <td>输入</td>
144 <td>表示LSTMCell正向输出细胞状态。</td>144 <td>表示LSTMCell正向输出细胞状态。</td>
145- <td><ul><li>数据类型与gradHy一致。</td>145+ <td>数据类型与gradHy一致。</td>
146 <td>FLOAT32、FLOAT16</td>146 <td>FLOAT32、FLOAT16</td>
147 <td>ND</td>147 <td>ND</td>
148 <td>[batch,hidden_size]</td>148 <td>[batch,hidden_size]</td>
@@ -152,7 +152,7 @@ aclnnStatus aclnnThnnFusedLstmCellBackward(
152 <td>storage</td>152 <td>storage</td>
153 <td>输入</td>153 <td>输入</td>
154 <td>表示LSTMCell正向输出四个门的激活值。</td>154 <td>表示LSTMCell正向输出四个门的激活值。</td>
155- <td><ul><li>数据类型与input一致。</td>155+ <td>数据类型与input一致。</td>
156 <td>FLOAT32、FLOAT16</td>156 <td>FLOAT32、FLOAT16</td>
157 <td>ND</td>157 <td>ND</td>
158 <td>[batch,4 * hidden_size]</td>158 <td>[batch,4 * hidden_size]</td>
@@ -172,7 +172,7 @@ aclnnStatus aclnnThnnFusedLstmCellBackward(
172 <td>gradGatesOut</td>172 <td>gradGatesOut</td>
173 <td>输出</td>173 <td>输出</td>
174 <td>表示LSTMCell正向中四个门预激活值的梯度。</td>174 <td>表示LSTMCell正向中四个门预激活值的梯度。</td>
175- <td><ul><li>数据类型与input一致。</td>175+ <td>数据类型与input一致。</td>
176 <td>FLOAT32、FLOAT16</td>176 <td>FLOAT32、FLOAT16</td>
177 <td>ND</td>177 <td>ND</td>
178 <td>[batch, 4 * hidden_size]</td>178 <td>[batch, 4 * hidden_size]</td>
@@ -182,7 +182,7 @@ aclnnStatus aclnnThnnFusedLstmCellBackward(
182 <td>gradCxOut</td>182 <td>gradCxOut</td>
183 <td>输出</td>183 <td>输出</td>
184 <td>表示LSTMCell正向中输入细胞状态的梯度。</td>184 <td>表示LSTMCell正向中输入细胞状态的梯度。</td>
185- <td><ul><li>数据类型与input一致。</td>185+ <td>数据类型与input一致。</td>
186 <td>FLOAT32、FLOAT16</td>186 <td>FLOAT32、FLOAT16</td>
187 <td>ND</td>187 <td>ND</td>
188 <td>[batch,hidden_size]</td>188 <td>[batch,hidden_size]</td>
@@ -192,7 +192,7 @@ aclnnStatus aclnnThnnFusedLstmCellBackward(
192 <td>gradBiasOut</td>192 <td>gradBiasOut</td>
193 <td>输出</td>193 <td>输出</td>
194 <td>表示LSTM正向中输入偏置的梯度。</td>194 <td>表示LSTM正向中输入偏置的梯度。</td>
195- <td><ul><li>数据类型与input一致。</td>195+ <td>数据类型与input一致。</td>
196 <td>FLOAT32、FLOAT16</td>196 <td>FLOAT32、FLOAT16</td>
197 <td>ND</td>197 <td>ND</td>
198 <td>[4 * hidden_size]</td>198 <td>[4 * hidden_size]</td>
@@ -524,4 +524,4 @@ int main() {
524 524 
525 return 0;525 return 0;
526}526}
527-```527+```