1

マルチ GPU OpenCL コードを実装しようとしています。私のモデルでは、GPU は通信してデータを交換する必要があります。

サブバッファを処理することが 1 つの解決策であることがわかりました (場所は覚えていませんが、しばらく経ちました)。OpenCLでサブバッファが重要な理由をできるだけ簡単に説明できる人はいますか? 私が理解できる限り、バッファのみを使用してまったく同じことを行うことができます。

どうもありがとう、ジョルゴス

補足質問: GPU 間でデータを交換する最良の方法は何ですか?

4

1 に答える 1

0

複数の GPU を扱うときに、サブバッファが問題の解決策をどのように提供するかはわかりません (またはわかりません)。私の知る限り、サブバッファーはバッファーへのビューを提供します。つまり、単一のバッファーを小さなバッファー (サブバッファー) のチャンクに分割して、ソフトウェア抽象化のレイヤーを提供できます。サブバッファーは、オフセットの最初の要素を保持する必要がある同じ場合に有利です。ゼロになる。

clEnqueueMigrateMemObjectsmultiGPU または MultiDevice の問題に対処するために、OpenCL 1.2 は、 OpenCL API 呼び出しhttp://www.khronos.org/registry/cl/sdk/1.2/docs/man/xhtmlを使用して、ある GPU から別の GPU にメモリ オブジェクトを直接コピーできる API を提供します。 /clEnqueueMigrateMemObjects.html

于 2012-03-26T03:04:03.897 に答える