已合并
Modify threshold value for op Precision Standard #834
唐超创建于 9月9日
Modify threshold value for op Precision Standard #834
已合并
唐超创建于 9月9日
共 1 个文件变更+15-13
Rdocs/zh/ops_precision_standard/experimental_standard.md→docs/zh/ops_precision_standard/mixed_tolerance_standard.md+15-13
@@ -23,7 +23,7 @@
23 23 
24| 维度 | 生成规则 |24| 维度 | 生成规则 |
25|------|----------|25|------|----------|
26-| **数据维度** | 覆盖算子支持的维度范围(1~8维),维度值在 $[1, 2^{20}]$ 内取用(2的幂次)和(2的幂次方-1)两种取值。总元素数不超过2的31次方 |26+| **数据维度** | 覆盖算子支持的维度范围(1~8维),维度值在 $[1, 2^{20}]$ 内取用(2的幂次)和(2的幂次方-1)两种取值。总元素数不超过2的34次方 |
27| **数据格式** | 覆盖算子支持的所有数据格式(ND、NCHW等) |27| **数据格式** | 覆盖算子支持的所有数据格式(ND、NCHW等) |
28 28 
29**步长与组合生成**:各参数类型之间应进行正交组合遍历,值域覆盖策略如下:29**步长与组合生成**:各参数类型之间应进行正交组合遍历,值域覆盖策略如下:
@@ -107,21 +107,21 @@ $$
107 <tbody>107 <tbody>
108 <tr>108 <tr>
109 <td style="text-align: center; border: 1px solid #ddd; padding: 8px;"><strong>rtol</strong></td>109 <td style="text-align: center; border: 1px solid #ddd; padding: 8px;"><strong>rtol</strong></td>
110- <td style="text-align: center; border: 1px solid #ddd; padding: 8px;">2<sup>-9</sup> (1.95e-3)</td>110+ <td style="text-align: center; border: 1px solid #ddd; padding: 8px;">2<sup>-10</sup> (1e-3)</td>
111- <td style="text-align: center; border: 1px solid #ddd; padding: 8px;">2<sup>-6</sup> (1.56e-2)</td>111+ <td style="text-align: center; border: 1px solid #ddd; padding: 8px;">2<sup>-7</sup> (7.8e-3)</td>
112- <td style="text-align: center; border: 1px solid #ddd; padding: 8px;">2<sup>-10</sup> (9.77e-4)</td>112+ <td style="text-align: center; border: 1px solid #ddd; padding: 8px;">2<sup>-13</sup> (1.2e-4)</td>
113- <td style="text-align: center; border: 1px solid #ddd; padding: 8px;">2<sup>-9</sup> (1.95e-3)</td>113+ <td style="text-align: center; border: 1px solid #ddd; padding: 8px;">2<sup>-10</sup> (1e-3)</td>
114+ <td style="text-align: center; border: 1px solid #ddd; padding: 8px;">2<sup>-3</sup> (0.125)</td>
114 <td style="text-align: center; border: 1px solid #ddd; padding: 8px;">2<sup>-2</sup> (0.25)</td>115 <td style="text-align: center; border: 1px solid #ddd; padding: 8px;">2<sup>-2</sup> (0.25)</td>
115- <td style="text-align: center; border: 1px solid #ddd; padding: 8px;">2<sup>-1</sup> (0.5)</td>
116 </tr>116 </tr>
117 <tr>117 <tr>
118 <td style="text-align: center; border: 1px solid #ddd; padding: 8px;"><strong>atol</strong></td>118 <td style="text-align: center; border: 1px solid #ddd; padding: 8px;"><strong>atol</strong></td>
119- <td style="text-align: center; border: 1px solid #ddd; padding: 8px;">2<sup>-9</sup> (1.95e-3)</td>119+ <td style="text-align: center; border: 1px solid #ddd; padding: 8px;">2<sup>-10</sup> (1e-3)</td>
120- <td style="text-align: center; border: 1px solid #ddd; padding: 8px;">2<sup>-6</sup> (1.56e-2)</td>120+ <td style="text-align: center; border: 1px solid #ddd; padding: 8px;">2<sup>-7</sup> (7.8e-3)</td>
121- <td style="text-align: center; border: 1px solid #ddd; padding: 8px;">2<sup>-16</sup> (1.53e-5)</td>121+ <td style="text-align: center; border: 1px solid #ddd; padding: 8px;">2<sup>-13</sup> (1.2e-4)</td>
122- <td style="text-align: center; border: 1px solid #ddd; padding: 8px;">2<sup>-10</sup> (9.77e-4)</td>122+ <td style="text-align: center; border: 1px solid #ddd; padding: 8px;">2<sup>-10</sup> (1e-3)</td>
123- <td style="text-align: center; border: 1px solid #ddd; padding: 8px;">2<sup>-4</sup> (0.0625)</td>
124 <td style="text-align: center; border: 1px solid #ddd; padding: 8px;">2<sup>-3</sup> (0.125)</td>123 <td style="text-align: center; border: 1px solid #ddd; padding: 8px;">2<sup>-3</sup> (0.125)</td>
124+ <td style="text-align: center; border: 1px solid #ddd; padding: 8px;">2<sup>-2</sup> (0.25)</td>
125 </tr>125 </tr>
126 <tr>126 <tr>
127 <td style="text-align: center; border: 1px solid #ddd; padding: 8px;"><strong>required_matched_ratio</strong></td>127 <td style="text-align: center; border: 1px solid #ddd; padding: 8px;"><strong>required_matched_ratio</strong></td>
@@ -130,15 +130,17 @@ $$
130 <tr>130 <tr>
131 <td style="text-align: center; border: 1px solid #ddd; padding: 8px;"><strong>max_abs_error_limit</strong></td>131 <td style="text-align: center; border: 1px solid #ddd; padding: 8px;"><strong>max_abs_error_limit</strong></td>
132 <td style="text-align: center; border: 1px solid #ddd; padding: 8px;">1e-1 or 32 * ULP</td>132 <td style="text-align: center; border: 1px solid #ddd; padding: 8px;">1e-1 or 32 * ULP</td>
133- <td style="text-align: center; border: 1px solid #ddd; padding: 8px;">1e-0 or 32 * ULP</td>133+ <td style="text-align: center; border: 1px solid #ddd; padding: 8px;">1e-1 or 32 * ULP</td>
134 <td style="text-align: center; border: 1px solid #ddd; padding: 8px;">1e-2 or 32 * ULP</td>134 <td style="text-align: center; border: 1px solid #ddd; padding: 8px;">1e-2 or 32 * ULP</td>
135 <td style="text-align: center; border: 1px solid #ddd; padding: 8px;">1e-1 or 32 * ULP</td>135 <td style="text-align: center; border: 1px solid #ddd; padding: 8px;">1e-1 or 32 * ULP</td>
136 <td style="text-align: center; border: 1px solid #ddd; padding: 8px;">1e-0 or 32 * ULP</td>136 <td style="text-align: center; border: 1px solid #ddd; padding: 8px;">1e-0 or 32 * ULP</td>
137- <td style="text-align: center; border: 1px solid #ddd; padding: 8px;">1e-1 or 32 * ULP</td>137+ <td style="text-align: center; border: 1px solid #ddd; padding: 8px;">1e-0 or 32 * ULP</td>
D
Ddengguojie9月16日

这个新精度标准中没有讲清楚 ULP 是 ULP(?) 如果是ULP(0),那么几乎所有的dtype这个32*ULP都是不生效的。 如果是ULP(1),那么就是每个dtype的eps。

likedislike
唐超
9月17日 评论:
138 </tr>138 </tr>
139 </tbody>139 </tbody>
140</table>140</table>
141 141 
142+注:当前的阈值拦截在各数值精度下约为 1ULP左右,涉及到大数规约可能会引入更大精度误差导致误报,可酌情降低至2ULP。
143+ 
142### 2.3 通过判定144### 2.3 通过判定
143 145 
144**单标杆比对**:与更高精度的实现(CPU或昇腾小算子拼接)的单一精度标杆直接比较。146**单标杆比对**:与更高精度的实现(CPU或昇腾小算子拼接)的单一精度标杆直接比较。
D
Ddengguojie9月16日
  1. 升精度是对 CPU/昇腾小算子拼接 都约束吗?如果昇腾小算子不支持升精度后的dtype,比如fp64,精度标准有什么实施建议?golden中要CPU实现FP64吗?
  2. fp16 升精度后,fp16越界的数值就变成inf,但是fp32还是个数值。 这种场景在工具中很难仲裁吧?唯一能想到的落地方案就是: 把升精度后的结果再统一降精度 后 再与NPU结果做比对,精度标准是否能接受。
likedislike
唐超
9月17日 评论: