Upload web/TEST_RESULTS.md with huggingface_hub
Browse files- web/TEST_RESULTS.md +10 -0
web/TEST_RESULTS.md
CHANGED
|
@@ -166,6 +166,16 @@ three of them on real hardware and exposed one blind spot in our own gates:
|
|
| 166 |
trusting a device model. (Denorm flush is additionally unreachable in the
|
| 167 |
shipped math: the 1e-8 scale floor keeps every epilogue product ≥ ~1e-16 in
|
| 168 |
magnitude, far above the ~1.2e-38 subnormal threshold.)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 169 |
- The blind spot: RDNA2 has non-IEEE instruction variants a compiler may pick
|
| 170 |
— output modifiers and DX9-legacy multiplies that **flush −0 to +0**. Our
|
| 171 |
gates compared f32 outputs with JS `!==`, for which `-0 !== 0` is *false*:
|
|
|
|
| 166 |
trusting a device model. (Denorm flush is additionally unreachable in the
|
| 167 |
shipped math: the 1e-8 scale floor keeps every epilogue product ≥ ~1e-16 in
|
| 168 |
magnitude, far above the ~1.2e-38 subnormal threshold.)
|
| 169 |
+
- FMA contraction (`V_FMA_F32`: one rounding, not two) looked like a second
|
| 170 |
+
hazard — WGSL permits contracting the quantize's `x*inv + 0.5` — but turned
|
| 171 |
+
out to be an immunity: adding 0.5 is exact except at binade crossings, and
|
| 172 |
+
there the double-rounding anomaly stays on the same side of every integer
|
| 173 |
+
(RNE tie parity), so `floor()` — hence the int8 — is identical either way.
|
| 174 |
+
`test_b2b.js` asserts both halves: last-ulp fused-vs-stepped differences DO
|
| 175 |
+
occur (~175k per 2.8M edge-targeted draws), and zero survive floor. The
|
| 176 |
+
`+0.5` respec is contraction-immune by construction; `round(x/scale)` was
|
| 177 |
+
not. No gate can forbid the compiler an fma, so this had to be a theorem,
|
| 178 |
+
not a check.
|
| 179 |
- The blind spot: RDNA2 has non-IEEE instruction variants a compiler may pick
|
| 180 |
— output modifiers and DX9-legacy multiplies that **flush −0 to +0**. Our
|
| 181 |
gates compared f32 outputs with JS `!==`, for which `-0 !== 0` is *false*:
|