私は初心者の並列プログラミングです。私は愚かであるように思われるかもしれない質問を持っていますが、私がそれを見つけたときに決定的な答えを得られませんでした。GPUはCPUまたはCPUからGPUへの書き込みを読み取りますか?
GPUコンピューティングでは、デバイス、つまりGPUとホスト、つまりCPUがあります。私はgpuでいくつかのメモリを割り当て、カーネルに2つのパラメータ(src []とdest [])を渡し、src文字列、つまりHello worldをdest文字列にコピーし、gpuからdest文字列を取得する単純なhello worldプログラムを書いたザ・ホスト。
文字列 "src"はGPUによって読み取られるのか、CPUはGPUに書き込みますか?また、GPUから文字列を取り戻す場合、GPUからCPUまたはCPUへの書き込みはGPUからですか? GPU に4つの可能性 1. CPUが存在することができる前後のデータを転送する際に
- CPUがGPU に書き込む - GPUはCPU にフォームCPU 2 GPUを読み出し - GPUはCPU に書き込む - CPUをGPUから読み取ります
誰かがこれらのうちどれが可能であり、どちらではないか説明できますか?
さまざまな同期化されたコントローラを経由して、DMA(http://en.wikipedia.org/wiki/Direct_memory_access)が表示されます。 – Ani
ありがとうございました。 GPUがトランザクションも開始できることを知っておいてください。 Openclのどのライブラリルーチンを使ってトランザクションを実際に開始したのかを知る方法はありますか?またはルーチンを使用して、CPUまたはGPUのどちらかに強制的にトランザクションを実行させることができます。 – Nike
私はOpenCLをよく知りません。 CUDAが、変数が統一された仮想アドレス空間にどこに住んでいたかを確認するための方法をいくつか与えていないと、私は驚くでしょう。このような情報は、明示的に管理された転送のユースケースの外側であっても有用である可能性があります。 – Patrick87