已合并
产品文档中的png文件命名英文化 #1229
chenjiao创建于 8月4日
产品文档中的png文件命名英文化 #1229
已合并
chenjiao创建于 8月4日
42 个文件变更+49-56
@@ -25,7 +25,7 @@
25 25 
26算子开发贡献流程如下:26算子开发贡献流程如下:
27 27 
28-![算子开发贡献流程](./docs/zh/figures/算子开发贡献流程.png "算子开发贡献流程图")28+![算子开发贡献流程](./docs/zh/figures/op_dev_and_contribute_flow.png "算子开发贡献流程图")
29 29 
30如果您有全新的算子希望基于 NPU 设计与实现,欢迎在 Issue 中提出您的想法与设计方案。完整的贡献过程如下:30如果您有全新的算子希望基于 NPU 设计与实现,欢迎在 Issue 中提出您的想法与设计方案。完整的贡献过程如下:
31 31 
@@ -20,32 +20,32 @@ CANN算子量化是指对神经网络中Matmul等矩阵(cube)类算子的输
20 20 
21 假设左矩阵shape为(m, k),右矩阵shape为(k, n),k为reduce轴,生成量化参数的shape为(1, )。21 假设左矩阵shape为(m, k),右矩阵shape为(k, n),k为reduce轴,生成量化参数的shape为(1, )。
22 22 
23- ![原理图](../figures/pertensor量化.png)23+ ![原理图](../figures/pertensor_quantization.png)
24 24 
25- perchannel量化(简称C量化):量化对象是右矩阵,每个channel分别使用独立的量化参数。25- perchannel量化(简称C量化):量化对象是右矩阵,每个channel分别使用独立的量化参数。
26 26 
27 假设右矩阵shape为(k, n),k为reduce轴,生成量化参数的shape为(n, )。27 假设右矩阵shape为(k, n),k为reduce轴,生成量化参数的shape为(n, )。
28 28 
29- ![原理图](../figures/perchannel量化.png)29+ ![原理图](../figures/perchannel_quantization.png)
30 30 
31- pertoken量化(简称K量化):量化对象是左矩阵,每个token分别使用独立的量化参数。31- pertoken量化(简称K量化):量化对象是左矩阵,每个token分别使用独立的量化参数。
32 32 
33 假设左矩阵shape为(m, k),k为reduce轴,生成量化参数的shape为(m, )。33 假设左矩阵shape为(m, k),k为reduce轴,生成量化参数的shape为(m, )。
34 34 
35- ![原理图](../figures/pertoken量化.png)35+ ![原理图](../figures/pertoken_quantization.png)
36 36 
37- pergroup量化(简称G量化):量化对象既可以是左矩阵,也可以是右矩阵,在reduce轴上对数据分组,每组使用独立的量化参数。37- pergroup量化(简称G量化):量化对象既可以是左矩阵,也可以是右矩阵,在reduce轴上对数据分组,每组使用独立的量化参数。
38 - 假设左矩阵shape为(m, k),k为reduce轴,在k轴上分组,group size为gs,生成量化参数的shape为(m, k/gs)。38 - 假设左矩阵shape为(m, k),k为reduce轴,在k轴上分组,group size为gs,生成量化参数的shape为(m, k/gs)。
39 - 假设右矩阵shape为(k, n),k为reduce轴,在k轴上分组,group size为gs,生成量化参数的shape为(k/gs, n)。39 - 假设右矩阵shape为(k, n),k为reduce轴,在k轴上分组,group size为gs,生成量化参数的shape为(k/gs, n)。
40 40 
41- ![原理图](../figures/pergroup量化.png)41+ ![原理图](../figures/pergroup_quantization.png)
42 42 
43- perblock量化(简称B量化):量化对象既可以是左矩阵,也可以是右矩阵,在所有轴上对数据分块,每块使用独立的量化参数。43- perblock量化(简称B量化):量化对象既可以是左矩阵,也可以是右矩阵,在所有轴上对数据分块,每块使用独立的量化参数。
44 44 
45 - 假设左矩阵shape为(m, k),k为reduce轴,在m、k轴上分别按(bs, bs)块对数据分组,bs为block size,生成量化参数的shape为(m/bs, k/bs)。45 - 假设左矩阵shape为(m, k),k为reduce轴,在m、k轴上分别按(bs, bs)块对数据分组,bs为block size,生成量化参数的shape为(m/bs, k/bs)。
46 - 假设右矩阵shape为(k, n),k为reduce轴,在k、n轴上分别按(bs, bs)块对数据分组,bs为block size,生成量化参数的shape为(k/bs, n/bs)。46 - 假设右矩阵shape为(k, n),k为reduce轴,在k、n轴上分别按(bs, bs)块对数据分组,bs为block size,生成量化参数的shape为(k/bs, n/bs)。
47 47 
48- ![原理图](../figures/perblock量化.png)48+ ![原理图](../figures/perblock_quantization.png)
49 49 
50## 常见组合量化50## 常见组合量化
51 51 
@@ -56,4 +56,4 @@ CANN算子量化是指对神经网络中Matmul等矩阵(cube)类算子的输
56 - pertensor-perchannel-pergroup量化模式(简称T-CG量化模式)56 - pertensor-perchannel-pergroup量化模式(简称T-CG量化模式)
57 - perblock-perblock量化模式(简称B-B量化模式)57 - perblock-perblock量化模式(简称B-B量化模式)
58- 伪量化:一般是指对权重矩阵(weight)进行量化的模式,包括perchannel量化模式(简称C量化模式)。58- 伪量化:一般是指对权重矩阵(weight)进行量化的模式,包括perchannel量化模式(简称C量化模式)。
59-- mx量化:本质是Microscaling量化,通过动态调整缩因子,在极低比特下如1bit保持模型精度。这里指pergroup-pergroup量化模式(简称G-G量化模式)是对于量化参数类型为FLOAT8_E8M0group size为32的特例。59+- MX量化Microscaling Formats):指由开计算项目OCP制定的低精度数据表示方式属于pergroup量化模式,表示量化参数类型为FLOAT8\_E8M0gourp size为32的特例情况
atomgit-bot
atomgit-botatomgit-bot8月4日

🟡 Medium Priority

changed line → affected behavior/contract → failure mode → suggested fix

docs/zh/context/quant_mode_introduction.md 第59行,此diff将MX量化的描述从旧版本重写为新版本。新版本的描述中出现了拼写错误:gourp size 应为 group size

旧版本原文(已删除)中正确使用了 group size,新版本引入了一个打字错误 gourp(字母顺序颠倒)。此错误会直接呈现在产品文档中,对读者造成困惑,属于文档准确性问题。

触发条件:任何读者阅读该文档时都会看到此拼写错误。

建议:将 gourp 修正为 group

改动建议
59
- - MX量化(Microscaling Formats):指由开放计算项目(OCP)制定的低精度数据表示方式。属于pergroup量化模式,表示量化参数类型为FLOAT8\_E8M0且gourp size为32的特例情况。
59
+ - MX量化(Microscaling Formats):指由开放计算项目(OCP)制定的低精度数据表示方式。属于pergroup量化模式,表示量化参数类型为FLOAT8\_E8M0且group size为32的特例情况。
应用建议
likedislike
@@ -17,10 +17,12 @@
17| 8 | varlen外切场景,leftUpCausal模式。 | 仅varlen场景支持。 |17| 8 | varlen外切场景,leftUpCausal模式。 | 仅varlen场景支持。 |
18 18 
19attenMask的工作原理为,在Mask为True的位置遮蔽query(Q)与key(K)的转置矩阵乘积的值,示意如下:19attenMask的工作原理为,在Mask为True的位置遮蔽query(Q)与key(K)的转置矩阵乘积的值,示意如下:
20-![原理图](../figures/QK转置图.png)20+ 
21+![原理图](../figures/QK_transpose_diagram.png)
21 22 
22$QK^T$矩阵在attenMask为True的位置会被遮蔽,效果如下:23$QK^T$矩阵在attenMask为True的位置会被遮蔽,效果如下:
23-![原理图](../figures/遮挡QK图.png)24+ 
25+![原理图](../figures/masked_QK_diagram.png)
24 26 
25## sparseMode=027## sparseMode=0
26 28 
@@ -28,43 +30,43 @@ sparseMode为0时,代表defaultMask模式。
28 30 
29- 不传mask:如果attenMask未传入则不做mask操作,attenMask取值为None,忽略preTokens和nextTokens取值。Masked $QK^T$矩阵示意如下:31- 不传mask:如果attenMask未传入则不做mask操作,attenMask取值为None,忽略preTokens和nextTokens取值。Masked $QK^T$矩阵示意如下:
30 32 
31- ![原理图](../figures/sparsemode为0遮挡矩阵.png)33+ ![原理图](../figures/sparsemode_0_masked_matrix.png)
32 34 
33- nextTokens取值为0,preTokens大于等于Sq,表示causal场景sparse,attenMask应传入下三角矩阵,此时preTokens和nextTokens之间的部分需要计算,Masked $QK^T$矩阵示意如下:35- nextTokens取值为0,preTokens大于等于Sq,表示causal场景sparse,attenMask应传入下三角矩阵,此时preTokens和nextTokens之间的部分需要计算,Masked $QK^T$矩阵示意如下:
34 36 
35- ![原理图](../figures/sparsemode为0遮挡矩阵1.png) 37+ ![原理图](../figures/sparsemode_0_masked_matrix_1.png)
36 38 
37 attenMask应传入下三角矩阵,示意如下:39 attenMask应传入下三角矩阵,示意如下:
38- 40+ 
39- ![原理图](../figures/attenmask下三角.png)41+ ![原理图](../figures/attenmask_lower_triangle.png)
40 42 
41- preTokens小于Sq,nextTokens小于Skv,且都大于等于0,表示band场景,此时preTokens和nextTokens之间的部分需要计算。Masked $QK^T$矩阵示意如下:43- preTokens小于Sq,nextTokens小于Skv,且都大于等于0,表示band场景,此时preTokens和nextTokens之间的部分需要计算。Masked $QK^T$矩阵示意如下:
42 44 
43- ![原理图](../figures/sparsemode为0遮挡矩阵2.png) 45+ ![原理图](../figures/sparsemode_0_masked_matrix_2.png)
44- 46+ 
45 attenMask应传入band形状矩阵,示意如下:47 attenMask应传入band形状矩阵,示意如下:
46 48 
47- ![原理图](../figures/attenmask_band形状矩阵.png)49+ ![原理图](../figures/attenmask_band_matrix.png)
48 50 
49- nextTokens为负数,以preTokens=9,nextTokens=-3为例,preTokens和nextTokens之间的部分需要计算。Masked $QK^T$示意如下:51- nextTokens为负数,以preTokens=9,nextTokens=-3为例,preTokens和nextTokens之间的部分需要计算。Masked $QK^T$示意如下:
50 52 
51 **说明:nextTokens为负数时,preTokens取值必须大于等于nextTokens的绝对值,且nextTokens的绝对值小于Skv。**53 **说明:nextTokens为负数时,preTokens取值必须大于等于nextTokens的绝对值,且nextTokens的绝对值小于Skv。**
52- 54+ 
53- ![原理图](../figures/sparsemode为0遮挡矩阵3.png) 55+ ![原理图](../figures/sparsemode_0_masked_matrix_3.png)
54 56 
55- preTokens为负数,以nextTokens=7,preTokens=-3为例,preTokens和nextTokens之间的部分需要计算。Masked $QK^T$示意如下:57- preTokens为负数,以nextTokens=7,preTokens=-3为例,preTokens和nextTokens之间的部分需要计算。Masked $QK^T$示意如下:
56 58 
57 **说明:preTokens为负数时,nextTokens取值必须大于等于preTokens的绝对值,且preTokens的绝对值小于Sq。**59 **说明:preTokens为负数时,nextTokens取值必须大于等于preTokens的绝对值,且preTokens的绝对值小于Sq。**
58 60 
59- ![原理图](../figures/sparsemode为0遮挡矩阵4.png) 61+ ![原理图](../figures/sparsemode_0_masked_matrix_4.png)
60- 62+ 
61## sparseMode=163## sparseMode=1
62 64 
63sparseMode为1时,代表allMask,即传入完整的attenMask矩阵。65sparseMode为1时,代表allMask,即传入完整的attenMask矩阵。
64 66 
65该场景下忽略nextTokens、preTokens取值,Masked $QK^T$矩阵示意如下:67该场景下忽略nextTokens、preTokens取值,Masked $QK^T$矩阵示意如下:
66 68 
67-![原理图](../figures/sparsemode为1遮挡矩阵.png) 69+![原理图](../figures/sparsemode_1_masked_matrix.png)
68 70 
69## sparseMode=271## sparseMode=2
70 72 
@@ -72,11 +74,11 @@ sparseMode为2时,代表leftUpCausal模式的mask,对应以左上顶点划
72 74 
73该场景下忽略preTokens、nextTokens取值,Masked $QK^T$矩阵示意如下:75该场景下忽略preTokens、nextTokens取值,Masked $QK^T$矩阵示意如下:
74 76 
75-![原理图](../figures/sparsemode为2遮挡矩阵.png)77+![原理图](../figures/sparsemode_2_masked_matrix.png)
76 78 
77传入的attenMask为优化后的压缩下三角矩阵(2048\*2048),压缩下三角矩阵示意(下同):79传入的attenMask为优化后的压缩下三角矩阵(2048\*2048),压缩下三角矩阵示意(下同):
78 80 
79-![原理图](../figures/attenmask压缩下三角.png) 81+![原理图](../figures/attenmask_compressed_lower_triangle.png)
80 82 
81## sparseMode=383## sparseMode=3
82 84 
@@ -84,13 +86,13 @@ sparseMode为3时,代表rightDownCausal模式的mask,对应以右下顶点
84 86 
85该场景下忽略preTokens、nextTokens取值。attenMask为优化后的压缩下三角矩阵(2048\*2048),Masked $QK^T$矩阵示意如下:87该场景下忽略preTokens、nextTokens取值。attenMask为优化后的压缩下三角矩阵(2048\*2048),Masked $QK^T$矩阵示意如下:
86 88 
87-![原理图](../figures/sparsemode为3遮挡矩阵.png)89+![原理图](../figures/sparsemode_3_masked_matrix.png)
88 90 
89## sparseMode=491## sparseMode=4
90 92 
91sparseMode为4时,代表band场景,即计算preTokens和nextTokens之间的部分,参数起点为右下角,preTokens和nextTokens之间需要有交集。attenMask为优化后的压缩下三角矩阵(2048\*2048)。Masked $QK^T$矩阵示意如下:93sparseMode为4时,代表band场景,即计算preTokens和nextTokens之间的部分,参数起点为右下角,preTokens和nextTokens之间需要有交集。attenMask为优化后的压缩下三角矩阵(2048\*2048)。Masked $QK^T$矩阵示意如下:
92 94 
93-![原理图](../figures/sparsemode为4遮挡矩阵.png)95+![原理图](../figures/sparsemode_4_masked_matrix.png)
94 96 
95## sparseMode=597## sparseMode=5
96 98 
@@ -98,17 +100,17 @@ sparseMode为5时,代表prefix非压缩场景,即在rightDownCausal的基础
98 100 
99该场景下忽略preTokens、nextTokens取值,attenMask矩阵数据格式须为BNSS或B1SS,Masked $QK^T$矩阵示意如下:101该场景下忽略preTokens、nextTokens取值,attenMask矩阵数据格式须为BNSS或B1SS,Masked $QK^T$矩阵示意如下:
100 102 
101-![原理图](../figures/sparsemode为5遮挡矩阵.png)103+![原理图](../figures/sparsemode_5_masked_matrix.png)
102 104 
103attenMask应传入矩阵示意如下:105attenMask应传入矩阵示意如下:
104 106 
105-![原理图](../figures/attenmask矩阵.png)107+![原理图](../figures/attenmask_matrix.png)
106 108 
107## sparseMode=6109## sparseMode=6
108 110 
109sparseMode为6时,代表prefix压缩场景,即prefix场景时,attenMask为优化后的压缩下三角+矩形的矩阵(3072\*2048):其中上半部分[2048, 2048]的下三角矩阵,下半部分为[1024, 2048]的矩形矩阵,矩形矩阵左半部分全0,右半部分全1,attenMask应传入矩阵示意如下。该场景下忽略preTokens、nextTokens取值。111sparseMode为6时,代表prefix压缩场景,即prefix场景时,attenMask为优化后的压缩下三角+矩形的矩阵(3072\*2048):其中上半部分[2048, 2048]的下三角矩阵,下半部分为[1024, 2048]的矩形矩阵,矩形矩阵左半部分全0,右半部分全1,attenMask应传入矩阵示意如下。该场景下忽略preTokens、nextTokens取值。
110 112 
111-![原理图](../figures/sparsemode为6遮挡矩阵.png)113+![原理图](../figures/sparsemode_6_masked_matrix.png)
112 114 
113## sparseMode=7115## sparseMode=7
114 116 
@@ -119,9 +121,9 @@ Masked $QK^T$矩阵示意如下,在第二个batch对query进行切分,key和
119- 卡1的最后一块mask为band类型的mask,配置preTokens=6(保证大于等于最后一个Skv),nextTokens=-2,actual_seq_qlen应传入{3,5},actual_seq_kvlen应传入{3,9}。121- 卡1的最后一块mask为band类型的mask,配置preTokens=6(保证大于等于最后一个Skv),nextTokens=-2,actual_seq_qlen应传入{3,5},actual_seq_kvlen应传入{3,9}。
120- 卡2的mask类型切分后不变,sparseMode为3,actual_seq_qlen应传入{2,7,11},actual_seq_kvlen应传入{6,11,15}。122- 卡2的mask类型切分后不变,sparseMode为3,actual_seq_qlen应传入{2,7,11},actual_seq_kvlen应传入{6,11,15}。
121 123 
122-![原理图](../figures/sparsemode为7遮挡矩阵.png)124+![原理图](../figures/sparsemode_7_masked_matrix.png)
123 125 
124-**说明**126+**说明**
125 127 
126- sparseMode=7,band表示的是最后一个非空tensor的Batch的sparse类型;如果只有一个batch,用户需按照band模式的要求来配置参数;sparseMode=7时,用户需要输入2048x2048的下三角mask作为该融合算子的输入。128- sparseMode=7,band表示的是最后一个非空tensor的Batch的sparse类型;如果只有一个batch,用户需按照band模式的要求来配置参数;sparseMode=7时,用户需要输入2048x2048的下三角mask作为该融合算子的输入。
127- 基于sparseMode=3进行外切产生的band模式的sparse参数应符合以下条件:129- 基于sparseMode=3进行外切产生的band模式的sparse参数应符合以下条件:
@@ -139,11 +141,12 @@ Masked $QK^T$矩阵示意如下,在第二个batch对query进行切分,key和
139- 卡1的mask类型切分后不变,sparseMode为2,actual_seq_qlen应传入{3,5},actual_seq_kvlen应传入{3,7}。141- 卡1的mask类型切分后不变,sparseMode为2,actual_seq_qlen应传入{3,5},actual_seq_kvlen应传入{3,7}。
140- 卡2的第一块mask为band类型的mask,配置preTokens=4(保证大于等于第一个Skv),nextTokens=1,actual_seq_qlen应传入{3,8,12},actual_seq_kvlen应传入{4,9,13}。142- 卡2的第一块mask为band类型的mask,配置preTokens=4(保证大于等于第一个Skv),nextTokens=1,actual_seq_qlen应传入{3,8,12},actual_seq_kvlen应传入{4,9,13}。
141 143 
142-![原理图](../figures/sparsemode为8遮挡矩阵.png)144+![原理图](../figures/sparsemode_8_masked_matrix.png)
143 145 
144**说明**146**说明**
145 147 
146- sparseMode=8,band表示的是第一个非空tensor的Batch的sparse类型;如果只有一个batch,用户需按照band模式的要求来配置参数;sparseMode=8时,用户需要输入2048x2048的下三角mask作为该融合算子的输入。148- sparseMode=8,band表示的是第一个非空tensor的Batch的sparse类型;如果只有一个batch,用户需按照band模式的要求来配置参数;sparseMode=8时,用户需要输入2048x2048的下三角mask作为该融合算子的输入。
149+ 
147- 基于sparseMode=2进行外切产生的band模式的sparse的参数应符合以下条件:150- 基于sparseMode=2进行外切产生的band模式的sparse的参数应符合以下条件:
148 - preTokens >= first_Skv。151 - preTokens >= first_Skv。
149 - nextTokens >= first_Sq - first_Skv,根据实际情况进行配置。152 - nextTokens >= first_Sq - first_Skv,根据实际情况进行配置。
@@ -175,7 +175,7 @@ cannsim report [options]
175 175 
1764. 仿真结果查看1764. 仿真结果查看
177 在Chrome浏览器中输入“chrome://tracing”地址,并将生成的指令流水图文件(trace.json)拖到空白处打开,键盘上输入快捷键(W:放大,S:缩小,A:左移,D:右移)可进行查看。177 在Chrome浏览器中输入“chrome://tracing”地址,并将生成的指令流水图文件(trace.json)拖到空白处打开,键盘上输入快捷键(W:放大,S:缩小,A:左移,D:右移)可进行查看。
178- ![指令流水图](../figures/指令流水图.png)178+ ![指令流水图](../figures/cannsim_pipeline_chart.png)
179 179 
180 **表3关键字段说明**180 **表3关键字段说明**
181 181 
@@ -7,13 +7,13 @@
7### Atlas A2 系列硬件架构7### Atlas A2 系列硬件架构
8 8 
9<div align="center">9<div align="center">
10- <img src="../figures/Atlas A2硬件架构.png" width="900" alt="Atlas A2硬件架构" />10+ <img src="../figures/atlas_a2_hardware_arch.png" width="900" alt="Atlas A2硬件架构" />
11</div>11</div>
12 12 
13### Ascend 950 系列硬件架构13### Ascend 950 系列硬件架构
14 14 
15<div align="center">15<div align="center">
16- <img src="../figures/Ascend 950硬件架构.png" width="900" alt="Ascend 950硬件架构" />16+ <img src="../figures/ascend950_hardware_arch.png" width="900" alt="Ascend 950硬件架构" />
17</div>17</div>
18 18 
19### 代际规格参数对比19### 代际规格参数对比
@@ -134,7 +134,7 @@
134Ascend 950硬件新增同地址请求并行处理特性,不需要在各种分核场景额外规避同地址访问冲突。迁移时可将Atlas A2上为"错位规避冲突"设计的分核策略简化为更规则的滑动窗口模板(如行组窗口+列向往返扫描),减少无效偏移与冗余地址变换。实践中建议先以功能等价为目标保留原tile尺寸,再逐步放开分核约束,结合profiling数据观察MAC利用率、MTE2利用率、L2命中率等关键指标,确认模板调整是否带来稳定收益。134Ascend 950硬件新增同地址请求并行处理特性,不需要在各种分核场景额外规避同地址访问冲突。迁移时可将Atlas A2上为"错位规避冲突"设计的分核策略简化为更规则的滑动窗口模板(如行组窗口+列向往返扫描),减少无效偏移与冗余地址变换。实践中建议先以功能等价为目标保留原tile尺寸,再逐步放开分核约束,结合profiling数据观察MAC利用率、MTE2利用率、L2命中率等关键指标,确认模板调整是否带来稳定收益。
135 135 
136<div align="center">136<div align="center">
137- <img src="../figures/SWAT滑动窗口模板.png" width="900" alt="SWAT滑动窗口模板" />137+ <img src="../figures/swat_sliding_window_template.png" width="900" alt="SWAT滑动窗口模板" />
138</div>138</div>
139 139 
140#### Tile尺寸大小调整140#### Tile尺寸大小调整
@@ -327,7 +327,7 @@ __VEC_SCOPE_
327 327 
328Ascend 950新架构引入UB2L1 & L0C2UB间的直连通路,实现矩阵计算数据的快速搬移,旨在简化CV融合算子开发并提升性能。328Ascend 950新架构引入UB2L1 & L0C2UB间的直连通路,实现矩阵计算数据的快速搬移,旨在简化CV融合算子开发并提升性能。
329<div align="center">329<div align="center">
330- <img src="../figures/Ascend950新增CV直连通路.png" width="700" alt="Ascend950新增CV直连通路" />330+ <img src="../figures/ascend950_cv_direct_channel.png" width="700" alt="Ascend950新增CV直连通路" />
331</div>331</div>
332 332 
333**矩阵搬入**333**矩阵搬入**
Rdocs/zh/figures/QK转置图.pngdocs/zh/figures/QK_transpose_diagram.png+0-0
文件重命名但无更改。
Rdocs/zh/figures/aclnn调用.pngdocs/zh/figures/aclnn_call_flow.png+0-0
文件重命名但无更改。
Rdocs/zh/figures/Ascend950新增CV直连通路.pngdocs/zh/figures/ascend950_cv_direct_channel.png+0-0
文件重命名但无更改。
Rdocs/zh/figures/Ascend 950硬件架构.pngdocs/zh/figures/ascend950_hardware_arch.png+0-0
文件重命名但无更改。
Rdocs/zh/figures/Atlas A2硬件架构.pngdocs/zh/figures/atlas_a2_hardware_arch.png+0-0
文件重命名但无更改。
Rdocs/zh/figures/attenmask_band形状矩阵.pngdocs/zh/figures/attenmask_band_matrix.png+0-0
文件重命名但无更改。
Rdocs/zh/figures/attenmask压缩下三角.pngdocs/zh/figures/attenmask_compressed_lower_triangle.png+0-0
文件重命名但无更改。
Rdocs/zh/figures/attenmask下三角.pngdocs/zh/figures/attenmask_lower_triangle.png+0-0
文件重命名但无更改。
Rdocs/zh/figures/attenmask矩阵.pngdocs/zh/figures/attenmask_matrix.png+0-0
文件重命名但无更改。
Rdocs/zh/figures/指令流水图.pngdocs/zh/figures/cannsim_pipeline_chart.png+0-0
文件重命名但无更改。
Rdocs/zh/figures/IR调用.pngdocs/zh/figures/geir_call_flow.png+0-0
文件重命名但无更改。
Rdocs/zh/figures/遮挡QK图.pngdocs/zh/figures/masked_QK_diagram.png+0-0
文件重命名但无更改。
Rdocs/zh/figures/算子开发贡献流程.pngdocs/zh/figures/op_dev_and_contribute_flow.png+0-0
文件重命名但无更改。
Rdocs/zh/figures/perblock量化.pngdocs/zh/figures/perblock_quantization.png+0-0
文件重命名但无更改。
Rdocs/zh/figures/perchannel量化.pngdocs/zh/figures/perchannel_quantization.png+0-0
文件重命名但无更改。
Rdocs/zh/figures/pergroup量化.pngdocs/zh/figures/pergroup_quantization.png+0-0
文件重命名但无更改。
Rdocs/zh/figures/pertensor量化.pngdocs/zh/figures/pertensor_quantization.png+0-0
文件重命名但无更改。
Rdocs/zh/figures/pertoken量化.pngdocs/zh/figures/pertoken_quantization.png+0-0
文件重命名但无更改。
Rdocs/zh/figures/sparsemode为0遮挡矩阵.pngdocs/zh/figures/sparsemode_0_masked_matrix.png+0-0
文件重命名但无更改。
Rdocs/zh/figures/sparsemode为0遮挡矩阵1.pngdocs/zh/figures/sparsemode_0_masked_matrix_1.png+0-0
文件重命名但无更改。
Rdocs/zh/figures/sparsemode为0遮挡矩阵2.pngdocs/zh/figures/sparsemode_0_masked_matrix_2.png+0-0
文件重命名但无更改。
Rdocs/zh/figures/sparsemode为0遮挡矩阵3.pngdocs/zh/figures/sparsemode_0_masked_matrix_3.png+0-0
文件重命名但无更改。
Rdocs/zh/figures/sparsemode为0遮挡矩阵4.pngdocs/zh/figures/sparsemode_0_masked_matrix_4.png+0-0
文件重命名但无更改。
Rdocs/zh/figures/sparsemode为1遮挡矩阵.pngdocs/zh/figures/sparsemode_1_masked_matrix.png+0-0
文件重命名但无更改。
Rdocs/zh/figures/sparsemode为2遮挡矩阵.pngdocs/zh/figures/sparsemode_2_masked_matrix.png+0-0
文件重命名但无更改。
Rdocs/zh/figures/sparsemode为3遮挡矩阵.pngdocs/zh/figures/sparsemode_3_masked_matrix.png+0-0
文件重命名但无更改。
Rdocs/zh/figures/sparsemode为4遮挡矩阵.pngdocs/zh/figures/sparsemode_4_masked_matrix.png+0-0
文件重命名但无更改。
Rdocs/zh/figures/sparsemode为5遮挡矩阵.pngdocs/zh/figures/sparsemode_5_masked_matrix.png+0-0
文件重命名但无更改。
Rdocs/zh/figures/sparsemode为6遮挡矩阵.pngdocs/zh/figures/sparsemode_6_masked_matrix.png+0-0
文件重命名但无更改。
Rdocs/zh/figures/sparsemode为7遮挡矩阵.pngdocs/zh/figures/sparsemode_7_masked_matrix.png+0-0
文件重命名但无更改。
Rdocs/zh/figures/sparsemode为8遮挡矩阵.pngdocs/zh/figures/sparsemode_8_masked_matrix.png+0-0
文件重命名但无更改。
Rdocs/zh/figures/SWAT滑动窗口模板.pngdocs/zh/figures/swat_sliding_window_template.png+0-0
文件重命名但无更改。
@@ -181,7 +181,7 @@ resultData[3] is: 4.000000
181 181 
182为方便调用算子,Host侧提供算子对应的C语言API(即以aclnn为前缀的API)实现算子调用,无需提供算子IR(Intermediate Representation)定义。aclnn API调用流程如下:182为方便调用算子,Host侧提供算子对应的C语言API(即以aclnn为前缀的API)实现算子调用,无需提供算子IR(Intermediate Representation)定义。aclnn API调用流程如下:
183 183 
184-![原理图](../figures/aclnn调用.png)184+![原理图](../figures/aclnn_call_flow.png)
185 185 
186#### 编译运行186#### 编译运行
187 187 
@@ -433,7 +433,7 @@ resultData[3] is: 4.000000
433 433 
434该方式基于算子GE IR(Intermediate Representation)定义,以构图方式调用算子,调用流程如下:434该方式基于算子GE IR(Intermediate Representation)定义,以构图方式调用算子,调用流程如下:
435 435 
436-![原理图](../figures/IR调用.png)436+![原理图](../figures/geir_call_flow.png)
437 437 
438#### 编译运行438#### 编译运行
439 439 
@@ -112,17 +112,6 @@ $$
112 112 
113## 调用说明113## 调用说明
114 114 
115-<table><thead>115+| 调用方式 | 调用样例 | 说明 |
116- <tr>116+|---------|---------------------------|--------------------------------|
117- <th>调用方</th>117+| GE图模 | [test_geir_anchor_response_flags](examples/arch35/test_geir_anchor_response_flags.cpp) | 通过[算子IR](op_graph/anchor_response_flags_proto.h)构图方式调用AnchorResponseFlags算子。 |
118- <th>调用样例</th>
119- <th>说明</th>
120- </tr></thead>
121-<tbody>
122- <tr>
123- <td>图模式调用</td>
124- <td><a href="./examples/test_geir_anchor_response_flags.cpp">test_geir_anchor_response_flags</a></td>
125- <td>参见<a href="../../docs/zh/invocation/quick_op_invocation.md">算子调用</a>完成算子编译和验证。</td>
126- </tr>
127-</tbody>
128-</table>
@@ -3,7 +3,7 @@
3## 产品支持情况3## 产品支持情况
4 4 
5| 产品 | 是否支持 |5| 产品 | 是否支持 |
6-| :----------------------------------------- | :------:|6+| :----------------------------------------- | :------: |
7| <term>Ascend 950PR/Ascend 950DT</term> | √ |7| <term>Ascend 950PR/Ascend 950DT</term> | √ |
8| <term>Atlas A3 训练系列产品/Atlas A3 推理系列产品</term> | √ |8| <term>Atlas A3 训练系列产品/Atlas A3 推理系列产品</term> | √ |
9| <term>Atlas A2 训练系列产品/Atlas A2 推理系列产品</term> | √ |9| <term>Atlas A2 训练系列产品/Atlas A2 推理系列产品</term> | √ |
@@ -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- 算子功能:将归一化边界框坐标(相对坐标,值域[0, 1])按图像高宽转换为绝对像素坐标。常用于Faster R-CNN、SSD、YOLO等目标检测模型推理后处理阶段,将模型预测的归一化bbox恢复到图像绝对坐标空间。16- 算子功能:将归一化边界框坐标(相对坐标,值域[0, 1])按图像高宽转换为绝对像素坐标。常用于Faster R-CNN、SSD、YOLO等目标检测模型推理后处理阶段,将模型预测的归一化bbox恢复到图像绝对坐标空间。
@@ -93,6 +92,6 @@
93 92 
94## 调用说明93## 调用说明
95 94 
96-| 调用方式 | 样例代码 | 说明 |95+| 调用方式 | 样例代码 | 说明 |
97-| ---------------- |-----------------------------------------------------------------------------| --------------------------------------------------- |96+| ---------------- | ----------------------------------------------------------------------------- | --------------------------------------------------- |
98| 图模式 | [test_geir_to_absolute_b_box](./examples/arch35/test_geir_to_absolute_b_box.cpp) | 通过[算子IR](./op_graph/to_absolute_b_box_proto.h)构图方式调用 ToAbsoluteBBox 算子。 |97| 图模式 | [test_geir_to_absolute_b_box](./examples/arch35/test_geir_to_absolute_b_box.cpp) | 通过[算子IR](./op_graph/to_absolute_b_box_proto.h)构图方式调用 ToAbsoluteBBox 算子。 |
@@ -20,6 +20,7 @@
20输入x的shape为(N, boxes*(coords+1+classes), H, W),通道维度C按(elem, box)排列,即先排列所有锚框的x坐标,再排列所有锚框的y坐标,依此类推。20输入x的shape为(N, boxes*(coords+1+classes), H, W),通道维度C按(elem, box)排列,即先排列所有锚框的x坐标,再排列所有锚框的y坐标,依此类推。
21 21 
22坐标处理:22坐标处理:
23+ 
23- x, y坐标做sigmoid激活24- x, y坐标做sigmoid激活
24- w, h坐标直接搬移(move),输出时w和h位置交换,输出排列为(x, y, h, w)25- w, h坐标直接搬移(move),输出时w和h位置交换,输出排列为(x, y, h, w)
25 26 
@@ -28,6 +29,7 @@ sigmoid(x) = \frac{1}{1 + exp(-x)}
28$$29$$
29 30 
30目标置信度和类别概率根据yolo_mode处理,yolo_mode由yolo_version、softmax和background三个属性决定:31目标置信度和类别概率根据yolo_mode处理,yolo_mode由yolo_version、softmax和background三个属性决定:
32+ 
31- YOLO_MODE_1(V3,或V2且softmax=false且background=false):obj=sigmoid, classes=sigmoid33- YOLO_MODE_1(V3,或V2且softmax=false且background=false):obj=sigmoid, classes=sigmoid
32- YOLO_MODE_2(V2且softmax=true且background=false):obj=sigmoid, classes=softmax34- YOLO_MODE_2(V2且softmax=true且background=false):obj=sigmoid, classes=softmax
33- YOLO_MODE_3(V2且softmax=false且background=true):obj=move, classes=sigmoid35- YOLO_MODE_3(V2且softmax=false且background=true):obj=move, classes=sigmoid