Commit 8bd3c69
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
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, and (2) QAT no
longer casts the input to fp32. 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 8bd3c69
File tree
3 files changed
+75
-77
lines changed- test/quantization
- torchao/quantization/qat
3 files changed
+75
-77
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 | | |
| |||
| 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 | | |
| |||
0 commit comments