Any reason using 2MB in CUDACachingAllocator?

When I check code, CUDACachingAllocator try to allocate GPU memory at best fit of 2MB size.

I find somethings like, “X86 support 4k, 2M, 4G page”, “CUDA driver need pinned memory for cudaMemcpy, So pytorch CPU allocator use cudaHostAlloc”…

So I think, 2MB is just good to manage between CPU and GPU.

Is there any more specific reason using 2MB size ?