diff options
| author | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-10-21 14:06:19 -0400 |
|---|---|---|
| committer | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-10-21 14:06:19 -0400 |
| commit | 98ea57b179df789d47505369110cfbd00ef9da6d (patch) | |
| tree | 6712717dd986616ccc114e85bd9558bc82cf0502 /scripts/test_windows_guest.sh | |
| parent | 393f1c676d0fc9c7b37ab6a52efe7e2d288d7e90 (diff) | |
| download | open-iov-98ea57b179df789d47505369110cfbd00ef9da6d.tar.gz open-iov-98ea57b179df789d47505369110cfbd00ef9da6d.zip | |
sema: r420c 2D fills/copies with pitch == row length cover all rows
victory_memset2d failed deterministically (bad ~= 12.5M of 12.58M) because
its pitched operations carry PITCH == LINE_LENGTH (cudaMallocPitch returned
pitch 4096 for width 4096) and the r402 2D decode only entered row mode
when a pitch was WIDER than the row. The flat path then ran ONE row
(LINE_LENGTH bytes) per op, so every cudaMemcpy2D readback and H2D upload
delivered only its first row and every cudaMemset2D-sized region beyond it
kept stale content - the 'deterministic readback loss' (45K of 12.58M
correct ~= the rows the single runs happened to cover).
LINE_COUNT is now authoritative for the flat case too: pitch == row length
(or no pitch method) means CONTIGUOUS rows, so the single run covers
rows*line bytes (element-exact when the line divides evenly, else byte
exact). A pitch wider than the row keeps the r402 row-wise mode; 1D ops are
unchanged. Both the fill (cudaMemset2D/fill) and the copy (cudaMemcpy2D)
decode are fixed.
Diffstat (limited to 'scripts/test_windows_guest.sh')
0 files changed, 0 insertions, 0 deletions
