2013-04-05 68 views
1

有沒有人知道關於內存一致性模型的文檔可以保證以cudaHostAlloc(..., cudaHostAllocMapped)分配的內存區域?例如,當從主機讀取設備可見時,從主機讀取數據會很有用(可能是在內核完成之後,在內核執行期間的最早時間等)。cudaHostAllocMapped的一致性規則

+0

您可以使用[__threadfence_system()](http://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#memory-demo)強制更新在使用cudaHostAlloc分配的內存區域中可見。柵欄功能)在cc 2.0或更高版本的設備上。 – 2013-04-05 17:08:07

回答

1

執行線程執行__threadfence_system()調用(僅在計算能力2.0或更高版本上可用)後,設備寫入保證在主機(或對等設備)上可見。
在內核完成之後,即在cudaDeviceSynchronize()之後或在"Explicit Synchronization" section of the Programming Guide中列出的其他同步方法之一成功完成之後,它們也可見。

由於CUDA目前不提供任何方向的同步方向,映射內存不應該從主機上修改,而內核使用該內存時可能正在運行或可能正在運行。

+0

謝謝你的回答,這就是我正在尋找的東西。 – agrippa 2013-04-05 17:48:20