summaryrefslogtreecommitdiffstats
path: root/wiki/System-Overview.md
diff options
context:
space:
mode:
authorArthur Hanson Rasmusson <arthur@vgpu.io>2026-10-21 14:06:19 -0400
committerArthur Hanson Rasmusson <arthur@vgpu.io>2026-10-21 14:06:19 -0400
commit98ea57b179df789d47505369110cfbd00ef9da6d (patch)
tree6712717dd986616ccc114e85bd9558bc82cf0502 /wiki/System-Overview.md
parent393f1c676d0fc9c7b37ab6a52efe7e2d288d7e90 (diff)
downloadopen-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 'wiki/System-Overview.md')
0 files changed, 0 insertions, 0 deletions