cuFFT#
This page shows how SCALE's cuFFT corresponds to each version of cuFFT.
98% (63 of 64 declarations available)
2.6. Advanced Data Layout#
cufftResult cufftPlanMany(cufftHandle *plan, int rank, int *n, int *inembed, int istride, int idist, int *onembed, int ostride, int odist, cufftType type, int batch)
2.9. cuFFT Callback Routines#
typedef cufftComplex (*cufftCallbackLoadC)(void *dataIn, size_t offset, void *callerInfo, void *sharedPointer)
typedef cufftDoubleComplex (*cufftCallbackLoadZ)(void *dataIn, size_t offset, void *callerInfo, void *sharedPointer)
typedef cufftReal (*cufftCallbackLoadR)(void *dataIn, size_t offset, void *callerInfo, void *sharedPointer)
typedef cufftDoubleReal (*cufftCallbackLoadD)(void *dataIn, size_t offset, void *callerInfo, void *sharedPointer)
typedef void (*cufftCallbackStoreC)(void *dataOut, size_t offset, cufftComplex element, void *callerInfo, void *sharedPointer)
typedef void (*cufftCallbackStoreZ)(void *dataOut, size_t offset, cufftDoubleComplex element, void *callerInfo, void *sharedPointer)
typedef void (*cufftCallbackStoreR)(void *dataOut, size_t offset, cufftReal element, void *callerInfo, void *sharedPointer)
typedef void (*cufftCallbackStoreD)(void *dataOut, size_t offset, cufftDoubleReal element, void *callerInfo, void *sharedPointer)
3.1. Return value cufftResult#
enum cufftResult
CUFFT_SUCCESS = 0
CUFFT_INVALID_PLAN = 1
CUFFT_ALLOC_FAILED = 2
CUFFT_INVALID_TYPE = 3
CUFFT_INVALID_VALUE = 4
CUFFT_INTERNAL_ERROR = 5
CUFFT_EXEC_FAILED = 6
CUFFT_SETUP_FAILED = 7
CUFFT_INVALID_SIZE = 8
CUFFT_UNALIGNED_DATA = 9
CUFFT_INCOMPLETE_PARAMETER_LIST = 10
CUFFT_INVALID_DEVICE = 11
CUFFT_PARSE_ERROR = 12
CUFFT_NO_WORKSPACE = 13
CUFFT_NOT_IMPLEMENTED = 14
CUFFT_LICENSE_ERROR = 15
CUFFT_NOT_SUPPORTED = 16
3.2. cuFFT Basic Plans#
cufftResult cufftPlan1d(cufftHandle *plan, int nx, cufftType type, int batch)
cufftResult cufftPlan2d(cufftHandle *plan, int nx, int ny, cufftType type)
cufftResult cufftPlan3d(cufftHandle *plan, int nx, int ny, int nz, cufftType type)
3.3. cuFFT Extensible Plans#
cufftResult cufftCreate(cufftHandle *plan)
cufftResult cufftMakePlan1d(cufftHandle plan, int nx, cufftType type, int batch, size_t *workSize)
cufftResult cufftMakePlan2d(cufftHandle plan, int nx, int ny, cufftType type, size_t *workSize)
cufftResult cufftMakePlan3d(cufftHandle plan, int nx, int ny, int nz, cufftType type, size_t *workSize)
cufftResult cufftMakePlanMany(cufftHandle plan, int rank, int *n, int *inembed, int istride, int idist, int *onembed, int ostride, int odist, cufftType type, int batch, size_t *workSize)
cufftResult cufftMakePlanMany64(cufftHandle plan, int rank, long long int *n, long long int *inembed, long long int istride, long long int idist, long long int *onembed, long long int ostride, long long int odist, cufftType type, long long int batch, size_t *workSize)
cufftResult cufftXtMakePlanMany(cufftHandle plan, int rank, long long int *n, long long int *inembed, long long int istride, long long int idist, cudaDataType inputtype, long long int *onembed, long long int ostride, long long int odist, cudaDataType outputtype, long long int batch, size_t *workSize, cudaDataType executiontype)
3.4. cuFFT Estimated Size of Work Area#
cufftResult cufftEstimate1d(int nx, cufftType type, int batch, size_t *workSize)
cufftResult cufftEstimate2d(int nx, int ny, cufftType type, size_t *workSize)
cufftResult cufftEstimate3d(int nx, int ny, int nz, cufftType type, size_t *workSize)
cufftResult cufftEstimateMany(int rank, int *n, int *inembed, int istride, int idist, int *onembed, int ostride, int odist, cufftType type, int batch, size_t *workSize)
3.5. cuFFT Refined Estimated Size of Work Area#
cufftResult cufftGetSize1d(cufftHandle plan, int nx, cufftType type, int batch, size_t *workSize)
cufftResult cufftGetSize2d(cufftHandle plan, int nx, int ny, cufftType type, size_t *workSize)
cufftResult cufftGetSize3d(cufftHandle plan, int nx, int ny, int nz, cufftType type, size_t *workSize)
cufftResult cufftGetSizeMany(cufftHandle plan, int rank, int *n, int *inembed, int istride, int idist, int *onembed, int ostride, int odist, cufftType type, int batch, size_t *workSize)
cufftResult cufftGetSizeMany64(cufftHandle plan, int rank, long long int *n, long long int *inembed, long long int istride, long long int idist, long long int *onembed, long long int ostride, long long int odist, cufftType type, long long int batch, size_t *workSize)
cufftResult cufftXtGetSizeMany(cufftHandle plan, int rank, long long int *n, long long int *inembed, long long int istride, long long int idist, cudaDataType inputtype, long long int *onembed, long long int ostride, long long int odist, cudaDataType outputtype, long long int batch, size_t *workSize, cudaDataType executiontype)
3.6. Function cufftGetSize()#
cufftResult cufftGetSize(cufftHandle plan, size_t *workSize)
cuFFT Caller Allocated Work Area Support#
cufftResult cufftSetAutoAllocation(cufftHandle plan, int autoAllocate)
cufftResult cufftSetWorkArea(cufftHandle plan, void *workArea)
3.8. Function cufftDestroy()#
cufftResult cufftDestroy(cufftHandle plan)
3.9. cuFFT Execution#
cufftResult cufftExecC2C(cufftHandle plan, cufftComplex *idata, cufftComplex *odata, int direction)
cufftResult cufftExecZ2Z(cufftHandle plan, cufftDoubleComplex *idata, cufftDoubleComplex *odata, int direction)
cufftResult cufftExecR2C(cufftHandle plan, cufftReal *idata, cufftComplex *odata)
cufftResult cufftExecD2Z(cufftHandle plan, cufftDoubleReal *idata, cufftDoubleComplex *odata)
cufftResult cufftExecC2R(cufftHandle plan, cufftComplex *idata, cufftReal *odata)
-cufftResult cufftExecZ2D(cufftHandle plan, cufftComplex *idata, cufftReal *odata)
cufftResult cufftXtExec(cufftHandle plan, void *input, void *output, int direction)
cufftResult cufftXtExecDescriptor(cufftHandle plan, cudaLibXtDesc *input, cudaLibXtDesc *output, int direction)
3.10. cuFFT and Multiple GPUs#
enum cufftXtSubFormat
CUFFT_XT_FORMAT_INPUT = 0
CUFFT_XT_FORMAT_OUTPUT = 1
CUFFT_XT_FORMAT_INPLACE = 2
CUFFT_XT_FORMAT_INPLACE_SHUFFLED = 3
CUFFT_XT_FORMAT_1D_INPUT_SHUFFLED = 4
CUFFT_XT_FORMAT_DISTRIBUTED_INPUT = 5
CUFFT_XT_FORMAT_DISTRIBUTED_OUTPUT = 6
CUFFT_FORMAT_UNDEFINED = 7
enum cufftXtCopyType
CUFFT_COPY_HOST_TO_DEVICE = 0
CUFFT_COPY_DEVICE_TO_HOST = 1
CUFFT_COPY_DEVICE_TO_DEVICE = 2
cufftResult cufftXtSetGPUs(cufftHandle plan, int nGPUs, int *whichGPUs)
cufftResult cufftXtSetWorkArea(cufftHandle plan, void **workArea)
cufftResult cufftXtExecDescriptorC2C(cufftHandle plan, cudaLibXtDesc *input, cudaLibXtDesc *output, int direction)
cufftResult cufftXtExecDescriptorZ2Z(cufftHandle plan, cudaLibXtDesc *input, cudaLibXtDesc *output, int direction)
cufftResult cufftXtMalloc(cufftHandle plan, cudaLibXtDesc **descriptor, cufftXtSubFormat format)
cufftResult cufftXtFree(cudaLibXtDesc *descriptor)
cufftResult cufftXtMemcpy(cufftHandle plan, void *dstPointer, void *srcPointer, cufftXtCopyType type)
3.11. cuFFT Callbacks#
cufftResult cufftXtSetCallback(cufftHandle plan, void **callbackRoutine, cufftXtCallbackType type, void **callerInfo)
cufftResult cufftXtClearCallback(cufftHandle plan, cufftXtCallbackType type)
cufftResult cufftXtSetCallbackSharedSize(cufftHandle plan, cufftXtCallbackType type, size_t sharedSize)
3.12. Function cufftSetStream()#
cufftResult cufftSetStream(cufftHandle plan, cudaStream_t stream)
3.13. Function cufftGetVersion()#
cufftResult cufftGetVersion(int *version)
3.14. Function cufftGetProperty()#
cufftResult cufftGetProperty(libraryPropertyType type, int *value)
3.15. cuFFT Types#
enum cufftType
CUFFT_R2C = 42
CUFFT_C2R = 44
CUFFT_C2C = 41
CUFFT_D2Z = 106
CUFFT_Z2D = 108
CUFFT_Z2Z = 105
enum cufftXtCallbackType
CUFFT_CB_LD_COMPLEX = 0
CUFFT_CB_LD_COMPLEX_DOUBLE = 1
CUFFT_CB_LD_REAL = 2
CUFFT_CB_LD_REAL_DOUBLE = 3
CUFFT_CB_ST_COMPLEX = 4
CUFFT_CB_ST_COMPLEX_DOUBLE = 5
CUFFT_CB_ST_REAL = 6
CUFFT_CB_ST_REAL_DOUBLE = 7
CUFFT_CB_UNDEFINED = 8
typedef cuComplex cufftComplex
typedef cuDoubleComplex cufftDoubleComplex
typedef float cufftReal
typedef double cufftDoubleReal
typedef int cufftHandle
98% (64 of 65 declarations available)
2.6. Advanced Data Layout#
cufftResult cufftPlanMany(cufftHandle *plan, int rank, int *n, int *inembed, int istride, int idist, int *onembed, int ostride, int odist, cufftType type, int batch)
2.9. cuFFT Callback Routines#
typedef cufftComplex (*cufftCallbackLoadC)(void *dataIn, size_t offset, void *callerInfo, void *sharedPointer)
typedef cufftDoubleComplex (*cufftCallbackLoadZ)(void *dataIn, size_t offset, void *callerInfo, void *sharedPointer)
typedef cufftReal (*cufftCallbackLoadR)(void *dataIn, size_t offset, void *callerInfo, void *sharedPointer)
typedef cufftDoubleReal (*cufftCallbackLoadD)(void *dataIn, size_t offset, void *callerInfo, void *sharedPointer)
typedef void (*cufftCallbackStoreC)(void *dataOut, size_t offset, cufftComplex element, void *callerInfo, void *sharedPointer)
typedef void (*cufftCallbackStoreZ)(void *dataOut, size_t offset, cufftDoubleComplex element, void *callerInfo, void *sharedPointer)
typedef void (*cufftCallbackStoreR)(void *dataOut, size_t offset, cufftReal element, void *callerInfo, void *sharedPointer)
typedef void (*cufftCallbackStoreD)(void *dataOut, size_t offset, cufftDoubleReal element, void *callerInfo, void *sharedPointer)
3.1. Return value cufftResult#
enum cufftResult
CUFFT_SUCCESS = 0
CUFFT_INVALID_PLAN = 1
CUFFT_ALLOC_FAILED = 2
CUFFT_INVALID_TYPE = 3
CUFFT_INVALID_VALUE = 4
CUFFT_INTERNAL_ERROR = 5
CUFFT_EXEC_FAILED = 6
CUFFT_SETUP_FAILED = 7
CUFFT_INVALID_SIZE = 8
CUFFT_UNALIGNED_DATA = 9
CUFFT_INCOMPLETE_PARAMETER_LIST = 10
CUFFT_INVALID_DEVICE = 11
CUFFT_PARSE_ERROR = 12
CUFFT_NO_WORKSPACE = 13
CUFFT_NOT_IMPLEMENTED = 14
CUFFT_LICENSE_ERROR = 15
CUFFT_NOT_SUPPORTED = 16
3.2. cuFFT Basic Plans#
cufftResult cufftPlan1d(cufftHandle *plan, int nx, cufftType type, int batch)
cufftResult cufftPlan2d(cufftHandle *plan, int nx, int ny, cufftType type)
cufftResult cufftPlan3d(cufftHandle *plan, int nx, int ny, int nz, cufftType type)
3.3. cuFFT Extensible Plans#
cufftResult cufftCreate(cufftHandle *plan)
cufftResult cufftMakePlan1d(cufftHandle plan, int nx, cufftType type, int batch, size_t *workSize)
cufftResult cufftMakePlan2d(cufftHandle plan, int nx, int ny, cufftType type, size_t *workSize)
cufftResult cufftMakePlan3d(cufftHandle plan, int nx, int ny, int nz, cufftType type, size_t *workSize)
cufftResult cufftMakePlanMany(cufftHandle plan, int rank, int *n, int *inembed, int istride, int idist, int *onembed, int ostride, int odist, cufftType type, int batch, size_t *workSize)
cufftResult cufftMakePlanMany64(cufftHandle plan, int rank, long long int *n, long long int *inembed, long long int istride, long long int idist, long long int *onembed, long long int ostride, long long int odist, cufftType type, long long int batch, size_t *workSize)
cufftResult cufftXtMakePlanMany(cufftHandle plan, int rank, long long int *n, long long int *inembed, long long int istride, long long int idist, cudaDataType inputtype, long long int *onembed, long long int ostride, long long int odist, cudaDataType outputtype, long long int batch, size_t *workSize, cudaDataType executiontype)
3.4. cuFFT Estimated Size of Work Area#
cufftResult cufftEstimate1d(int nx, cufftType type, int batch, size_t *workSize)
cufftResult cufftEstimate2d(int nx, int ny, cufftType type, size_t *workSize)
cufftResult cufftEstimate3d(int nx, int ny, int nz, cufftType type, size_t *workSize)
cufftResult cufftEstimateMany(int rank, int *n, int *inembed, int istride, int idist, int *onembed, int ostride, int odist, cufftType type, int batch, size_t *workSize)
3.5. cuFFT Refined Estimated Size of Work Area#
cufftResult cufftGetSize1d(cufftHandle plan, int nx, cufftType type, int batch, size_t *workSize)
cufftResult cufftGetSize2d(cufftHandle plan, int nx, int ny, cufftType type, size_t *workSize)
cufftResult cufftGetSize3d(cufftHandle plan, int nx, int ny, int nz, cufftType type, size_t *workSize)
cufftResult cufftGetSizeMany(cufftHandle plan, int rank, int *n, int *inembed, int istride, int idist, int *onembed, int ostride, int odist, cufftType type, int batch, size_t *workSize)
cufftResult cufftGetSizeMany64(cufftHandle plan, int rank, long long int *n, long long int *inembed, long long int istride, long long int idist, long long int *onembed, long long int ostride, long long int odist, cufftType type, long long int batch, size_t *workSize)
cufftResult cufftXtGetSizeMany(cufftHandle plan, int rank, long long int *n, long long int *inembed, long long int istride, long long int idist, cudaDataType inputtype, long long int *onembed, long long int ostride, long long int odist, cudaDataType outputtype, long long int batch, size_t *workSize, cudaDataType executiontype)
3.6. Function cufftGetSize()#
cufftResult cufftGetSize(cufftHandle plan, size_t *workSize)
cuFFT Caller Allocated Work Area Support#
cufftResult cufftSetAutoAllocation(cufftHandle plan, int autoAllocate)
cufftResult cufftSetWorkArea(cufftHandle plan, void *workArea)
cufftResult cufftXtSetWorkAreaPolicy(cufftHandle plan, cufftXtWorkAreaPolicy policy, size_t *workSize)
3.8. Function cufftDestroy()#
cufftResult cufftDestroy(cufftHandle plan)
3.9. cuFFT Execution#
cufftResult cufftExecC2C(cufftHandle plan, cufftComplex *idata, cufftComplex *odata, int direction)
cufftResult cufftExecZ2Z(cufftHandle plan, cufftDoubleComplex *idata, cufftDoubleComplex *odata, int direction)
cufftResult cufftExecR2C(cufftHandle plan, cufftReal *idata, cufftComplex *odata)
cufftResult cufftExecD2Z(cufftHandle plan, cufftDoubleReal *idata, cufftDoubleComplex *odata)
cufftResult cufftExecC2R(cufftHandle plan, cufftComplex *idata, cufftReal *odata)
-cufftResult cufftExecZ2D(cufftHandle plan, cufftComplex *idata, cufftReal *odata)
cufftResult cufftXtExec(cufftHandle plan, void *input, void *output, int direction)
cufftResult cufftXtExecDescriptor(cufftHandle plan, cudaLibXtDesc *input, cudaLibXtDesc *output, int direction)
3.10. cuFFT and Multiple GPUs#
enum cufftXtSubFormat
CUFFT_XT_FORMAT_INPUT = 0
CUFFT_XT_FORMAT_OUTPUT = 1
CUFFT_XT_FORMAT_INPLACE = 2
CUFFT_XT_FORMAT_INPLACE_SHUFFLED = 3
CUFFT_XT_FORMAT_1D_INPUT_SHUFFLED = 4
CUFFT_XT_FORMAT_DISTRIBUTED_INPUT = 5
CUFFT_XT_FORMAT_DISTRIBUTED_OUTPUT = 6
CUFFT_FORMAT_UNDEFINED = 7
enum cufftXtCopyType
CUFFT_COPY_HOST_TO_DEVICE = 0
CUFFT_COPY_DEVICE_TO_HOST = 1
CUFFT_COPY_DEVICE_TO_DEVICE = 2
cufftResult cufftXtSetGPUs(cufftHandle plan, int nGPUs, int *whichGPUs)
cufftResult cufftXtSetWorkArea(cufftHandle plan, void **workArea)
cufftResult cufftXtExecDescriptorC2C(cufftHandle plan, cudaLibXtDesc *input, cudaLibXtDesc *output, int direction)
cufftResult cufftXtExecDescriptorZ2Z(cufftHandle plan, cudaLibXtDesc *input, cudaLibXtDesc *output, int direction)
cufftResult cufftXtMalloc(cufftHandle plan, cudaLibXtDesc **descriptor, cufftXtSubFormat format)
cufftResult cufftXtFree(cudaLibXtDesc *descriptor)
cufftResult cufftXtMemcpy(cufftHandle plan, void *dstPointer, void *srcPointer, cufftXtCopyType type)
3.11. cuFFT Callbacks#
cufftResult cufftXtSetCallback(cufftHandle plan, void **callbackRoutine, cufftXtCallbackType type, void **callerInfo)
cufftResult cufftXtClearCallback(cufftHandle plan, cufftXtCallbackType type)
cufftResult cufftXtSetCallbackSharedSize(cufftHandle plan, cufftXtCallbackType type, size_t sharedSize)
3.12. Function cufftSetStream()#
cufftResult cufftSetStream(cufftHandle plan, cudaStream_t stream)
3.13. Function cufftGetVersion()#
cufftResult cufftGetVersion(int *version)
3.14. Function cufftGetProperty()#
cufftResult cufftGetProperty(libraryPropertyType type, int *value)
3.15. cuFFT Types#
enum cufftType
CUFFT_R2C = 42
CUFFT_C2R = 44
CUFFT_C2C = 41
CUFFT_D2Z = 106
CUFFT_Z2D = 108
CUFFT_Z2Z = 105
enum cufftXtCallbackType
CUFFT_CB_LD_COMPLEX = 0
CUFFT_CB_LD_COMPLEX_DOUBLE = 1
CUFFT_CB_LD_REAL = 2
CUFFT_CB_LD_REAL_DOUBLE = 3
CUFFT_CB_ST_COMPLEX = 4
CUFFT_CB_ST_COMPLEX_DOUBLE = 5
CUFFT_CB_ST_REAL = 6
CUFFT_CB_ST_REAL_DOUBLE = 7
CUFFT_CB_UNDEFINED = 8
typedef cuComplex cufftComplex
typedef cuDoubleComplex cufftDoubleComplex
typedef float cufftReal
typedef double cufftDoubleReal
typedef int cufftHandle
99% (68 of 69 declarations available)
2.6. Advanced Data Layout#
cufftResult cufftPlanMany(cufftHandle *plan, int rank, int *n, int *inembed, int istride, int idist, int *onembed, int ostride, int odist, cufftType type, int batch)
2.9. cuFFT Callback Routines#
typedef cufftComplex (*cufftCallbackLoadC)(void *dataIn, size_t offset, void *callerInfo, void *sharedPointer)
typedef cufftDoubleComplex (*cufftCallbackLoadZ)(void *dataIn, size_t offset, void *callerInfo, void *sharedPointer)
typedef cufftReal (*cufftCallbackLoadR)(void *dataIn, size_t offset, void *callerInfo, void *sharedPointer)
typedef cufftDoubleReal (*cufftCallbackLoadD)(void *dataIn, size_t offset, void *callerInfo, void *sharedPointer)
typedef void (*cufftCallbackStoreC)(void *dataOut, size_t offset, cufftComplex element, void *callerInfo, void *sharedPointer)
typedef void (*cufftCallbackStoreZ)(void *dataOut, size_t offset, cufftDoubleComplex element, void *callerInfo, void *sharedPointer)
typedef void (*cufftCallbackStoreR)(void *dataOut, size_t offset, cufftReal element, void *callerInfo, void *sharedPointer)
typedef void (*cufftCallbackStoreD)(void *dataOut, size_t offset, cufftDoubleReal element, void *callerInfo, void *sharedPointer)
3.1. Return value cufftResult#
enum cufftResult
CUFFT_SUCCESS = 0
CUFFT_INVALID_PLAN = 1
CUFFT_ALLOC_FAILED = 2
CUFFT_INVALID_TYPE = 3
CUFFT_INVALID_VALUE = 4
CUFFT_INTERNAL_ERROR = 5
CUFFT_EXEC_FAILED = 6
CUFFT_SETUP_FAILED = 7
CUFFT_INVALID_SIZE = 8
CUFFT_UNALIGNED_DATA = 9
CUFFT_INCOMPLETE_PARAMETER_LIST = 10
CUFFT_INVALID_DEVICE = 11
CUFFT_PARSE_ERROR = 12
CUFFT_NO_WORKSPACE = 13
CUFFT_NOT_IMPLEMENTED = 14
CUFFT_LICENSE_ERROR = 15
CUFFT_NOT_SUPPORTED = 16
3.2. cuFFT Basic Plans#
cufftResult cufftPlan1d(cufftHandle *plan, int nx, cufftType type, int batch)
cufftResult cufftPlan2d(cufftHandle *plan, int nx, int ny, cufftType type)
cufftResult cufftPlan3d(cufftHandle *plan, int nx, int ny, int nz, cufftType type)
3.3. cuFFT Extensible Plans#
cufftResult cufftCreate(cufftHandle *plan)
cufftResult cufftMakePlan1d(cufftHandle plan, int nx, cufftType type, int batch, size_t *workSize)
cufftResult cufftMakePlan2d(cufftHandle plan, int nx, int ny, cufftType type, size_t *workSize)
cufftResult cufftMakePlan3d(cufftHandle plan, int nx, int ny, int nz, cufftType type, size_t *workSize)
cufftResult cufftMakePlanMany(cufftHandle plan, int rank, int *n, int *inembed, int istride, int idist, int *onembed, int ostride, int odist, cufftType type, int batch, size_t *workSize)
cufftResult cufftMakePlanMany64(cufftHandle plan, int rank, long long int *n, long long int *inembed, long long int istride, long long int idist, long long int *onembed, long long int ostride, long long int odist, cufftType type, long long int batch, size_t *workSize)
cufftResult cufftXtMakePlanMany(cufftHandle plan, int rank, long long int *n, long long int *inembed, long long int istride, long long int idist, cudaDataType inputtype, long long int *onembed, long long int ostride, long long int odist, cudaDataType outputtype, long long int batch, size_t *workSize, cudaDataType executiontype)
3.4. cuFFT Estimated Size of Work Area#
cufftResult cufftEstimate1d(int nx, cufftType type, int batch, size_t *workSize)
cufftResult cufftEstimate2d(int nx, int ny, cufftType type, size_t *workSize)
cufftResult cufftEstimate3d(int nx, int ny, int nz, cufftType type, size_t *workSize)
cufftResult cufftEstimateMany(int rank, int *n, int *inembed, int istride, int idist, int *onembed, int ostride, int odist, cufftType type, int batch, size_t *workSize)
3.5. cuFFT Refined Estimated Size of Work Area#
cufftResult cufftGetSize1d(cufftHandle plan, int nx, cufftType type, int batch, size_t *workSize)
cufftResult cufftGetSize2d(cufftHandle plan, int nx, int ny, cufftType type, size_t *workSize)
cufftResult cufftGetSize3d(cufftHandle plan, int nx, int ny, int nz, cufftType type, size_t *workSize)
cufftResult cufftGetSizeMany(cufftHandle plan, int rank, int *n, int *inembed, int istride, int idist, int *onembed, int ostride, int odist, cufftType type, int batch, size_t *workSize)
cufftResult cufftGetSizeMany64(cufftHandle plan, int rank, long long int *n, long long int *inembed, long long int istride, long long int idist, long long int *onembed, long long int ostride, long long int odist, cufftType type, long long int batch, size_t *workSize)
cufftResult cufftXtGetSizeMany(cufftHandle plan, int rank, long long int *n, long long int *inembed, long long int istride, long long int idist, cudaDataType inputtype, long long int *onembed, long long int ostride, long long int odist, cudaDataType outputtype, long long int batch, size_t *workSize, cudaDataType executiontype)
3.6. Function cufftGetSize()#
cufftResult cufftGetSize(cufftHandle plan, size_t *workSize)
cuFFT Caller Allocated Work Area Support#
cufftResult cufftSetAutoAllocation(cufftHandle plan, int autoAllocate)
cufftResult cufftSetWorkArea(cufftHandle plan, void *workArea)
cufftResult cufftXtSetWorkAreaPolicy(cufftHandle plan, cufftXtWorkAreaPolicy policy, size_t *workSize)
3.8. Function cufftDestroy()#
cufftResult cufftDestroy(cufftHandle plan)
3.9. cuFFT Execution#
cufftResult cufftExecC2C(cufftHandle plan, cufftComplex *idata, cufftComplex *odata, int direction)
cufftResult cufftExecZ2Z(cufftHandle plan, cufftDoubleComplex *idata, cufftDoubleComplex *odata, int direction)
cufftResult cufftExecR2C(cufftHandle plan, cufftReal *idata, cufftComplex *odata)
cufftResult cufftExecD2Z(cufftHandle plan, cufftDoubleReal *idata, cufftDoubleComplex *odata)
cufftResult cufftExecC2R(cufftHandle plan, cufftComplex *idata, cufftReal *odata)
-cufftResult cufftExecZ2D(cufftHandle plan, cufftComplex *idata, cufftReal *odata)
cufftResult cufftXtExec(cufftHandle plan, void *input, void *output, int direction)
cufftResult cufftXtExecDescriptor(cufftHandle plan, cudaLibXtDesc *input, cudaLibXtDesc *output, int direction)
3.10. cuFFT and Multiple GPUs#
enum cufftXtSubFormat
CUFFT_XT_FORMAT_INPUT = 0
CUFFT_XT_FORMAT_OUTPUT = 1
CUFFT_XT_FORMAT_INPLACE = 2
CUFFT_XT_FORMAT_INPLACE_SHUFFLED = 3
CUFFT_XT_FORMAT_1D_INPUT_SHUFFLED = 4
CUFFT_XT_FORMAT_DISTRIBUTED_INPUT = 5
CUFFT_XT_FORMAT_DISTRIBUTED_OUTPUT = 6
CUFFT_FORMAT_UNDEFINED = 7
enum cufftXtCopyType
CUFFT_COPY_HOST_TO_DEVICE = 0
CUFFT_COPY_DEVICE_TO_HOST = 1
CUFFT_COPY_DEVICE_TO_DEVICE = 2
cufftResult cufftXtSetGPUs(cufftHandle plan, int nGPUs, int *whichGPUs)
cufftResult cufftXtSetWorkArea(cufftHandle plan, void **workArea)
cufftResult cufftXtExecDescriptorC2C(cufftHandle plan, cudaLibXtDesc *input, cudaLibXtDesc *output, int direction)
cufftResult cufftXtExecDescriptorZ2Z(cufftHandle plan, cudaLibXtDesc *input, cudaLibXtDesc *output, int direction)
cufftResult cufftXtExecDescriptorR2C(cufftHandle plan, cudaLibXtDesc *input, cudaLibXtDesc *output)
cufftResult cufftXtExecDescriptorD2Z(cufftHandle plan, cudaLibXtDesc *input, cudaLibXtDesc *output)
cufftResult cufftXtExecDescriptorC2R(cufftHandle plan, cudaLibXtDesc *input, cudaLibXtDesc *output)
cufftResult cufftXtExecDescriptorZ2D(cufftHandle plan, cudaLibXtDesc *input, cudaLibXtDesc *output)
cufftResult cufftXtMalloc(cufftHandle plan, cudaLibXtDesc **descriptor, cufftXtSubFormat format)
cufftResult cufftXtFree(cudaLibXtDesc *descriptor)
cufftResult cufftXtMemcpy(cufftHandle plan, void *dstPointer, void *srcPointer, cufftXtCopyType type)
3.11. cuFFT Callbacks#
cufftResult cufftXtSetCallback(cufftHandle plan, void **callbackRoutine, cufftXtCallbackType type, void **callerInfo)
cufftResult cufftXtClearCallback(cufftHandle plan, cufftXtCallbackType type)
cufftResult cufftXtSetCallbackSharedSize(cufftHandle plan, cufftXtCallbackType type, size_t sharedSize)
3.12. Function cufftSetStream()#
cufftResult cufftSetStream(cufftHandle plan, cudaStream_t stream)
3.13. Function cufftGetVersion()#
cufftResult cufftGetVersion(int *version)
3.14. Function cufftGetProperty()#
cufftResult cufftGetProperty(libraryPropertyType type, int *value)
3.15. cuFFT Types#
enum cufftType
CUFFT_R2C = 42
CUFFT_C2R = 44
CUFFT_C2C = 41
CUFFT_D2Z = 106
CUFFT_Z2D = 108
CUFFT_Z2Z = 105
enum cufftXtCallbackType
CUFFT_CB_LD_COMPLEX = 0
CUFFT_CB_LD_COMPLEX_DOUBLE = 1
CUFFT_CB_LD_REAL = 2
CUFFT_CB_LD_REAL_DOUBLE = 3
CUFFT_CB_ST_COMPLEX = 4
CUFFT_CB_ST_COMPLEX_DOUBLE = 5
CUFFT_CB_ST_REAL = 6
CUFFT_CB_ST_REAL_DOUBLE = 7
CUFFT_CB_UNDEFINED = 8
typedef cuComplex cufftComplex
typedef cuDoubleComplex cufftDoubleComplex
typedef float cufftReal
typedef double cufftDoubleReal
typedef int cufftHandle
100% (69 of 69 declarations available)
2.6. Advanced Data Layout#
cufftResult cufftPlanMany(cufftHandle *plan, int rank, int *n, int *inembed, int istride, int idist, int *onembed, int ostride, int odist, cufftType type, int batch)
2.9. cuFFT Callback Routines#
typedef cufftComplex (*cufftCallbackLoadC)(void *dataIn, size_t offset, void *callerInfo, void *sharedPointer)
typedef cufftDoubleComplex (*cufftCallbackLoadZ)(void *dataIn, size_t offset, void *callerInfo, void *sharedPointer)
typedef cufftReal (*cufftCallbackLoadR)(void *dataIn, size_t offset, void *callerInfo, void *sharedPointer)
typedef cufftDoubleReal (*cufftCallbackLoadD)(void *dataIn, size_t offset, void *callerInfo, void *sharedPointer)
typedef void (*cufftCallbackStoreC)(void *dataOut, size_t offset, cufftComplex element, void *callerInfo, void *sharedPointer)
typedef void (*cufftCallbackStoreZ)(void *dataOut, size_t offset, cufftDoubleComplex element, void *callerInfo, void *sharedPointer)
typedef void (*cufftCallbackStoreR)(void *dataOut, size_t offset, cufftReal element, void *callerInfo, void *sharedPointer)
typedef void (*cufftCallbackStoreD)(void *dataOut, size_t offset, cufftDoubleReal element, void *callerInfo, void *sharedPointer)
3.1. Return value cufftResult#
enum cufftResult
CUFFT_SUCCESS = 0
CUFFT_INVALID_PLAN = 1
CUFFT_ALLOC_FAILED = 2
CUFFT_INVALID_TYPE = 3
CUFFT_INVALID_VALUE = 4
CUFFT_INTERNAL_ERROR = 5
CUFFT_EXEC_FAILED = 6
CUFFT_SETUP_FAILED = 7
CUFFT_INVALID_SIZE = 8
CUFFT_UNALIGNED_DATA = 9
CUFFT_INCOMPLETE_PARAMETER_LIST = 10
CUFFT_INVALID_DEVICE = 11
CUFFT_PARSE_ERROR = 12
CUFFT_NO_WORKSPACE = 13
CUFFT_NOT_IMPLEMENTED = 14
CUFFT_LICENSE_ERROR = 15
CUFFT_NOT_SUPPORTED = 16
3.2. cuFFT Basic Plans#
cufftResult cufftPlan1d(cufftHandle *plan, int nx, cufftType type, int batch)
cufftResult cufftPlan2d(cufftHandle *plan, int nx, int ny, cufftType type)
cufftResult cufftPlan3d(cufftHandle *plan, int nx, int ny, int nz, cufftType type)
3.3. cuFFT Extensible Plans#
cufftResult cufftCreate(cufftHandle *plan)
cufftResult cufftMakePlan1d(cufftHandle plan, int nx, cufftType type, int batch, size_t *workSize)
cufftResult cufftMakePlan2d(cufftHandle plan, int nx, int ny, cufftType type, size_t *workSize)
cufftResult cufftMakePlan3d(cufftHandle plan, int nx, int ny, int nz, cufftType type, size_t *workSize)
cufftResult cufftMakePlanMany(cufftHandle plan, int rank, int *n, int *inembed, int istride, int idist, int *onembed, int ostride, int odist, cufftType type, int batch, size_t *workSize)
cufftResult cufftMakePlanMany64(cufftHandle plan, int rank, long long int *n, long long int *inembed, long long int istride, long long int idist, long long int *onembed, long long int ostride, long long int odist, cufftType type, long long int batch, size_t *workSize)
cufftResult cufftXtMakePlanMany(cufftHandle plan, int rank, long long int *n, long long int *inembed, long long int istride, long long int idist, cudaDataType inputtype, long long int *onembed, long long int ostride, long long int odist, cudaDataType outputtype, long long int batch, size_t *workSize, cudaDataType executiontype)
3.4. cuFFT Estimated Size of Work Area#
cufftResult cufftEstimate1d(int nx, cufftType type, int batch, size_t *workSize)
cufftResult cufftEstimate2d(int nx, int ny, cufftType type, size_t *workSize)
cufftResult cufftEstimate3d(int nx, int ny, int nz, cufftType type, size_t *workSize)
cufftResult cufftEstimateMany(int rank, int *n, int *inembed, int istride, int idist, int *onembed, int ostride, int odist, cufftType type, int batch, size_t *workSize)
3.5. cuFFT Refined Estimated Size of Work Area#
cufftResult cufftGetSize1d(cufftHandle plan, int nx, cufftType type, int batch, size_t *workSize)
cufftResult cufftGetSize2d(cufftHandle plan, int nx, int ny, cufftType type, size_t *workSize)
cufftResult cufftGetSize3d(cufftHandle plan, int nx, int ny, int nz, cufftType type, size_t *workSize)
cufftResult cufftGetSizeMany(cufftHandle plan, int rank, int *n, int *inembed, int istride, int idist, int *onembed, int ostride, int odist, cufftType type, int batch, size_t *workSize)
cufftResult cufftGetSizeMany64(cufftHandle plan, int rank, long long int *n, long long int *inembed, long long int istride, long long int idist, long long int *onembed, long long int ostride, long long int odist, cufftType type, long long int batch, size_t *workSize)
cufftResult cufftXtGetSizeMany(cufftHandle plan, int rank, long long int *n, long long int *inembed, long long int istride, long long int idist, cudaDataType inputtype, long long int *onembed, long long int ostride, long long int odist, cudaDataType outputtype, long long int batch, size_t *workSize, cudaDataType executiontype)
3.6. Function cufftGetSize()#
cufftResult cufftGetSize(cufftHandle plan, size_t *workSize)
3.7. cuFFT Caller Allocated Work Area Support#
cufftResult cufftSetAutoAllocation(cufftHandle plan, int autoAllocate)
cufftResult cufftSetWorkArea(cufftHandle plan, void *workArea)
cufftResult cufftXtSetWorkAreaPolicy(cufftHandle plan, cufftXtWorkAreaPolicy policy, size_t *workSize)
3.8. Function cufftDestroy()#
cufftResult cufftDestroy(cufftHandle plan)
3.9. cuFFT Execution#
cufftResult cufftExecC2C(cufftHandle plan, cufftComplex *idata, cufftComplex *odata, int direction)
cufftResult cufftExecZ2Z(cufftHandle plan, cufftDoubleComplex *idata, cufftDoubleComplex *odata, int direction)
cufftResult cufftExecR2C(cufftHandle plan, cufftReal *idata, cufftComplex *odata)
cufftResult cufftExecD2Z(cufftHandle plan, cufftDoubleReal *idata, cufftDoubleComplex *odata)
cufftResult cufftExecC2R(cufftHandle plan, cufftComplex *idata, cufftReal *odata)
cufftResult cufftExecZ2D(cufftHandle plan, cufftDoubleComplex *idata, cufftDoubleReal *odata)
cufftResult cufftXtExec(cufftHandle plan, void *input, void *output, int direction)
cufftResult cufftXtExecDescriptor(cufftHandle plan, cudaLibXtDesc *input, cudaLibXtDesc *output, int direction)
3.10. cuFFT and Multiple GPUs#
enum cufftXtSubFormat
CUFFT_XT_FORMAT_INPUT = 0
CUFFT_XT_FORMAT_OUTPUT = 1
CUFFT_XT_FORMAT_INPLACE = 2
CUFFT_XT_FORMAT_INPLACE_SHUFFLED = 3
CUFFT_XT_FORMAT_1D_INPUT_SHUFFLED = 4
CUFFT_XT_FORMAT_DISTRIBUTED_INPUT = 5
CUFFT_XT_FORMAT_DISTRIBUTED_OUTPUT = 6
CUFFT_FORMAT_UNDEFINED = 7
enum cufftXtCopyType
CUFFT_COPY_HOST_TO_DEVICE = 0
CUFFT_COPY_DEVICE_TO_HOST = 1
CUFFT_COPY_DEVICE_TO_DEVICE = 2
cufftResult cufftXtSetGPUs(cufftHandle plan, int nGPUs, int *whichGPUs)
cufftResult cufftXtSetWorkArea(cufftHandle plan, void **workArea)
cufftResult cufftXtExecDescriptorC2C(cufftHandle plan, cudaLibXtDesc *input, cudaLibXtDesc *output, int direction)
cufftResult cufftXtExecDescriptorZ2Z(cufftHandle plan, cudaLibXtDesc *input, cudaLibXtDesc *output, int direction)
cufftResult cufftXtExecDescriptorR2C(cufftHandle plan, cudaLibXtDesc *input, cudaLibXtDesc *output)
cufftResult cufftXtExecDescriptorD2Z(cufftHandle plan, cudaLibXtDesc *input, cudaLibXtDesc *output)
cufftResult cufftXtExecDescriptorC2R(cufftHandle plan, cudaLibXtDesc *input, cudaLibXtDesc *output)
cufftResult cufftXtExecDescriptorZ2D(cufftHandle plan, cudaLibXtDesc *input, cudaLibXtDesc *output)
cufftResult cufftXtMalloc(cufftHandle plan, cudaLibXtDesc **descriptor, cufftXtSubFormat format)
cufftResult cufftXtFree(cudaLibXtDesc *descriptor)
cufftResult cufftXtMemcpy(cufftHandle plan, void *dstPointer, void *srcPointer, cufftXtCopyType type)
3.11. cuFFT Callbacks#
cufftResult cufftXtSetCallback(cufftHandle plan, void **callbackRoutine, cufftXtCallbackType type, void **callerInfo)
cufftResult cufftXtClearCallback(cufftHandle plan, cufftXtCallbackType type)
cufftResult cufftXtSetCallbackSharedSize(cufftHandle plan, cufftXtCallbackType type, size_t sharedSize)
3.12. Function cufftSetStream()#
cufftResult cufftSetStream(cufftHandle plan, cudaStream_t stream)
3.13. Function cufftGetVersion()#
cufftResult cufftGetVersion(int *version)
3.14. Function cufftGetProperty()#
cufftResult cufftGetProperty(libraryPropertyType type, int *value)
3.15. cuFFT Types#
enum cufftType
CUFFT_R2C = 42
CUFFT_C2R = 44
CUFFT_C2C = 41
CUFFT_D2Z = 106
CUFFT_Z2D = 108
CUFFT_Z2Z = 105
enum cufftXtCallbackType
CUFFT_CB_LD_COMPLEX = 0
CUFFT_CB_LD_COMPLEX_DOUBLE = 1
CUFFT_CB_LD_REAL = 2
CUFFT_CB_LD_REAL_DOUBLE = 3
CUFFT_CB_ST_COMPLEX = 4
CUFFT_CB_ST_COMPLEX_DOUBLE = 5
CUFFT_CB_ST_REAL = 6
CUFFT_CB_ST_REAL_DOUBLE = 7
CUFFT_CB_UNDEFINED = 8
typedef cuComplex cufftComplex
typedef cuDoubleComplex cufftDoubleComplex
typedef float cufftReal
typedef double cufftDoubleReal
typedef int cufftHandle
100% (82 of 82 declarations available)
2.9. cuFFT Callback Routines#
typedef cufftComplex (*cufftJITCallbackLoadC)(void *dataIn, unsigned long long offset, void *callerInfo, void *sharedPointer)
typedef cufftDoubleComplex (*cufftJITCallbackLoadZ)(void *dataIn, unsigned long long offset, void *callerInfo, void *sharedPointer)
typedef cufftReal (*cufftJITCallbackLoadR)(void *dataIn, unsigned long long offset, void *callerInfo, void *sharedPointer)
typedef cufftDoubleReal (*cufftJITCallbackLoadD)(void *dataIn, unsigned long long offset, void *callerInfo, void *sharedPointer)
typedef void (*cufftJITCallbackStoreC)(void *dataOut, unsigned long long offset, cufftComplex element, void *callerInfo, void *sharedPointer)
typedef void (*cufftJITCallbackStoreZ)(void *dataOut, unsigned long long offset, cufftDoubleComplex element, void *callerInfo, void *sharedPointer)
typedef void (*cufftJITCallbackStoreR)(void *dataOut, unsigned long long offset, cufftReal element, void *callerInfo, void *sharedPointer)
typedef void (*cufftJITCallbackStoreD)(void *dataOut, unsigned long long offset, cufftDoubleReal element, void *callerInfo, void *sharedPointer)
typedef cufftComplex (*cufftCallbackLoadC)(void *dataIn, size_t offset, void *callerInfo, void *sharedPointer)
typedef cufftDoubleComplex (*cufftCallbackLoadZ)(void *dataIn, size_t offset, void *callerInfo, void *sharedPointer)
typedef cufftReal (*cufftCallbackLoadR)(void *dataIn, size_t offset, void *callerInfo, void *sharedPointer)
typedef cufftDoubleReal (*cufftCallbackLoadD)(void *dataIn, size_t offset, void *callerInfo, void *sharedPointer)
typedef void (*cufftCallbackStoreC)(void *dataOut, size_t offset, cufftComplex element, void *callerInfo, void *sharedPointer)
typedef void (*cufftCallbackStoreZ)(void *dataOut, size_t offset, cufftDoubleComplex element, void *callerInfo, void *sharedPointer)
typedef void (*cufftCallbackStoreR)(void *dataOut, size_t offset, cufftReal element, void *callerInfo, void *sharedPointer)
typedef void (*cufftCallbackStoreD)(void *dataOut, size_t offset, cufftDoubleReal element, void *callerInfo, void *sharedPointer)
3.1. Return value cufftResult#
enum cufftResult
CUFFT_SUCCESS = 0
CUFFT_INVALID_PLAN = 1
CUFFT_ALLOC_FAILED = 2
CUFFT_INVALID_TYPE = 3
CUFFT_INVALID_VALUE = 4
CUFFT_INTERNAL_ERROR = 5
CUFFT_EXEC_FAILED = 6
CUFFT_SETUP_FAILED = 7
CUFFT_INVALID_SIZE = 8
CUFFT_UNALIGNED_DATA = 9
CUFFT_INCOMPLETE_PARAMETER_LIST = 10
CUFFT_INVALID_DEVICE = 11
CUFFT_PARSE_ERROR = 12
CUFFT_NO_WORKSPACE = 13
CUFFT_NOT_IMPLEMENTED = 14
CUFFT_LICENSE_ERROR = 15
CUFFT_NOT_SUPPORTED = 16
3.2. cuFFT Basic Plans#
cufftResult cufftPlan1d(cufftHandle * plan , int nx , cufftType type , int batch)
cufftResult cufftPlan2d(cufftHandle * plan , int nx , int ny , cufftType type)
cufftResult cufftPlan3d(cufftHandle * plan , int nx , int ny , int nz , cufftType type)
cufftResult cufftPlanMany(cufftHandle * plan , int rank , int * n , int * inembed , int istride , int idist , int * onembed , int ostride , int odist , cufftType type , int batch)
3.3. cuFFT Extensible Plans#
cufftResult cufftCreate(cufftHandle * plan)
cufftResult cufftDestroy(cufftHandle plan)
cufftResult cufftMakePlan1d(cufftHandle plan , int nx , cufftType type , int batch , size_t * workSize)
cufftResult cufftMakePlan2d(cufftHandle plan , int nx , int ny , cufftType type , size_t * workSize)
cufftResult cufftMakePlan3d(cufftHandle plan , int nx , int ny , int nz , cufftType type , size_t * workSize)
cufftResult cufftMakePlanMany(cufftHandle plan , int rank , int * n , int * inembed , int istride , int idist , int * onembed , int ostride , int odist , cufftType type , int batch , size_t * workSize)
cufftResult cufftMakePlanMany64(cufftHandle plan , int rank , long long int * n , long long int * inembed , long long int istride , long long int idist , long long int * onembed , long long int ostride , long long int odist , cufftType type , long long int batch , size_t * workSize)
cufftResult cufftXtMakePlanMany(cufftHandle plan , int rank , long long int * n , long long int * inembed , long long int istride , long long int idist , cudaDataType inputtype , long long int * onembed , long long int ostride , long long int odist , cudaDataType outputtype , long long int batch , size_t * workSize , cudaDataType executiontype)
3.4. cuFFT Plan Properties#
cufftResult cufftSetPlanPropertyInt64(cufftHandle plan , cufftProperty property , const long long int propertyValueInt64)
cufftResult cufftGetPlanPropertyInt64(cufftHandle plan , cufftProperty property , long long int * propertyValueInt64)
cufftResult cufftResetPlanProperty(cufftHandle plan , cufftProperty property)
3.5. cuFFT Estimated Size of Work Area#
cufftResult cufftEstimate1d(int nx , cufftType type , int batch , size_t * workSize)
cufftResult cufftEstimate2d(int nx , int ny , cufftType type , size_t * workSize)
cufftResult cufftEstimate3d(int nx , int ny , int nz , cufftType type , size_t * workSize)
cufftResult cufftEstimateMany(int rank , int * n , int * inembed , int istride , int idist , int * onembed , int ostride , int odist , cufftType type , int batch , size_t * workSize)
3.6. cuFFT Refined Estimated Size of Work Area#
cufftResult cufftGetSize1d(cufftHandle plan , int nx , cufftType type , int batch , size_t * workSize)
cufftResult cufftGetSize2d(cufftHandle plan , int nx , int ny , cufftType type , size_t * workSize)
cufftResult cufftGetSize3d(cufftHandle plan , int nx , int ny , int nz , cufftType type , size_t * workSize)
cufftResult cufftGetSizeMany(cufftHandle plan , int rank , int * n , int * inembed , int istride , int idist , int * onembed , int ostride , int odist , cufftType type , int batch , size_t * workSize)
cufftResult cufftGetSizeMany64(cufftHandle plan , int rank , long long int * n , long long int * inembed , long long int istride , long long int idist , long long int * onembed , long long int ostride , long long int odist , cufftType type , long long int batch , size_t * workSize)
cufftResult cufftXtGetSizeMany(cufftHandle plan , int rank , long long int * n , long long int * inembed , long long int istride , long long int idist , cudaDataType inputtype , long long int * onembed , long long int ostride , long long int odist , cudaDataType outputtype , long long int batch , size_t * workSize , cudaDataType executiontype)
3.7. cufftGetSize()#
cufftResult cufftGetSize(cufftHandle plan , size_t * workSize)
3.8. cuFFT Caller Allocated Work Area Support#
cufftResult cufftSetAutoAllocation(cufftHandle plan , int autoAllocate)
cufftResult cufftSetWorkArea(cufftHandle plan , void * workArea)
cufftResult cufftXtSetWorkAreaPolicy(cufftHandle plan , cufftXtWorkAreaPolicy policy , size_t * workSize)
3.9. cuFFT Execution#
cufftResult cufftExecC2C(cufftHandle plan , cufftComplex * idata , cufftComplex * odata , int direction)
cufftResult cufftExecZ2Z(cufftHandle plan , cufftDoubleComplex * idata , cufftDoubleComplex * odata , int direction)
cufftResult cufftExecR2C(cufftHandle plan , cufftReal * idata , cufftComplex * odata)
cufftResult cufftExecD2Z(cufftHandle plan , cufftDoubleReal * idata , cufftDoubleComplex * odata)
cufftResult cufftExecC2R(cufftHandle plan , cufftComplex * idata , cufftReal * odata)
cufftResult cufftExecZ2D(cufftHandle plan , cufftDoubleComplex * idata , cufftDoubleReal * odata)
cufftResult cufftXtExec(cufftHandle plan , void * input , void * output , int direction)
cufftResult cufftXtExecDescriptor(cufftHandle plan , cudaLibXtDesc * input , cudaLibXtDesc * output , int direction)
3.10. cuFFT and Multiple GPUs#
enum cufftXtSubFormat
CUFFT_XT_FORMAT_INPUT = 0
CUFFT_XT_FORMAT_OUTPUT = 1
CUFFT_XT_FORMAT_INPLACE = 2
CUFFT_XT_FORMAT_INPLACE_SHUFFLED = 3
CUFFT_XT_FORMAT_1D_INPUT_SHUFFLED = 4
CUFFT_XT_FORMAT_DISTRIBUTED_INPUT = 5
CUFFT_XT_FORMAT_DISTRIBUTED_OUTPUT = 6
CUFFT_FORMAT_UNDEFINED = 7
enum cufftXtCopyType
CUFFT_COPY_HOST_TO_DEVICE = 0
CUFFT_COPY_DEVICE_TO_HOST = 1
CUFFT_COPY_DEVICE_TO_DEVICE = 2
cufftResult cufftXtSetGPUs(cufftHandle plan , int nGPUs , int * whichGPUs)
cufftResult cufftXtSetWorkArea(cufftHandle plan , void * * workArea)
cufftResult cufftXtExecDescriptorC2C(cufftHandle plan , cudaLibXtDesc * input , cudaLibXtDesc * output , int direction)
cufftResult cufftXtExecDescriptorZ2Z(cufftHandle plan , cudaLibXtDesc * input , cudaLibXtDesc * output , int direction)
cufftResult cufftXtExecDescriptorR2C(cufftHandle plan , cudaLibXtDesc * input , cudaLibXtDesc * output)
cufftResult cufftXtExecDescriptorD2Z(cufftHandle plan , cudaLibXtDesc * input , cudaLibXtDesc * output)
cufftResult cufftXtExecDescriptorC2R(cufftHandle plan , cudaLibXtDesc * input , cudaLibXtDesc * output)
cufftResult cufftXtExecDescriptorZ2D(cufftHandle plan , cudaLibXtDesc * input , cudaLibXtDesc * output)
cufftResult cufftXtMalloc(cufftHandle plan , cudaLibXtDesc * * descriptor , cufftXtSubFormat format)
cufftResult cufftXtFree(cudaLibXtDesc * descriptor)
cufftResult cufftXtMemcpy(cufftHandle plan , void * dstPointer , void * srcPointer , cufftXtCopyType type)
3.11. cuFFT Callbacks#
cufftResult cufftXtSetJITCallback(cufftHandle plan , const char * callbackSymbolName , const void * callbackFatbin , size_t callbackFatbinSize , cufftXtCallbackType type , void * * caller_info)
cufftResult cufftXtSetCallback(cufftHandle plan , void * * callbackRoutine , cufftXtCallbackType type , void * * callerInfo)
cufftResult cufftXtClearCallback(cufftHandle plan , cufftXtCallbackType type)
cufftResult cufftXtSetCallbackSharedSize(cufftHandle plan , cufftXtCallbackType type , size_t sharedSize)
3.12. cufftSetStream()#
cufftResult cufftSetStream(cufftHandle plan , cudaStream_t stream)
3.13. cufftGetVersion()#
cufftResult cufftGetVersion(int * version)
3.14. cufftGetProperty()#
cufftResult cufftGetProperty(libraryPropertyType type , int * value)
3.15. cuFFT Types#
#define CUFFT_FORWARD
enum cufftType
CUFFT_R2C = 42
CUFFT_C2R = 44
CUFFT_C2C = 41
CUFFT_D2Z = 106
CUFFT_Z2D = 108
CUFFT_Z2Z = 105
enum cufftXtCallbackType
CUFFT_CB_LD_COMPLEX = 0
CUFFT_CB_LD_COMPLEX_DOUBLE = 1
CUFFT_CB_LD_REAL = 2
CUFFT_CB_LD_REAL_DOUBLE = 3
CUFFT_CB_ST_COMPLEX = 4
CUFFT_CB_ST_COMPLEX_DOUBLE = 5
CUFFT_CB_ST_REAL = 6
CUFFT_CB_ST_REAL_DOUBLE = 7
CUFFT_CB_UNDEFINED = 8
typedef cuComplex cufftComplex
typedef cuDoubleComplex cufftDoubleComplex
typedef float cufftReal
typedef double cufftDoubleReal
typedef int cufftHandle
99% (85 of 86 declarations available)
2.9. cuFFT Callback Routines#
typedef cufftComplex (*cufftJITCallbackLoadC)(void *dataIn, unsigned long long offset, void *callerInfo, void *sharedPointer)
typedef cufftDoubleComplex (*cufftJITCallbackLoadZ)(void *dataIn, unsigned long long offset, void *callerInfo, void *sharedPointer)
typedef cufftReal (*cufftJITCallbackLoadR)(void *dataIn, unsigned long long offset, void *callerInfo, void *sharedPointer)
typedef cufftDoubleReal (*cufftJITCallbackLoadD)(void *dataIn, unsigned long long offset, void *callerInfo, void *sharedPointer)
typedef void (*cufftJITCallbackStoreC)(void *dataOut, unsigned long long offset, cufftComplex element, void *callerInfo, void *sharedPointer)
typedef void (*cufftJITCallbackStoreZ)(void *dataOut, unsigned long long offset, cufftDoubleComplex element, void *callerInfo, void *sharedPointer)
typedef void (*cufftJITCallbackStoreR)(void *dataOut, unsigned long long offset, cufftReal element, void *callerInfo, void *sharedPointer)
typedef void (*cufftJITCallbackStoreD)(void *dataOut, unsigned long long offset, cufftDoubleReal element, void *callerInfo, void *sharedPointer)
typedef cufftComplex (*cufftCallbackLoadC)(void *dataIn, size_t offset, void *callerInfo, void *sharedPointer)
typedef cufftDoubleComplex (*cufftCallbackLoadZ)(void *dataIn, size_t offset, void *callerInfo, void *sharedPointer)
typedef cufftReal (*cufftCallbackLoadR)(void *dataIn, size_t offset, void *callerInfo, void *sharedPointer)
typedef cufftDoubleReal (*cufftCallbackLoadD)(void *dataIn, size_t offset, void *callerInfo, void *sharedPointer)
typedef void (*cufftCallbackStoreC)(void *dataOut, size_t offset, cufftComplex element, void *callerInfo, void *sharedPointer)
typedef void (*cufftCallbackStoreZ)(void *dataOut, size_t offset, cufftDoubleComplex element, void *callerInfo, void *sharedPointer)
typedef void (*cufftCallbackStoreR)(void *dataOut, size_t offset, cufftReal element, void *callerInfo, void *sharedPointer)
typedef void (*cufftCallbackStoreD)(void *dataOut, size_t offset, cufftDoubleReal element, void *callerInfo, void *sharedPointer)
3.1. Return value cufftResult#
enum cufftResult
CUFFT_SUCCESS = 0
CUFFT_INVALID_PLAN = 1
CUFFT_ALLOC_FAILED = 2
CUFFT_INVALID_TYPE = 3
CUFFT_INVALID_VALUE = 4
CUFFT_INTERNAL_ERROR = 5
CUFFT_EXEC_FAILED = 6
CUFFT_SETUP_FAILED = 7
CUFFT_INVALID_SIZE = 8
CUFFT_UNALIGNED_DATA = 9
CUFFT_INVALID_DEVICE = 11
CUFFT_NO_WORKSPACE = 13
CUFFT_NOT_IMPLEMENTED = 14
CUFFT_NOT_SUPPORTED = 16
CUFFT_MISSING_DEPENDENCY = 17
CUFFT_NVRTC_FAILURE = 18
CUFFT_NVJITLINK_FAILURE = 19
CUFFT_NVSHMEM_FAILURE = 20
3.2. cuFFT Basic Plans#
cufftResult cufftPlan1d(cufftHandle * plan , int nx , cufftType type , int batch)
cufftResult cufftPlan2d(cufftHandle * plan , int nx , int ny , cufftType type)
cufftResult cufftPlan3d(cufftHandle * plan , int nx , int ny , int nz , cufftType type)
cufftResult cufftPlanMany(cufftHandle * plan , int rank , int * n , int * inembed , int istride , int idist , int * onembed , int ostride , int odist , cufftType type , int batch)
3.3. cuFFT Extensible Plans#
cufftResult cufftCreate(cufftHandle * plan)
cufftResult cufftDestroy(cufftHandle plan)
cufftResult cufftMakePlan1d(cufftHandle plan , int nx , cufftType type , int batch , size_t * workSize)
cufftResult cufftMakePlan2d(cufftHandle plan , int nx , int ny , cufftType type , size_t * workSize)
cufftResult cufftMakePlan3d(cufftHandle plan , int nx , int ny , int nz , cufftType type , size_t * workSize)
cufftResult cufftMakePlanMany(cufftHandle plan , int rank , int * n , int * inembed , int istride , int idist , int * onembed , int ostride , int odist , cufftType type , int batch , size_t * workSize)
cufftResult cufftMakePlanMany64(cufftHandle plan , int rank , long long int * n , long long int * inembed , long long int istride , long long int idist , long long int * onembed , long long int ostride , long long int odist , cufftType type , long long int batch , size_t * workSize)
cufftResult cufftXtMakePlanMany(cufftHandle plan , int rank , long long int * n , long long int * inembed , long long int istride , long long int idist , cudaDataType inputtype , long long int * onembed , long long int ostride , long long int odist , cudaDataType outputtype , long long int batch , size_t * workSize , cudaDataType executiontype)
3.4. cuFFT Plan Properties#
cufftResult cufftSetPlanPropertyInt64(cufftHandle plan , cufftProperty property , const long long int propertyValueInt64)
cufftResult cufftGetPlanPropertyInt64(cufftHandle plan , cufftProperty property , long long int * propertyValueInt64)
cufftResult cufftResetPlanProperty(cufftHandle plan , cufftProperty property)
3.5. cuFFT Estimated Size of Work Area#
cufftResult cufftEstimate1d(int nx , cufftType type , int batch , size_t * workSize)
cufftResult cufftEstimate2d(int nx , int ny , cufftType type , size_t * workSize)
cufftResult cufftEstimate3d(int nx , int ny , int nz , cufftType type , size_t * workSize)
cufftResult cufftEstimateMany(int rank , int * n , int * inembed , int istride , int idist , int * onembed , int ostride , int odist , cufftType type , int batch , size_t * workSize)
3.6. cuFFT Refined Estimated Size of Work Area#
cufftResult cufftGetSize1d(cufftHandle plan , int nx , cufftType type , int batch , size_t * workSize)
cufftResult cufftGetSize2d(cufftHandle plan , int nx , int ny , cufftType type , size_t * workSize)
cufftResult cufftGetSize3d(cufftHandle plan , int nx , int ny , int nz , cufftType type , size_t * workSize)
cufftResult cufftGetSizeMany(cufftHandle plan , int rank , int * n , int * inembed , int istride , int idist , int * onembed , int ostride , int odist , cufftType type , int batch , size_t * workSize)
cufftResult cufftGetSizeMany64(cufftHandle plan , int rank , long long int * n , long long int * inembed , long long int istride , long long int idist , long long int * onembed , long long int ostride , long long int odist , cufftType type , long long int batch , size_t * workSize)
cufftResult cufftXtGetSizeMany(cufftHandle plan , int rank , long long int * n , long long int * inembed , long long int istride , long long int idist , cudaDataType inputtype , long long int * onembed , long long int ostride , long long int odist , cudaDataType outputtype , long long int batch , size_t * workSize , cudaDataType executiontype)
3.7. cufftGetSize()#
cufftResult cufftGetSize(cufftHandle plan , size_t * workSize)
3.8. cuFFT Caller Allocated Work Area Support#
cufftResult cufftSetAutoAllocation(cufftHandle plan , int autoAllocate)
cufftResult cufftSetWorkArea(cufftHandle plan , void * workArea)
cufftResult cufftXtSetWorkAreaPolicy(cufftHandle plan , cufftXtWorkAreaPolicy policy , size_t * workSize)
3.9. cuFFT Execution#
cufftResult cufftExecC2C(cufftHandle plan , cufftComplex * idata , cufftComplex * odata , int direction)
cufftResult cufftExecZ2Z(cufftHandle plan , cufftDoubleComplex * idata , cufftDoubleComplex * odata , int direction)
cufftResult cufftExecR2C(cufftHandle plan , cufftReal * idata , cufftComplex * odata)
cufftResult cufftExecD2Z(cufftHandle plan , cufftDoubleReal * idata , cufftDoubleComplex * odata)
cufftResult cufftExecC2R(cufftHandle plan , cufftComplex * idata , cufftReal * odata)
cufftResult cufftExecZ2D(cufftHandle plan , cufftDoubleComplex * idata , cufftDoubleReal * odata)
cufftResult cufftXtExec(cufftHandle plan , void * input , void * output , int direction)
cufftResult cufftXtExecDescriptor(cufftHandle plan , cudaLibXtDesc * input , cudaLibXtDesc * output , int direction)
3.10. cuFFT and Multiple GPUs#
enum cufftXtSubFormat
CUFFT_XT_FORMAT_INPUT = 0
CUFFT_XT_FORMAT_OUTPUT = 1
CUFFT_XT_FORMAT_INPLACE = 2
CUFFT_XT_FORMAT_INPLACE_SHUFFLED = 3
CUFFT_XT_FORMAT_1D_INPUT_SHUFFLED = 4
CUFFT_XT_FORMAT_DISTRIBUTED_INPUT = 5
CUFFT_XT_FORMAT_DISTRIBUTED_OUTPUT = 6
CUFFT_FORMAT_UNDEFINED = 7
enum cufftXtCopyType
CUFFT_COPY_HOST_TO_DEVICE = 0
CUFFT_COPY_DEVICE_TO_HOST = 1
CUFFT_COPY_DEVICE_TO_DEVICE = 2
cufftResult cufftXtSetGPUs(cufftHandle plan , int nGPUs , int * whichGPUs)
cufftResult cufftXtSetWorkArea(cufftHandle plan , void * * workArea)
cufftResult cufftXtQueryPlan(cufftHandle plan , void * queryStruct , cufftXtQueryType queryType)
cufftResult cufftXtExecDescriptorC2C(cufftHandle plan , cudaLibXtDesc * input , cudaLibXtDesc * output , int direction)
cufftResult cufftXtExecDescriptorZ2Z(cufftHandle plan , cudaLibXtDesc * input , cudaLibXtDesc * output , int direction)
cufftResult cufftXtExecDescriptorR2C(cufftHandle plan , cudaLibXtDesc * input , cudaLibXtDesc * output)
cufftResult cufftXtExecDescriptorD2Z(cufftHandle plan , cudaLibXtDesc * input , cudaLibXtDesc * output)
cufftResult cufftXtExecDescriptorC2R(cufftHandle plan , cudaLibXtDesc * input , cudaLibXtDesc * output)
cufftResult cufftXtExecDescriptorZ2D(cufftHandle plan , cudaLibXtDesc * input , cudaLibXtDesc * output)
cufftResult cufftXtMalloc(cufftHandle plan , cudaLibXtDesc * * descriptor , cufftXtSubFormat format)
cufftResult cufftXtFree(cudaLibXtDesc * descriptor)
cufftResult cufftXtMemcpy(cufftHandle plan , void * dstPointer , void * srcPointer , cufftXtCopyType type)
3.11. cuFFT Callbacks#
cufftResult cufftXtSetJITCallback(cufftHandle plan , const char * callbackSymbolName , const void * callbackFatbin , size_t callbackFatbinSize , cufftXtCallbackType type , void * * caller_info)
cufftResult cufftXtSetCallback(cufftHandle plan , void * * callbackRoutine , cufftXtCallbackType type , void * * callerInfo)
cufftResult cufftXtClearCallback(cufftHandle plan , cufftXtCallbackType type)
cufftResult cufftXtSetCallbackSharedSize(cufftHandle plan , cufftXtCallbackType type , size_t sharedSize)
3.12. cufftSetStream()#
cufftResult cufftSetStream(cufftHandle plan , cudaStream_t stream)
3.13. cufftGetVersion()#
cufftResult cufftGetVersion(int * version)
3.14. cufftGetProperty()#
cufftResult cufftGetProperty(libraryPropertyType type , int * value)
3.15. cuFFT Types#
-#define CUFFT_PLAN_NULL
#define CUFFT_FORWARD
enum cufftType
CUFFT_R2C = 42
CUFFT_C2R = 44
CUFFT_C2C = 41
CUFFT_D2Z = 106
CUFFT_Z2D = 108
CUFFT_Z2Z = 105
enum cufftXtCallbackType
CUFFT_CB_LD_COMPLEX = 0
CUFFT_CB_LD_COMPLEX_DOUBLE = 1
CUFFT_CB_LD_REAL = 2
CUFFT_CB_LD_REAL_DOUBLE = 3
CUFFT_CB_ST_COMPLEX = 4
CUFFT_CB_ST_COMPLEX_DOUBLE = 5
CUFFT_CB_ST_REAL = 6
CUFFT_CB_ST_REAL_DOUBLE = 7
CUFFT_CB_UNDEFINED = 8
enum cufftXtQueryType
CUFFT_QUERY_1D_FACTORS = 0
CUFFT_QUERY_UNDEFINED = 1
struct cufftXt1dFactors
size
stringCount
stringLength
substringLength
factor1
factor2
stringMask
substringMask
factor1Mask
factor2Mask
stringShift
substringShift
factor1Shift
factor2Shift
typedef cuComplex cufftComplex
typedef cuDoubleComplex cufftDoubleComplex
typedef float cufftReal
typedef double cufftDoubleReal
typedef int cufftHandle