提问人:Pippo 提问时间:1/2/2013 最后编辑:Robert CrovellaPippo 更新时间:8/26/2014 访问量:3160
双精度 CUFFT
CUFFT with double precision
问:
我在使用 CUDA FFT 库时遇到了一些问题。
我将输入声明为 cuDoubleComplex,但编译器返回错误,指出此类型与 cufftComplex 类型的参数不兼容。在互联网上搜索了一番后,我找到了 cufft.h 文件,其中有一行。我的问题是,在库 cuComplex.h 中,很明显 cuComplex 具有单个浮点精度 (),但我想要双精度。typedef cuComplex cufftComplex;
typedef cuFloatComplex cuComplex;
这可能吗?
特别是,我获得了以下内容:
error: argument of type "cufftDoubleComplex *" is incompatible with parameter of type "cufftComplex *"
在这一行:
cufftExecC2C(plan, data1, data2, CUFFT_FORWARD);
答:
7赞
sgarizvi
1/2/2013
#1
双精度复数数据类型在 CUFFT 中定义。cufftDoubleComplex
CUFFT 中 fft 的双精度版本是:
cufftExecD2Z() //Real To Complex
cufftExecZ2D() //Complex To Real
cufftExecZ2Z() //Complex To Complex
cufftExecC2C
是 FFT 的单精度版本,并期望输入和输出指针的类型为 ,而您传递给它的是指针类型为 。cufftComplex
cufftDoubleComplex
对于数据类型,您必须改用该函数,该函数用于双精度数据。cufftDoubleComplex
cufftExecZ2Z
评论
cufftDoubleComplex
CUFFT_D2Z
CUFFT_Z2D
CUFFT_Z2Z
error: no suitable user-defined conversion from "cuComplex" to "cuDoubleComplex" exists
cufftExecZ2Z
cufftExecC2C