The runtime contiguity check is a clever trade: a few integer comparisons are cheap relative to the roughly 500-cycle memory access they unlock. I would be curious to see the cost split for aligned interior blocks versus masked tail blocks, since real workloads often have awkward dimensions rather than clean powers of two. If the check is warp-uniform, it should avoid divergence, but shape-distribution benchmarks would show how often the scalar fallback becomes visible.
Ahmet Özel
AI Engineer. Computer Vision, RAG and LLM agents.
The 2,500 and 1,500 element rows are a useful sanity check because they force a ragged tail on every row instead of hiding it in one launch. The next benchmark I would add is a bucketed sweep by tail occupancy, reporting achieved bandwidth and instruction count for 1-3, 4-7, and 8-15 valid lanes. That would separate branch divergence from lost vector width, since the branch can stay warp-uniform while memory transaction efficiency still falls.