我有CL_MEM_USE_HOST_PTR | CL_MEM_READ_WRITE
標記創建的緩衝器。我已經在一個內核中使用了它,然後將數據下載(queue.enqueueReadBuffer(...)
)數據返回到創建緩衝區時的主機內存集。我已經在CPU上修改了這些數據,現在我想在另一個內核中使用它們。 當我已上載(queue.enqueueWriteBuffer
)中的數據手動使用非阻塞寫入和用該緩衝液作爲參數然後排隊的內核,它返回CL_OUT_OF_RESOURCES
錯誤。阻止寫入就好了。非阻塞寫成有序隊列
爲什麼會發生這種情況?我認爲阻塞/非阻塞版本只控制在enqueueWriteBuffer
調用返回後我能使用CPU上的內存,而有序隊列對於內核應該沒有區別。 第二個問題是我是否有上傳手動在所有 - 請問CL_MEM_USE_HOST_PTR
意味着數據在被上傳從主機到設備的每一個部分,內核利用緩衝區作爲參數的時間?由於我需要時手動下載數據,上面提到的標誌有沒有什麼優點?
感謝