Commit bb1a1ff
[Bugfix][Kernel] Fix fp8 dense attention: softmax normalisation and an int32 dim overflow (#1020)
Bug 1: rows lose softmax mass
Fix: scale P up before the cast so it uses e4m3's whole range. l_row scales with it, so nothing changes but the tail that no longer underflows. Free — the scale rides an FMA that already runs, as an optional bias on _scale_sub_score_pair; bf16 never passes one.
Bug 2: int32 overflow on the shape
Fix: one launch per batch entry when the total would overflow. Entries are independent and a leading slice of a contiguous tensor is still contiguous, so no copy and no kernel change.
Co-authored-by: yanyuan.qin@amd.com <yanyuan.qin@amd.com>
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>1 parent 4a6f955 commit bb1a1ff
4 files changed
Lines changed: 364 additions & 10 deletions
File tree
- kernels/attention
- tests/kernels
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
43 | 43 | | |
44 | 44 | | |
45 | 45 | | |
| 46 | + | |
46 | 47 | | |
47 | 48 | | |
48 | 49 | | |
| |||
90 | 91 | | |
91 | 92 | | |
92 | 93 | | |
| 94 | + | |
93 | 95 | | |
94 | 96 | | |
95 | 97 | | |
| |||
219 | 221 | | |
220 | 222 | | |
221 | 223 | | |
| 224 | + | |
| 225 | + | |
| 226 | + | |
| 227 | + | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
222 | 231 | | |
223 | 232 | | |
224 | 233 | | |
| |||
298 | 307 | | |
299 | 308 | | |
300 | 309 | | |
301 | | - | |
| 310 | + | |
302 | 311 | | |
303 | 312 | | |
304 | 313 | | |
| |||
326 | 335 | | |
327 | 336 | | |
328 | 337 | | |
329 | | - | |
| 338 | + | |
330 | 339 | | |
331 | 340 | | |
332 | 341 | | |
| |||
624 | 633 | | |
625 | 634 | | |
626 | 635 | | |
| 636 | + | |
627 | 637 | | |
628 | 638 | | |
629 | 639 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
43 | 43 | | |
44 | 44 | | |
45 | 45 | | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
46 | 53 | | |
47 | 54 | | |
48 | 55 | | |
49 | 56 | | |
50 | 57 | | |
51 | 58 | | |
52 | 59 | | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
53 | 64 | | |
54 | 65 | | |
55 | 66 | | |
| |||
173 | 184 | | |
174 | 185 | | |
175 | 186 | | |
| 187 | + | |
176 | 188 | | |
177 | 189 | | |
178 | 190 | | |
| |||
190 | 202 | | |
191 | 203 | | |
192 | 204 | | |
| 205 | + | |
193 | 206 | | |
194 | 207 | | |
195 | 208 | | |
| |||
821 | 834 | | |
822 | 835 | | |
823 | 836 | | |
| 837 | + | |
| 838 | + | |
| 839 | + | |
| 840 | + | |
| 841 | + | |
| 842 | + | |
| 843 | + | |
| 844 | + | |
| 845 | + | |
| 846 | + | |
| 847 | + | |
| 848 | + | |
| 849 | + | |
| 850 | + | |
| 851 | + | |
| 852 | + | |
| 853 | + | |
| 854 | + | |
| 855 | + | |
| 856 | + | |
| 857 | + | |
| 858 | + | |
| 859 | + | |
| 860 | + | |
| 861 | + | |
| 862 | + | |
| 863 | + | |
| 864 | + | |
| 865 | + | |
| 866 | + | |
| 867 | + | |
| 868 | + | |
| 869 | + | |
| 870 | + | |
| 871 | + | |
| 872 | + | |
| 873 | + | |
| 874 | + | |
| 875 | + | |
| 876 | + | |
| 877 | + | |
| 878 | + | |
| 879 | + | |
| 880 | + | |
| 881 | + | |
| 882 | + | |
| 883 | + | |
| 884 | + | |
| 885 | + | |
| 886 | + | |
| 887 | + | |
| 888 | + | |
824 | 889 | | |
825 | 890 | | |
826 | 891 | | |
| |||
1046 | 1111 | | |
1047 | 1112 | | |
1048 | 1113 | | |
| 1114 | + | |
1049 | 1115 | | |
1050 | 1116 | | |
1051 | 1117 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
411 | 411 | | |
412 | 412 | | |
413 | 413 | | |
414 | | - | |
| 414 | + | |
415 | 415 | | |
416 | 416 | | |
417 | | - | |
418 | | - | |
| 417 | + | |
| 418 | + | |
419 | 419 | | |
420 | 420 | | |
421 | 421 | | |
| 422 | + | |
| 423 | + | |
| 424 | + | |
422 | 425 | | |
423 | 426 | | |
424 | 427 | | |
| 428 | + | |
| 429 | + | |
| 430 | + | |
| 431 | + | |
425 | 432 | | |
426 | 433 | | |
427 | 434 | | |
| |||
1857 | 1864 | | |
1858 | 1865 | | |
1859 | 1866 | | |
| 1867 | + | |
1860 | 1868 | | |
1861 | 1869 | | |
1862 | 1870 | | |
| |||
1885 | 1893 | | |
1886 | 1894 | | |
1887 | 1895 | | |
| 1896 | + | |
1888 | 1897 | | |
1889 | 1898 | | |
1890 | 1899 | | |
| |||
2035 | 2044 | | |
2036 | 2045 | | |
2037 | 2046 | | |
2038 | | - | |
| 2047 | + | |
2039 | 2048 | | |
2040 | 2049 | | |
2041 | 2050 | | |
| |||
4406 | 4415 | | |
4407 | 4416 | | |
4408 | 4417 | | |
4409 | | - | |
| 4418 | + | |
4410 | 4419 | | |
4411 | 4420 | | |
4412 | 4421 | | |
| |||
5101 | 5110 | | |
5102 | 5111 | | |
5103 | 5112 | | |
| 5113 | + | |
| 5114 | + | |
| 5115 | + | |
5104 | 5116 | | |
5105 | | - | |
| 5117 | + | |
| 5118 | + | |
| 5119 | + | |
| 5120 | + | |
| 5121 | + | |
| 5122 | + | |
| 5123 | + | |
| 5124 | + | |
| 5125 | + | |
| 5126 | + | |
| 5127 | + | |
| 5128 | + | |
| 5129 | + | |
| 5130 | + | |
5106 | 5131 | | |
5107 | 5132 | | |
5108 | 5133 | | |
| |||
5180 | 5205 | | |
5181 | 5206 | | |
5182 | 5207 | | |
5183 | | - | |
| 5208 | + | |
5184 | 5209 | | |
5185 | 5210 | | |
5186 | 5211 | | |
| |||
5210 | 5235 | | |
5211 | 5236 | | |
5212 | 5237 | | |
5213 | | - | |
| 5238 | + | |
5214 | 5239 | | |
5215 | 5240 | | |
5216 | 5241 | | |
| |||
0 commit comments