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§
Enums§
- cufft
Compatibility_ t - cufft
Property_ t - cufft
Result_ t - All cuFFT Library return values except for
cufftResult::CUFFT_SUCCESSindicate that the current API call failed and the user should reconfigure to correct the problem. The possible return values are defined as follows. - cufft
Type_ t - The cuFFT library supports complex- and real-data transforms. The
cufftTypedata 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§
- cufft
Create ⚠ - Creates only an opaque handle, and allocates small data structures on the host. The
cufftMakePlan*()calls actually do the plan generation. - cufft
Destroy ⚠ - 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.
- cufft
Estimate1d ⚠ - 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.
- cufft
Estimate2d ⚠ - 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.
- cufft
Estimate3d ⚠ - 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.
- cufft
Estimate ⚠Many - 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.
- cufft
Exec ⚠C2C cufftExecC2C(cufftExecZ2Z) executes a single-precision (double-precision) complex-to-complex transform plan in the transform direction as specified bydirectionparameter. cuFFT uses the GPU memory pointed to by theidataparameter as input data. This function stores the Fourier coefficients in theodataarray. Ifidataandodataare the same, this method does an in-place transform.- cufft
Exec ⚠C2R 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 theidataparameter. The input array holds only the nonredundant complex Fourier coefficients. This function stores the real output values in theodataarray. and pointers are both required to be aligned tocufftComplexdata type in single-precision transforms andcufftDoubleComplextype in double-precision transforms. Ifidataandodataare the same, this method does an in-place transform.- cufft
Exec ⚠D2Z 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 theidataparameter. This function stores the nonredundant Fourier coefficients in theodataarray. Pointers toidataandodataare both required to be aligned tocufftComplexdata type in single-precision transforms andcufftDoubleComplexdata type in double-precision transforms. Ifidataandodataare 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.- cufft
Exec ⚠R2C 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 theidataparameter. This function stores the nonredundant Fourier coefficients in theodataarray. Pointers toidataandodataare both required to be aligned tocufftComplexdata type in single-precision transforms andcufftDoubleComplexdata type in double-precision transforms. Ifidataandodataare 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.- cufft
Exec ⚠Z2D 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 theidataparameter. The input array holds only the nonredundant complex Fourier coefficients. This function stores the real output values in theodataarray. and pointers are both required to be aligned tocufftComplexdata type in single-precision transforms andcufftDoubleComplextype in double-precision transforms. Ifidataandodataare the same, this method does an in-place transform.- cufft
Exec ⚠Z2Z cufftExecC2C(cufftExecZ2Z) executes a single-precision (double-precision) complex-to-complex transform plan in the transform direction as specified bydirectionparameter. cuFFT uses the GPU memory pointed to by theidataparameter as input data. This function stores the Fourier coefficients in theodataarray. Ifidataandodataare the same, this method does an in-place transform.- cufft
GetPlan ⚠Property Int64 - Retrieves the property value identified by the key
propertyassociated with the cuFFT planplan. The value for the property, which is a signed long long integer, is set in the address space pointed bypropertyValueInt64. - cufft
GetProperty ⚠ - Return in
*valuethe number for the property described bytypeof the dynamically linked CUFFT library. - cufft
GetSize ⚠ - 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. - cufft
GetSize1d ⚠ - 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. - cufft
GetSize2d ⚠ - 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. - cufft
GetSize3d ⚠ - 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. - cufft
GetSize ⚠Many - 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. - cufft
GetSize ⚠Many64 - 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. - cufft
GetVersion ⚠ - Returns the version number of cuFFT.
- cufft
Make ⚠Plan1d - Following a call to
cufftCreatemakes a 1D FFT plan configuration for a specified signal size and data type. Thebatchinput parameter tells cuFFT how many 1D transforms to configure. - cufft
Make ⚠Plan2d - Following a call to
cufftCreatemakes a 2D FFT plan configuration according to specified signal sizes and data type. - cufft
Make ⚠Plan3d - Following a call to
cufftCreatemakes a 3D FFT plan configuration according to specified signal sizes and data type. This function is the same ascufftPlan2dexcept that it takes a third size parameternz. - cufft
Make ⚠Plan Many - Following a call to
cufftCreatemakes a FFT plan configuration of dimensionrank, with sizes specified in the arrayn. Thebatchinput parameter tells cuFFT how many transforms to configure. With this function, batched plans of 1, 2, or 3 dimensions may be created. - cufft
Make ⚠Plan Many64 - Following a call to
cufftCreatemakes a FFT plan configuration of dimensionrank, with sizes specified in the arrayn. Thebatchinput parameter tells cuFFT how many transforms to configure. With this function, batched plans of 1, 2, or 3 dimensions may be created. - cufft
Plan1d ⚠ - Creates a 1D FFT plan configuration for a specified signal size and data type. The
batchinput parameter tells cuFFT how many 1D transforms to configure. - cufft
Plan2d ⚠ - Creates a 2D FFT plan configuration according to specified signal sizes and data type.
- cufft
Plan3d ⚠ - Creates a 3D FFT plan configuration according to specified signal sizes and data type. This function is the same as
cufftPlan2dexcept that it takes a third size parameternz. - cufft
Plan ⚠Many - Creates a FFT plan configuration of dimension
rank, with sizes specified in the arrayn. Thebatchinput parameter tells cuFFT how many transforms to configure. With this function, batched plans of 1, 2, or 3 dimensions may be created. - cufft
Reset ⚠Plan Property - Resets the value of the property identified by the key
property, associated with the cuFFT planplan, to its default value. - cufft
SetAuto ⚠Allocation cufftSetAutoAllocationindicates 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. IfcufftSetAutoAllocationhas been called with autoAllocate set to 0 (“false”) prior to one of thecufftMakePlan*()calls, cuFFT does not allocate the work area. This is the preferred sequence for callers wishing to manage work area allocation.- cufft
SetPlan ⚠Property Int64 - Associates a cuFFT plan with a property identified by the key
property. The value for the property is given by valuepropertyValueInt64, which is a signed long long integer. - cufft
SetStream ⚠ - 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. - cufft
SetWork ⚠Area cufftSetWorkAreaoverrides the work area pointer associated with a plan. If the work area was auto-allocated, cuFFT frees the auto-allocated space. ThecufftExec*()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
- cuDouble
Complex - cuFloat
Complex - cufft
Complex - A single-precision, floating-point complex data type that consists of interleaved real and imaginary components.
- cufft
Double Complex - A double-precision, floating-point complex data type that consists of interleaved real and imaginary components.
- cufft
Double Real - A double-precision, floating-point real data type.
- cufft
Handle - 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.
- cufft
Real - A single-precision, floating-point real data type.
- size_t