Commit ce93101
Fix fp_qmv_impl small-output-dim branch using raw fp8 scale byte
The out_vec_size < 8 branch's full-block loop loaded the fp8 scale as a
raw byte and passed it to qdot without dequantize_scale, so fp-quantized
(mxfp4/mxfp8/nvfp4) matvec with output dim < 8 multiplied by the raw
e8m0/e4m3 byte instead of the decoded scale (gross error, ~1e2-1e4
relative). Every other fp scale-load site decodes it, including the
remainder loop of this same branch.
Add test_fp_qmv_small_non_multiples covering the fp modes at output
dim < 8 with K large enough to run the full-block loop (the existing
fp tests use output dim >= 8 or K below block_size).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>1 parent b410f6c commit ce93101
2 files changed
Lines changed: 42 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
440 | 440 | | |
441 | 441 | | |
442 | 442 | | |
443 | | - | |
| 443 | + | |
444 | 444 | | |
445 | 445 | | |
446 | 446 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
482 | 482 | | |
483 | 483 | | |
484 | 484 | | |
| 485 | + | |
| 486 | + | |
| 487 | + | |
| 488 | + | |
| 489 | + | |
| 490 | + | |
| 491 | + | |
| 492 | + | |
| 493 | + | |
| 494 | + | |
| 495 | + | |
| 496 | + | |
| 497 | + | |
| 498 | + | |
| 499 | + | |
| 500 | + | |
| 501 | + | |
| 502 | + | |
| 503 | + | |
| 504 | + | |
| 505 | + | |
| 506 | + | |
| 507 | + | |
| 508 | + | |
| 509 | + | |
| 510 | + | |
| 511 | + | |
| 512 | + | |
| 513 | + | |
| 514 | + | |
| 515 | + | |
| 516 | + | |
| 517 | + | |
| 518 | + | |
| 519 | + | |
| 520 | + | |
| 521 | + | |
| 522 | + | |
| 523 | + | |
| 524 | + | |
| 525 | + | |
485 | 526 | | |
486 | 527 | | |
487 | 528 | | |
| |||
0 commit comments