Does unified memory incur double transfer?


There’s an illustration about differences between regular host and pinned memory transfers to GPU.

That’s clear to me. But I’d like to understand:

  1. does this extra copying via pinned buffer occurs when using managed memory?
  2. if no, are CPU memory pages of managed memory pinned?


I don’t think the behavior at this level of detail is published anywhere. It’s not relevant that I can see from a programmer’s perspective, and you have no direct control over it from a performance perspective. I would not refer to a managed allocation as a pinned allocation. However, a pinned (“zero-copy”) allocation is one of the possible realizations in certain circumstances.

Well, I have control over choosing different types of memory, thus I’d like to know what’s internally involved in managed memory. Thanks!