Skip to main content

Crate singe_cufft_sys

Crate singe_cufft_sys 

Source
Expand description

Raw FFI bindings for cuFFT.

Prefer the safe singe-cufft crate unless direct NVIDIA ABI access is required.

Re-exports§

pub use self::cufftResult_t as cufftResult;
pub use self::cufftType_t as cufftType;
pub use self::cufftCompatibility_t as cufftCompatibility;
pub use self::cufftProperty_t as cufftProperty;

Structs§

CUstream_st
double2
float2

Enums§

cufftCompatibility_t
cufftProperty_t
cufftResult_t
All cuFFT Library return values except for cufftResult::CUFFT_SUCCESS indicate that the current API call failed and the user should reconfigure to correct the problem. The possible return values are defined as follows.
cufftType_t
The cuFFT library supports complex- and real-data transforms. The cufftType data type is an enumeration of the types of transform data supported by cuFFT.

Constants§

CUFFT_FORWARD
CUFFT_INVERSE
CUFFT_PLAN_NULL
CUFFT_VERSION
CUFFT_VER_BUILD
CUFFT_VER_MAJOR
CUFFT_VER_MINOR
CUFFT_VER_PATCH

Functions§

cufftCreate
Creates only an opaque handle, and allocates small data structures on the host. The cufftMakePlan*() calls actually do the plan generation.
cufftDestroy
Frees all GPU resources associated with a cuFFT plan and destroys the internal plan data structure. This function should be called once a plan is no longer needed, to avoid wasting GPU memory. In the case of multi-GPU plans, the plan created first should be destroyed last.
cufftEstimate1d
During plan execution, cuFFT requires a work area for temporary storage of intermediate results. This call returns an estimate for the size of the work area required, given the specified parameters, and assuming default plan settings.
cufftEstimate2d
During plan execution, cuFFT requires a work area for temporary storage of intermediate results. This call returns an estimate for the size of the work area required, given the specified parameters, and assuming default plan settings. If a work area size of 0 is returned it means no temporary storage is needed for evaluation.
cufftEstimate3d
During plan execution, cuFFT requires a work area for temporary storage of intermediate results. This call returns an estimate for the size of the work area required, given the specified parameters, and assuming default plan settings. If a work area size of 0 is returned it means no temporary storage is needed for evaluation.
cufftEstimateMany
During plan execution, cuFFT requires a work area for temporary storage of intermediate results. This call returns an estimate for the size of the work area required, given the specified parameters, and assuming default plan settings. If a work area size of 0 is returned it means no temporary storage is needed for evaluation.
cufftExecC2C
cufftExecC2C (cufftExecZ2Z) executes a single-precision (double-precision) complex-to-complex transform plan in the transform direction as specified by direction parameter. cuFFT uses the GPU memory pointed to by the idata parameter as input data. This function stores the Fourier coefficients in the odata array. If idata and odata are the same, this method does an in-place transform.
cufftExecC2R
cufftExecC2R (cufftExecZ2D) executes a single-precision (double-precision) complex-to-real, implicitly inverse, cuFFT transform plan. cuFFT uses as input data the GPU memory pointed to by the idata parameter. The input array holds only the nonredundant complex Fourier coefficients. This function stores the real output values in the odata array. and pointers are both required to be aligned to cufftComplex data type in single-precision transforms and cufftDoubleComplex type in double-precision transforms. If idata and odata are the same, this method does an in-place transform.
cufftExecD2Z
cufftExecR2C (cufftExecD2Z) executes a single-precision (double-precision) real-to-complex, implicitly forward, cuFFT transform plan. cuFFT uses as input data the GPU memory pointed to by the idata parameter. This function stores the nonredundant Fourier coefficients in the odata array. Pointers to idata and odata are both required to be aligned to cufftComplex data type in single-precision transforms and cufftDoubleComplex data type in double-precision transforms. If idata and odata are the same, this method does an in-place transform. Note the data layout differences between in-place and out-of-place transforms as described in Parameter cufftType.
cufftExecR2C
cufftExecR2C (cufftExecD2Z) executes a single-precision (double-precision) real-to-complex, implicitly forward, cuFFT transform plan. cuFFT uses as input data the GPU memory pointed to by the idata parameter. This function stores the nonredundant Fourier coefficients in the odata array. Pointers to idata and odata are both required to be aligned to cufftComplex data type in single-precision transforms and cufftDoubleComplex data type in double-precision transforms. If idata and odata are the same, this method does an in-place transform. Note the data layout differences between in-place and out-of-place transforms as described in Parameter cufftType.
cufftExecZ2D
cufftExecC2R (cufftExecZ2D) executes a single-precision (double-precision) complex-to-real, implicitly inverse, cuFFT transform plan. cuFFT uses as input data the GPU memory pointed to by the idata parameter. The input array holds only the nonredundant complex Fourier coefficients. This function stores the real output values in the odata array. and pointers are both required to be aligned to cufftComplex data type in single-precision transforms and cufftDoubleComplex type in double-precision transforms. If idata and odata are the same, this method does an in-place transform.
cufftExecZ2Z
cufftExecC2C (cufftExecZ2Z) executes a single-precision (double-precision) complex-to-complex transform plan in the transform direction as specified by direction parameter. cuFFT uses the GPU memory pointed to by the idata parameter as input data. This function stores the Fourier coefficients in the odata array. If idata and odata are the same, this method does an in-place transform.
cufftGetPlanPropertyInt64
Retrieves the property value identified by the key property associated with the cuFFT plan plan. The value for the property, which is a signed long long integer, is set in the address space pointed by propertyValueInt64.
cufftGetProperty
Return in *value the number for the property described by type of the dynamically linked CUFFT library.
cufftGetSize
Once plan generation has been done, either with the original API or the extensible API, this call returns the actual size of the work area required to support the plan. Callers who choose to manage work area allocation within their application must use this call after plan generation, and after any cufftSet*() calls subsequent to plan generation, if those calls might alter the required work space size.
cufftGetSize1d
This call gives a more accurate estimate of the work area size required for a plan than cufftEstimate1d, given the specified parameters, and taking into account any plan settings that may have been made. If a work area size of 0 is returned it means no temporary storage is needed for evaluation.
cufftGetSize2d
This call gives a more accurate estimate of the work area size required for a plan than cufftEstimate2d, given the specified parameters, and taking into account any plan settings that may have been made. If a work area size of 0 is returned it means no temporary storage is needed for evaluation.
cufftGetSize3d
This call gives a more accurate estimate of the work area size required for a plan than cufftEstimate3d, given the specified parameters, and taking into account any plan settings that may have been made. If a work area size of 0 is returned it means no temporary storage is needed for evaluation.
cufftGetSizeMany
This call gives a more accurate estimate of the work area size required for a plan than cufftEstimateSizeMany(), given the specified parameters, and taking into account any plan settings that may have been made. If a work area size of 0 is returned it means no temporary storage is needed for evaluation.
cufftGetSizeMany64
This call gives a more accurate estimate of the work area size required for a plan than cufftEstimateSizeMany(), given the specified parameters, and taking into account any plan settings that may have been made. If a work area size of 0 is returned it means no temporary storage is needed for evaluation.
cufftGetVersion
Returns the version number of cuFFT.
cufftMakePlan1d
Following a call to cufftCreate makes a 1D FFT plan configuration for a specified signal size and data type. The batch input parameter tells cuFFT how many 1D transforms to configure.
cufftMakePlan2d
Following a call to cufftCreate makes a 2D FFT plan configuration according to specified signal sizes and data type.
cufftMakePlan3d
Following a call to cufftCreate makes a 3D FFT plan configuration according to specified signal sizes and data type. This function is the same as cufftPlan2d except that it takes a third size parameter nz.
cufftMakePlanMany
Following a call to cufftCreate makes a FFT plan configuration of dimension rank, with sizes specified in the array n. The batch input parameter tells cuFFT how many transforms to configure. With this function, batched plans of 1, 2, or 3 dimensions may be created.
cufftMakePlanMany64
Following a call to cufftCreate makes a FFT plan configuration of dimension rank, with sizes specified in the array n. The batch input parameter tells cuFFT how many transforms to configure. With this function, batched plans of 1, 2, or 3 dimensions may be created.
cufftPlan1d
Creates a 1D FFT plan configuration for a specified signal size and data type. The batch input parameter tells cuFFT how many 1D transforms to configure.
cufftPlan2d
Creates a 2D FFT plan configuration according to specified signal sizes and data type.
cufftPlan3d
Creates a 3D FFT plan configuration according to specified signal sizes and data type. This function is the same as cufftPlan2d except that it takes a third size parameter nz.
cufftPlanMany
Creates a FFT plan configuration of dimension rank, with sizes specified in the array n. The batch input parameter tells cuFFT how many transforms to configure. With this function, batched plans of 1, 2, or 3 dimensions may be created.
cufftResetPlanProperty
Resets the value of the property identified by the key property, associated with the cuFFT plan plan, to its default value.
cufftSetAutoAllocation
cufftSetAutoAllocation indicates that the caller intends to allocate and manage work areas for plans that have been generated. cuFFT default behavior is to allocate the work area at plan generation time. If cufftSetAutoAllocation has been called with autoAllocate set to 0 (“false”) prior to one of the cufftMakePlan*() calls, cuFFT does not allocate the work area. This is the preferred sequence for callers wishing to manage work area allocation.
cufftSetPlanPropertyInt64
Associates a cuFFT plan with a property identified by the key property. The value for the property is given by value propertyValueInt64, which is a signed long long integer.
cufftSetStream
Associates a CUDA stream with a cuFFT plan. All kernel launches made during plan execution are now done through the associated stream, enabling overlap with activity in other streams (e.g. data copying). The association remains until the plan is destroyed or the stream is changed with another call to cufftSetStream.
cufftSetWorkArea
cufftSetWorkArea overrides the work area pointer associated with a plan. If the work area was auto-allocated, cuFFT frees the auto-allocated space. The cufftExec*() calls assume that the work area pointer is valid and that it points to a contiguous region in device memory that does not overlap with any other work area. If this is not the case, results are indeterminate.

Type Aliases§

cuComplex
cuDoubleComplex
cuFloatComplex
cufftComplex
A single-precision, floating-point complex data type that consists of interleaved real and imaginary components.
cufftDoubleComplex
A double-precision, floating-point complex data type that consists of interleaved real and imaginary components.
cufftDoubleReal
A double-precision, floating-point real data type.
cufftHandle
A handle type used to store and access cuFFT plans. The user receives a handle after creating a cuFFT plan and uses this handle to execute the plan.
cufftReal
A single-precision, floating-point real data type.
size_t