的GPU,我試圖瞭解究竟是如何CL_MEM_USE_HOST_PTR和CL_MEM_COPY_HOST_PTR工作指向的緩衝區的副本。 基本上都採用CL_MEM_USE_HOST_PTR時,說創建2D圖像,這將沒有複製到設備,而不是GPU將把映射的內存(clEnqueueMapBuffer把它映射)主機上,做加工,我們可以把結果寫入到其他位置。另一方面,如果我使用CL_MEM_COPY_HOST_PTR,它將在設備上創建主機ptr指向的數據的副本(我猜它會創建一個單獨的副本,而不僅僅是緩存)。現在處理將在複製到設備的數據上完成,然後再將結果複製到主機。我希望我能正確理解它。創建由主機PTR的GPU內核的OpenCL
所以我的查詢是... 它只是出於我的好奇心,我想這樣做這樣。我將使用CL_MEM_USE_HOST_PTR,現在即使設備可以訪問主機內存,我也希望GPU內核在設備本身上創建一個單獨的副本(不使用COPY_HOST_PTR,因爲它再次在主機中完成),然後執行處理這些數據。如何才能做到這一點??