I am developing something in heterogeneous systems with CPU and GPU (AMD APU, in fact) with OpenCL. Since I will use atomic operations to guarantee the integrity of data, and the data is shared among CPU device and GPU device, on each of which there is a kernel running on the shared data. My question is: is atomic operation still valid between these two devices? Hope anyone can help me. Many thanks.
質問する
295 次
1 に答える
2
OpenCL仕様の付録Aは、異なるデバイス間のメモリオブジェクトの同期について説明しています。両方のデバイスが同じ物理的な場所にあるメモリオブジェクトにアクセスするという保証はありません。デバイスの1つがバッファのコピーで動作する可能性があり、付録Aで説明されている同期のみが、他のデバイスがバッファのコピーを取得することを保証します。
AMD APUに実装すると、CPUとGPUの両方が同じアドレス空間を共有できるようになり、デバイス間の同期が不要になる場合があります。AMDのドキュメントと実験を確認することをお勧めします。
于 2012-09-25T16:15:51.890 に答える