biondizzle
80b6b79f9e
NVFP4-1.1: FP4 quantization primitives for CuTeDSL kernels
- fp8_e4m3_from_float32: manual FP8 E4M3 cast (bias=7, exp 0-15 valid,
NaN guard for exp=15/mant=7, mantissa overflow handling)
- fp8_e4m3_to_float32: dequantize FP8 E4M3 bit pattern back to Float32
- half_step_to_e2m1_idx: E2M1 step mapping (0-12 → 0-7)
- quantize_e2m1_nibble: per-element E2M1 quantize + sign + pack
- Verified 0/500 trial failures against Python reference
- Key fixes discovered during validation:
1. FP8 E4M3 bias is 7, NOT 8
2. Exponent range is 0-15 (exp=15/mant=7 is NaN; others valid)
3. Subnormal formula: val = m * 2^(-9) = m/512 (NOT m/1024)
4. Round-to-nearest-even (not round-half-up) for half_step and mantissa
5. Mantissa overflow (round to 8) must increment exponent
2026-05-28 03:39:55 +00:00
..
2026-05-21 17:30:44 +00:00
2026-05-21 17:30:44 +00:00
2026-05-21 17:30:44 +00:00
2026-05-24 01:55:37 +00:00
2026-05-21 17:30:44 +00:00
2026-05-24 00:07:22 +00:00
2026-05-23 22:24:15 +00:00
2026-05-23 23:23:05 +00:00
2026-05-24 00:24:24 +00:00
2026-05-24 00:10:18 +00:00
2026-05-24 00:15:41 +00:00
2026-05-24 00:13:28 +00:00
2026-05-23 03:42:53 +00:00
2026-05-24 03:22:23 +00:00
2026-05-23 03:25:29 +00:00
2026-05-24 16:36:48 +00:00
2026-05-24 16:42:01 +00:00
2026-05-23 03:20:46 +00:00
2026-05-24 22:21:51 +00:00
2026-05-24 22:24:27 +00:00
2026-05-24 22:17:24 +00:00
2026-05-24 22:23:08 +00:00
2026-05-24 03:23:16 +00:00
2026-05-24 22:00:42 +00:00
2026-05-24 14:20:32 +00:00
2026-05-23 03:33:59 +00:00
2026-05-24 15:13:16 +00:00
2026-05-24 22:04:51 +00:00
2026-05-24 22:18:12 +00:00
2026-05-24 22:17:24 +00:00
2026-05-24 03:48:37 +00:00
2026-05-23 03:29:51 +00:00
2026-05-24 03:27:14 +00:00
2026-05-24 22:17:24 +00:00
2026-05-25 17:16:05 +00:00
2026-05-25 16:50:49 +00:00
2026-05-24 22:28:11 +00:00
2026-05-24 22:48:22 +00:00
2026-05-25 17:13:34 +00:00
2026-05-24 22:49:44 +00:00
2026-05-26 10:54:41 +00:00
2026-05-25 17:28:43 +00:00
2026-05-26 10:56:04 +00:00
2026-05-26 11:02:44 +00:00
2026-05-26 15:26:52 +00:00
2026-05-26 15:39:39 +00:00
2026-05-26 20:26:06 +00:00
2026-05-25 17:18:50 +00:00
2026-05-26 20:28:55 +00:00
2026-05-26 20:27:37 +00:00
2026-05-26 20:45:58 +00:00
2026-05-23 02:54:54 +00:00
2026-05-24 04:07:40 +00:00
2026-05-23 21:43:04 +00:00
2026-05-22 23:35:55 +00:00
2026-05-21 17:30:44 +00:00
2026-05-28 03:39:55 +00:00
2026-05-28 03:39:55 +00:00
2026-05-25 03:07:53 +00:00
2026-05-25 16:24:04 +00:00
2026-05-23 08:45:26 +00:00
2026-05-25 09:08:01 +00:00
2026-05-25 03:17:13 +00:00
2026-05-23 03:32:53 +00:00
2026-05-27 15:15:03 +00:00
2026-05-27 05:33:30 +00:00
2026-05-24 08:07:32 +00:00
2026-05-24 02:15:07 +00:00
2026-05-23 23:58:57 +00:00
2026-05-24 01:58:32 +00:00
2026-05-23 06:41:42 +00:00
2026-05-26 20:26:06 +00:00