3

CUDAs FFT ライブラリでいくつかの問題が発生しています。

入力を cuDoubleComplex として宣言しましたが、コンパイラは、この型が cufftComplex 型のパラメーターと互換性がないというエラーを返します。インターネットで検索したところ、cufft.h という行が含まれているファイルが見つかりましたtypedef cuComplex cufftComplex;。私の問題は、ライブラリ cuComplex.h では、cuComplex が単一の浮動小数点精度 ( typedef cuFloatComplex cuComplex;) を持っていることは明らかですが、倍精度が必要なことです。

これは可能ですか?

特に、私は以下を取得します。

error: argument of type "cufftDoubleComplex *" is incompatible with parameter of type "cufftComplex *"

この行で:

cufftExecC2C(plan, data1, data2, CUFFT_FORWARD);
4

1 に答える 1

7

倍精度複素数データ型はcufftDoubleComplex、CUFFT のように定義されます。

CUFFT の fft の倍精度バージョンは次のとおりです。

cufftExecD2Z() //Real To Complex

cufftExecZ2D() //Complex To Real

cufftExecZ2Z() //Complex To Complex

cufftExecC2Cは fft の単精度バージョンであり、入力ポインターと出力ポインターが 型であることが期待されますが、型cufftComplexのポインターを渡しますcufftDoubleComplex

データ型については、代わりに倍精度データ用cufftDoubleComplexの関数を使用する必要があります。cufftExecZ2Z

于 2013-01-02T10:55:23.230 に答える