2

matlab関数を最適化する方法があるかどうか知りたいですgather。非常に巨大な行列を使用してCudaコードを開発していgatherますが、GPUデータを取得するために使用する必要のある関数が非常に遅いことに気付きました。2 ^ 13x2 ^ 8の行列の場合、約3秒かかります。

4

1 に答える 1

3

のパフォーマンスはgpuArray.gather、PCIバスによって制限されます。これを最適化するには、収集するデータを少なくします(たとえば、インデックスを使用します)。Parallel Computing Toolboxの最近のバージョンでは、操作の多くは非同期ですが、gatherそうではないことに注意してください。そのため、非同期要求が完了するまでの時間が表示されているだけかもしれません。wait(gpuDevice)を使用してデバイスを同期することを確認できます。

于 2013-03-27T14:21:35.550 に答える