mirror of
https://github.com/lux-apps/papers.git
synced 2026-10-30 18:15:21 +00:00
The replication rows now carry both numbers: the kernel as found, and the same kernel after its uint256 helpers stopped walking their operands a byte at a time. In the batched path those operands sit in global memory one arena-stride apart per thread, so a compare was 32 uncoalesced transactions where four would do. gfx1151 goes 17.9M -> 74.3M ord/s, GB10 36.0M -> 46.3M. The unevenness is the finding: the AMD part was paying far more for uncoalesced byte traffic than the Grace-Blackwell memory system was. Byte-parity oracle 34/34 before and after, which is the whole warrant for calling it the same matcher. Also records the two alignment details that carried the rest — the calldata's uint256 fields start one byte past an 8-byte boundary, so reading them in place gave the wide loads back. Co-authored-by: Hanzo Dev <[email protected]>