Документация за cudaHostAlloc()
говорит, что с cudaHostAllocMapped
Отметьте, что это распределяет закрепленную память на хосте и «Отображает распределение в адресное пространство CUDA». Значит ли это, что зеркальный буфер тоже выделяется на устройстве? Либо во время cudaHostAlloc()
или же cudaHostGetDevicePointer()
вызов.
Или устройство связывается с памятью хоста при каждом доступе к указателю, возвращенному cudaHostGetDevicePointer()
?
Этот вопрос отличается от Когда использовать cudaHostRegister () и cudaHostAlloc ()? Каково значение "Закреплены или заблокированы на странице" объем памяти? Каковы эквиваленты в OpenCL? потому что я не спрашиваю, что такое API, когда их использовать или что закреплено в памяти. Я спрашиваю конкретно, выделен ли зеркальный буфер на GPU или нет.
«Зеркальный» буфер не выделен.
Когда код устройства использует указатель, который относится к отображенной памяти хоста, тогда устройство чтения или записи с использованием этого указателя будет генерировать трафик PCIE для передачи данных в / из памяти хоста для обслуживания чтения или записи.
Других решений пока нет …