diff options
| author | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-10-22 03:30:34 -0400 |
|---|---|---|
| committer | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-10-22 03:30:34 -0400 |
| commit | 19399f4f62a6adb282f8b4aa4cf174f42a05e404 (patch) | |
| tree | 0885c018fff4f6edbd1759996ae59dbc3d38278c /tools/cuda-ab/streams2d.cu | |
| parent | 82c1a3cef532b862e7dcb92f30cc167bf866a60f (diff) | |
| download | open-iov-19399f4f62a6adb282f8b4aa4cf174f42a05e404.tar.gz open-iov-19399f4f62a6adb282f8b4aa4cf174f42a05e404.zip | |
r452 change-detection fingerprint fix: the 32-bit ADDITIVE page checksum used for the copy-out 'engine changed this page' decision is provably blind to power-of-two in-place scales - doubling every word of a 4 KB page shifts each exponent by +1 (+2^23/word), and 1024 words give 1024*2^23 = 2^33 == 0 (mod 2^32), so c[i] *= 2.0f left csum(post) == csum(pre), the page classified 'unchanged', the copy-out was skipped and the client read the PRE-scale values (the deterministic streams2 / streams_events / in-place-scale class, reproduced by ip_probe2: the chunk holds 0x43010000 (129.0) while the guest page holds 0x42810000 (64.5) and csum post==pre). Replace every change-decision fingerprint (scan_pages, retire wait, copy-out, gap copy-out, window witness, prev-out late-store witness, idempotent launch fp) with FNV-1a 64 over the page; the additive sum survives only as the all-zero filter (gsp_phys_gr_page_sum32). New r452 diagnostics: OUT-UNCH witness (unchanged page: chunk vs guest first words, the line that cracked it) and gsp_phys_gr_scan (whole-chunk pattern scan)
Diffstat (limited to 'tools/cuda-ab/streams2d.cu')
0 files changed, 0 insertions, 0 deletions
