4

CUFFTライブラリで提供されているバッチモードの使用方法を理解しようとしています。

基本的に、幅5300ピクセル、高さ3500ピクセルの画像があります。現在、これは、FFTWを使用してこれらの5300要素で35001DFFTを実行していることを意味します。

これは、CUFFTライブラリをバッチモードで実行するのに適した問題ですか?この問題を解決するには、データをどのように設定する必要がありますか?

ありがとう

4

2 に答える 2

4

はい、バッチモードを使用できます。

バッチモードを使用するには、5300要素を継続的に保存する必要があります。

これは、隣接するバッチ間の距離が5300であることを意味します。次のように実行できます。

..........
cufftComplex *host;
cufftComplex *device;
CudaMallocHost((void **)&host,sizeof(cufftComplex)*5300*3500);
CudaMalloc((void **)&devcie,sizeof(cufftComplex)*5300*3500);
//here add the elements,like this:
//host[0-5299] the first batch, host[5300-10599] the second batch ,and up to the 3500th batch.
CudaMemcpy(device,host,sizeof(cufftComplex)*5300*3500,......);
CufftPlan1d(&device,5300,type,3500);
CufftExecC2C(......);
......

詳細については、CUFFTマニュアルを参照してください。

于 2012-09-20T07:40:22.000 に答える
2

はい、これは良い問題です。

次のようにする必要があります。

  1. gpuでsizeof(cufftComplex)* 5300 * 3500のサイズの配列を作成します(ここでは、複雑な入力データがあると想定しています)
  2. データをGPUにコピーします
  3. cufftPlan1d()でプランを作成する
  4. たとえばcufftExecC2C()を使用して計画を実行します

詳細については、CUFFTマニュアルを参照する必要があります

于 2011-03-08T16:56:28.717 に答える