[英]CUFFT with double precision
我在使用CUDA FFT庫時遇到一些問題。
我將輸入聲明為cuDoubleComplex,但是編譯器返回以下錯誤:此類型與cufftComplex類型的參數不兼容。 通過Internet進行搜索后,我找到文件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);
雙精度復雜數據類型在CUFFT中定義為cufftDoubleComplex
。
CUFFT中fft的雙精度版本是:
cufftExecD2Z() //Real To Complex
cufftExecZ2D() //Complex To Real
cufftExecZ2Z() //Complex To Complex
cufftExecC2C
是fft的單精度版本,並且期望輸入和輸出指針的類型為cufftComplex
,而您要cufftComplex
傳遞的類型為cufftDoubleComplex
的指針。
對於cufftDoubleComplex
數據類型,必須改為使用函數cufftExecZ2Z
,該函數用於雙精度數據。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.