CUDAC++のRAM<->GPUにDMAを使用する場合、メモリがCPUキャッシュからではなく、固定された(ロックページ)RAMから読み取られるようにするにはどうすればよいですか?
結局のところ、DMAの場合、CPUは、誰かがメモリを変更したという事実と、CPU(Cache <-> RAM)を同期する必要性について何も知りません。そして、私が知る限り、C++11のstd::memory_barier()はDMAに役立たず、RAMから読み取れませんが、キャッシュL1 / L2/L3間のコンプライアンスをもたらすだけです。さらに、一般に、CPU上のキャッシュとRAMの間の競合を解決するためのプロトコルはありませんが、NUMAのCPUキャッシュL1 / L2 /L3とマルチCPUの異なるレベルのプロトコルのみを同期します:MOESI / MESIF