The documentation對於cudaHostAlloc()
說,使用cudaHostAllocMapped
標誌,它會在主機上分配固定內存,並將分配映射到CUDA地址空間中。這是否意味着設備上也分配了鏡像緩衝區?在cudaHostAlloc()
或cudaHostGetDevicePointer()
呼叫期間。 或者每次訪問由cudaHostGetDevicePointer()
返回的指針時,設備是否與主機存儲器通信?cudaHostAllocMapped是否也在設備上分配緩衝區?
這個問題與When to use cudaHostRegister() and cudaHostAlloc()? What is the meaning of "Pinned or page-locked" memory? Which are the equivalent in OpenCL?不同,因爲我不問API是什麼,什麼時候使用它們,什麼是固定內存。我具體問是否在GPU上分配了鏡像緩衝區。
的可能的複製[何時使用cudaHostRegister()和cudaHostAlloc()? 「固定或頁面鎖定」內存的含義是什麼?這是在OpenCL的等價?(http://stackoverflow.com/questions/39454465/when-to-use-cudahostregister-and-cudahostalloc-what-is-the-meaning-of-pinn) – Leos313
@ Leos313,有在這個問題中沒有什麼或者關於鏡像緩衝區的答案。我已經知道這個問題的答案。我對GPU如何訪問CPU內存的細節感興趣。 –
沒有分配內存的設備上,所有訪問到主機內存。 [本文檔(http://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#mapped-memory)可能更適合您的需求。 – tera