Thanks for the detailed analysis! I was very curious about what was going on.

The GitHub page mentions “memmaps”, but it’s not using memory mapping at all

Ahhh that’s a vestige from my initial approach to using memmaps, I overlooked changing that, it’s fixed now.
I updated the benchmarking code, and I’ll link this analysis to the ‘how it works’ section.
I’ll also include a section for when to use SpeedTorch.

you need to synchronize before accessing the CPU data; otherwise it may not be consistent.

So adding torch.cuda.synchronize() and cupy.cuda.Device().synchronize() before the transfer? By consistency, do you mean in terms transfer times?