Commit 26df223
committed
Match QAT prepare and convert numerics exactly for bf16
**Summary:** The previous PR #1964 got this to match for fp32,
but there were two additional sources of numerical discrepancies
with bf16:
1. QAT asymmetric per token choose qparams diverged from
`choose_qparams_affine`, which had simpler logic
2. QAT per token fake quantize cast the input to fp32 before
fake quantizing them
3. QAT symmetric per group choose qparams used a hardcoded
eps value that did not match `choose_qparams_affine`
These are both resolved in this commit: (1) QAT now uses
`choose_qparams_affine` instead of the custom function for
asymmetric per token, which is now deleted, (2) QAT no
longer casts the input to fp32, and (3) QAT now uses
an eps value that corresponds to the input dtype. The result
is exact match in numerics between the prepare and convert
steps for both fp32 and bf16.
**Test Plan:**
python test/quantization/test_qat.py -k test_fake_quantize_per_token_vs_convert_fp32
python test/quantization/test_qat.py -k test_fake_quantize_per_token_vs_convert_bf16
python test/quantization/test_qat.py -k test_qat_8da4w_prepare_vs_convert_fp32
python test/quantization/test_qat.py -k test_qat_8da4w_prepare_vs_convert_bf161 parent 31f119e commit 26df223
File tree
4 files changed
+77
-78
lines changed- test/quantization
- torchao/quantization
- qat
4 files changed
+77
-78
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
40 | 40 | | |
41 | 41 | | |
42 | 42 | | |
43 | | - | |
44 | 43 | | |
45 | 44 | | |
46 | 45 | | |
| |||
53 | 52 | | |
54 | 53 | | |
55 | 54 | | |
| 55 | + | |
| 56 | + | |
56 | 57 | | |
| 58 | + | |
57 | 59 | | |
58 | 60 | | |
59 | 61 | | |
60 | 62 | | |
61 | 63 | | |
| 64 | + | |
62 | 65 | | |
63 | 66 | | |
64 | 67 | | |
| |||
134 | 137 | | |
135 | 138 | | |
136 | 139 | | |
137 | | - | |
| 140 | + | |
138 | 141 | | |
139 | | - | |
| 142 | + | |
| 143 | + | |
140 | 144 | | |
141 | 145 | | |
142 | | - | |
| 146 | + | |
143 | 147 | | |
144 | 148 | | |
145 | 149 | | |
| |||
219 | 223 | | |
220 | 224 | | |
221 | 225 | | |
222 | | - | |
223 | | - | |
| 226 | + | |
| 227 | + | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
| 233 | + | |
| 234 | + | |
| 235 | + | |
| 236 | + | |
224 | 237 | | |
225 | 238 | | |
226 | 239 | | |
227 | 240 | | |
228 | 241 | | |
229 | 242 | | |
230 | | - | |
| 243 | + | |
231 | 244 | | |
| 245 | + | |
232 | 246 | | |
233 | 247 | | |
| 248 | + | |
234 | 249 | | |
235 | 250 | | |
236 | | - | |
237 | 251 | | |
238 | | - | |
| 252 | + | |
239 | 253 | | |
| 254 | + | |
240 | 255 | | |
241 | 256 | | |
| 257 | + | |
242 | 258 | | |
243 | 259 | | |
244 | | - | |
245 | | - | |
| 260 | + | |
246 | 261 | | |
247 | 262 | | |
248 | 263 | | |
| |||
1004 | 1019 | | |
1005 | 1020 | | |
1006 | 1021 | | |
1007 | | - | |
1008 | | - | |
| 1022 | + | |
| 1023 | + | |
| 1024 | + | |
| 1025 | + | |
| 1026 | + | |
| 1027 | + | |
| 1028 | + | |
| 1029 | + | |
| 1030 | + | |
1009 | 1031 | | |
1010 | 1032 | | |
1011 | 1033 | | |
| |||
1427 | 1449 | | |
1428 | 1450 | | |
1429 | 1451 | | |
1430 | | - | |
1431 | | - | |
1432 | | - | |
1433 | | - | |
| 1452 | + | |
1434 | 1453 | | |
1435 | 1454 | | |
1436 | 1455 | | |
| |||
1439 | 1458 | | |
1440 | 1459 | | |
1441 | 1460 | | |
1442 | | - | |
| 1461 | + | |
1443 | 1462 | | |
1444 | 1463 | | |
1445 | 1464 | | |
| |||
1449 | 1468 | | |
1450 | 1469 | | |
1451 | 1470 | | |
1452 | | - | |
| 1471 | + | |
| 1472 | + | |
| 1473 | + | |
| 1474 | + | |
| 1475 | + | |
| 1476 | + | |
| 1477 | + | |
| 1478 | + | |
| 1479 | + | |
| 1480 | + | |
1453 | 1481 | | |
1454 | 1482 | | |
1455 | 1483 | | |
| |||
1463 | 1491 | | |
1464 | 1492 | | |
1465 | 1493 | | |
1466 | | - | |
| 1494 | + | |
1467 | 1495 | | |
1468 | 1496 | | |
1469 | 1497 | | |
| |||
1486 | 1514 | | |
1487 | 1515 | | |
1488 | 1516 | | |
| 1517 | + | |
| 1518 | + | |
| 1519 | + | |
| 1520 | + | |
| 1521 | + | |
| 1522 | + | |
| 1523 | + | |
| 1524 | + | |
| 1525 | + | |
| 1526 | + | |
| 1527 | + | |
| 1528 | + | |
1489 | 1529 | | |
1490 | 1530 | | |
1491 | 1531 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
16 | 16 | | |
17 | 17 | | |
18 | 18 | | |
| 19 | + | |
| 20 | + | |
19 | 21 | | |
20 | 22 | | |
| 23 | + | |
21 | 24 | | |
22 | 25 | | |
23 | 26 | | |
| |||
26 | 29 | | |
27 | 30 | | |
28 | 31 | | |
29 | | - | |
30 | 32 | | |
31 | 33 | | |
32 | 34 | | |
| |||
69 | 71 | | |
70 | 72 | | |
71 | 73 | | |
| 74 | + | |
| 75 | + | |
72 | 76 | | |
73 | | - | |
| 77 | + | |
74 | 78 | | |
75 | | - | |
76 | | - | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
77 | 86 | | |
78 | | - | |
79 | 87 | | |
80 | 88 | | |
81 | 89 | | |
| |||
100 | 108 | | |
101 | 109 | | |
102 | 110 | | |
| 111 | + | |
103 | 112 | | |
104 | 113 | | |
105 | 114 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
7 | | - | |
| 7 | + | |
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
| |||
126 | 126 | | |
127 | 127 | | |
128 | 128 | | |
129 | | - | |
130 | 129 | | |
131 | | - | |
| 130 | + | |
132 | 131 | | |
133 | 132 | | |
134 | 133 | | |
| |||
138 | 137 | | |
139 | 138 | | |
140 | 139 | | |
141 | | - | |
142 | | - | |
143 | | - | |
144 | | - | |
145 | | - | |
146 | | - | |
147 | | - | |
148 | | - | |
149 | | - | |
150 | | - | |
151 | | - | |
152 | | - | |
153 | | - | |
154 | | - | |
155 | | - | |
156 | | - | |
157 | | - | |
158 | | - | |
159 | | - | |
160 | | - | |
161 | | - | |
162 | | - | |
163 | | - | |
164 | | - | |
165 | | - | |
166 | | - | |
167 | | - | |
168 | | - | |
169 | | - | |
170 | | - | |
171 | | - | |
172 | | - | |
173 | | - | |
174 | | - | |
175 | | - | |
176 | | - | |
177 | | - | |
178 | | - | |
179 | | - | |
180 | | - | |
181 | | - | |
182 | | - | |
183 | | - | |
184 | | - | |
185 | | - | |
186 | | - | |
187 | | - | |
188 | | - | |
189 | | - | |
190 | 140 | | |
191 | 141 | | |
192 | 142 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
492 | 492 | | |
493 | 493 | | |
494 | 494 | | |
495 | | - | |
| 495 | + | |
496 | 496 | | |
497 | 497 | | |
498 | 498 | | |
| |||
0 commit comments