Show / Hide Table of Contents

    Class CudaFFTPlan2D

    Creates a 2D FFT plan configuration according to specified signal sizes and data type. This class is the same as CudaFFTPlan1D except that it takes a second size parameter, ny, and does not support batching.

    Inheritance
    System.Object
    CudaFFTPlan2D
    Implements
    System.IDisposable
    Inherited Members
    System.Object.Equals(System.Object)
    System.Object.Equals(System.Object, System.Object)
    System.Object.GetHashCode()
    System.Object.GetType()
    System.Object.MemberwiseClone()
    System.Object.ReferenceEquals(System.Object, System.Object)
    System.Object.ToString()
    Namespace: ManagedCuda.CudaFFT
    Assembly: CudaFFT.dll
    Syntax
    public class CudaFFTPlan2D : IDisposable

    Constructors

    | Improve this Doc View Source

    CudaFFTPlan2D(cufftHandle, Int32, Int32, cufftType)

    Creates a new 2D FFT plan (new API)

    Declaration
    public CudaFFTPlan2D(cufftHandle handle, int nx, int ny, cufftType type)
    Parameters
    Type Name Description
    cufftHandle handle

    cufftHandle object

    System.Int32 nx

    The transform size in the X dimension (number of rows)

    System.Int32 ny

    The transform size in the Y dimension (number of columns)

    cufftType type

    The transform data type (e.g., C2R for complex to real)

    | Improve this Doc View Source

    CudaFFTPlan2D(cufftHandle, Int32, Int32, cufftType, CUstream)

    Creates a new 2D FFT plan (new API)

    Declaration
    public CudaFFTPlan2D(cufftHandle handle, int nx, int ny, cufftType type, CUstream stream)
    Parameters
    Type Name Description
    cufftHandle handle

    cufftHandle object

    System.Int32 nx

    The transform size in the X dimension (number of rows)

    System.Int32 ny

    The transform size in the Y dimension (number of columns)

    cufftType type

    The transform data type (e.g., C2R for complex to real)

    CUstream stream

    A valid CUDA stream created with cudaStreamCreate() (or 0 for the default stream)

    | Improve this Doc View Source

    CudaFFTPlan2D(cufftHandle, Int32, Int32, cufftType, CUstream, ref SizeT)

    Creates a new 2D FFT plan (new API)

    Declaration
    public CudaFFTPlan2D(cufftHandle handle, int nx, int ny, cufftType type, CUstream stream, ref SizeT size)
    Parameters
    Type Name Description
    cufftHandle handle

    cufftHandle object

    System.Int32 nx

    The transform size in the X dimension (number of rows)

    System.Int32 ny

    The transform size in the Y dimension (number of columns)

    cufftType type

    The transform data type (e.g., C2R for complex to real)

    CUstream stream

    A valid CUDA stream created with cudaStreamCreate() (or 0 for the default stream)

    SizeT size
    | Improve this Doc View Source

    CudaFFTPlan2D(cufftHandle, Int32, Int32, cufftType, CUstream, ref SizeT, Boolean)

    Creates a new 2D FFT plan (new API)

    Declaration
    public CudaFFTPlan2D(cufftHandle handle, int nx, int ny, cufftType type, CUstream stream, ref SizeT size, bool autoAllocate)
    Parameters
    Type Name Description
    cufftHandle handle

    cufftHandle object

    System.Int32 nx

    The transform size in the X dimension (number of rows)

    System.Int32 ny

    The transform size in the Y dimension (number of columns)

    cufftType type

    The transform data type (e.g., C2R for complex to real)

    CUstream stream

    A valid CUDA stream created with cudaStreamCreate() (or 0 for the default stream)

    SizeT size
    System.Boolean autoAllocate

    indicates that the caller intends to allocate and manage work areas for plans that have been generated.

    | Improve this Doc View Source

    CudaFFTPlan2D(cufftHandle, Int32, Int32, cufftType, CUstream, Compatibility)

    Creates a new 2D FFT plan (new API)

    Declaration
    public CudaFFTPlan2D(cufftHandle handle, int nx, int ny, cufftType type, CUstream stream, Compatibility mode)
    Parameters
    Type Name Description
    cufftHandle handle

    cufftHandle object

    System.Int32 nx

    The transform size in the X dimension (number of rows)

    System.Int32 ny

    The transform size in the Y dimension (number of columns)

    cufftType type

    The transform data type (e.g., C2R for complex to real)

    CUstream stream

    A valid CUDA stream created with cudaStreamCreate() (or 0 for the default stream)

    Compatibility mode

    The Compatibility option to be used

    | Improve this Doc View Source

    CudaFFTPlan2D(cufftHandle, Int32, Int32, cufftType, CUstream, Compatibility, ref SizeT)

    Creates a new 2D FFT plan (new API)

    Declaration
    public CudaFFTPlan2D(cufftHandle handle, int nx, int ny, cufftType type, CUstream stream, Compatibility mode, ref SizeT size)
    Parameters
    Type Name Description
    cufftHandle handle

    cufftHandle object

    System.Int32 nx

    The transform size in the X dimension (number of rows)

    System.Int32 ny

    The transform size in the Y dimension (number of columns)

    cufftType type

    The transform data type (e.g., C2R for complex to real)

    CUstream stream

    A valid CUDA stream created with cudaStreamCreate() (or 0 for the default stream)

    Compatibility mode

    The Compatibility option to be used

    SizeT size
    | Improve this Doc View Source

    CudaFFTPlan2D(cufftHandle, Int32, Int32, cufftType, CUstream, Compatibility, ref SizeT, Boolean)

    Creates a new 2D FFT plan (new API)

    Declaration
    public CudaFFTPlan2D(cufftHandle handle, int nx, int ny, cufftType type, CUstream stream, Compatibility mode, ref SizeT size, bool autoAllocate)
    Parameters
    Type Name Description
    cufftHandle handle

    cufftHandle object

    System.Int32 nx

    The transform size in the X dimension (number of rows)

    System.Int32 ny

    The transform size in the Y dimension (number of columns)

    cufftType type

    The transform data type (e.g., C2R for complex to real)

    CUstream stream

    A valid CUDA stream created with cudaStreamCreate() (or 0 for the default stream)

    Compatibility mode

    The Compatibility option to be used

    SizeT size
    System.Boolean autoAllocate

    indicates that the caller intends to allocate and manage work areas for plans that have been generated.

    | Improve this Doc View Source

    CudaFFTPlan2D(cufftHandle, Int32, Int32, cufftType, CUstream, Compatibility, Boolean)

    Creates a new 2D FFT plan (new API)

    Declaration
    public CudaFFTPlan2D(cufftHandle handle, int nx, int ny, cufftType type, CUstream stream, Compatibility mode, bool autoAllocate)
    Parameters
    Type Name Description
    cufftHandle handle

    cufftHandle object

    System.Int32 nx

    The transform size in the X dimension (number of rows)

    System.Int32 ny

    The transform size in the Y dimension (number of columns)

    cufftType type

    The transform data type (e.g., C2R for complex to real)

    CUstream stream

    A valid CUDA stream created with cudaStreamCreate() (or 0 for the default stream)

    Compatibility mode

    The Compatibility option to be used

    System.Boolean autoAllocate

    indicates that the caller intends to allocate and manage work areas for plans that have been generated.

    | Improve this Doc View Source

    CudaFFTPlan2D(cufftHandle, Int32, Int32, cufftType, CUstream, Boolean)

    Creates a new 2D FFT plan (new API)

    Declaration
    public CudaFFTPlan2D(cufftHandle handle, int nx, int ny, cufftType type, CUstream stream, bool autoAllocate)
    Parameters
    Type Name Description
    cufftHandle handle

    cufftHandle object

    System.Int32 nx

    The transform size in the X dimension (number of rows)

    System.Int32 ny

    The transform size in the Y dimension (number of columns)

    cufftType type

    The transform data type (e.g., C2R for complex to real)

    CUstream stream

    A valid CUDA stream created with cudaStreamCreate() (or 0 for the default stream)

    System.Boolean autoAllocate

    indicates that the caller intends to allocate and manage work areas for plans that have been generated.

    | Improve this Doc View Source

    CudaFFTPlan2D(cufftHandle, Int32, Int32, cufftType, ref SizeT)

    Creates a new 2D FFT plan (new API)

    Declaration
    public CudaFFTPlan2D(cufftHandle handle, int nx, int ny, cufftType type, ref SizeT size)
    Parameters
    Type Name Description
    cufftHandle handle

    cufftHandle object

    System.Int32 nx

    The transform size in the X dimension (number of rows)

    System.Int32 ny

    The transform size in the Y dimension (number of columns)

    cufftType type

    The transform data type (e.g., C2R for complex to real)

    SizeT size
    | Improve this Doc View Source

    CudaFFTPlan2D(cufftHandle, Int32, Int32, cufftType, ref SizeT, Boolean)

    Creates a new 2D FFT plan (new API)

    Declaration
    public CudaFFTPlan2D(cufftHandle handle, int nx, int ny, cufftType type, ref SizeT size, bool autoAllocate)
    Parameters
    Type Name Description
    cufftHandle handle

    cufftHandle object

    System.Int32 nx

    The transform size in the X dimension (number of rows)

    System.Int32 ny

    The transform size in the Y dimension (number of columns)

    cufftType type

    The transform data type (e.g., C2R for complex to real)

    SizeT size
    System.Boolean autoAllocate

    indicates that the caller intends to allocate and manage work areas for plans that have been generated.

    | Improve this Doc View Source

    CudaFFTPlan2D(cufftHandle, Int32, Int32, cufftType, Compatibility)

    Creates a new 2D FFT plan (new API)

    Declaration
    public CudaFFTPlan2D(cufftHandle handle, int nx, int ny, cufftType type, Compatibility mode)
    Parameters
    Type Name Description
    cufftHandle handle

    cufftHandle object

    System.Int32 nx

    The transform size in the X dimension (number of rows)

    System.Int32 ny

    The transform size in the Y dimension (number of columns)

    cufftType type

    The transform data type (e.g., C2R for complex to real)

    Compatibility mode

    The Compatibility option to be used

    | Improve this Doc View Source

    CudaFFTPlan2D(cufftHandle, Int32, Int32, cufftType, Compatibility, ref SizeT)

    Creates a new 2D FFT plan (new API)

    Declaration
    public CudaFFTPlan2D(cufftHandle handle, int nx, int ny, cufftType type, Compatibility mode, ref SizeT size)
    Parameters
    Type Name Description
    cufftHandle handle

    cufftHandle object

    System.Int32 nx

    The transform size in the X dimension (number of rows)

    System.Int32 ny

    The transform size in the Y dimension (number of columns)

    cufftType type

    The transform data type (e.g., C2R for complex to real)

    Compatibility mode

    The Compatibility option to be used

    SizeT size
    | Improve this Doc View Source

    CudaFFTPlan2D(cufftHandle, Int32, Int32, cufftType, Compatibility, ref SizeT, Boolean)

    Creates a new 2D FFT plan (new API)

    Declaration
    public CudaFFTPlan2D(cufftHandle handle, int nx, int ny, cufftType type, Compatibility mode, ref SizeT size, bool autoAllocate)
    Parameters
    Type Name Description
    cufftHandle handle

    cufftHandle object

    System.Int32 nx

    The transform size in the X dimension (number of rows)

    System.Int32 ny

    The transform size in the Y dimension (number of columns)

    cufftType type

    The transform data type (e.g., C2R for complex to real)

    Compatibility mode

    The Compatibility option to be used

    SizeT size
    System.Boolean autoAllocate

    indicates that the caller intends to allocate and manage work areas for plans that have been generated.

    | Improve this Doc View Source

    CudaFFTPlan2D(cufftHandle, Int32, Int32, cufftType, Compatibility, Boolean)

    Creates a new 2D FFT plan (new API)

    Declaration
    public CudaFFTPlan2D(cufftHandle handle, int nx, int ny, cufftType type, Compatibility mode, bool autoAllocate)
    Parameters
    Type Name Description
    cufftHandle handle

    cufftHandle object

    System.Int32 nx

    The transform size in the X dimension (number of rows)

    System.Int32 ny

    The transform size in the Y dimension (number of columns)

    cufftType type

    The transform data type (e.g., C2R for complex to real)

    Compatibility mode

    The Compatibility option to be used

    System.Boolean autoAllocate

    indicates that the caller intends to allocate and manage work areas for plans that have been generated.

    | Improve this Doc View Source

    CudaFFTPlan2D(cufftHandle, Int32, Int32, cufftType, Boolean)

    Creates a new 2D FFT plan (new API)

    Declaration
    public CudaFFTPlan2D(cufftHandle handle, int nx, int ny, cufftType type, bool autoAllocate)
    Parameters
    Type Name Description
    cufftHandle handle

    cufftHandle object

    System.Int32 nx

    The transform size in the X dimension (number of rows)

    System.Int32 ny

    The transform size in the Y dimension (number of columns)

    cufftType type

    The transform data type (e.g., C2R for complex to real)

    System.Boolean autoAllocate

    indicates that the caller intends to allocate and manage work areas for plans that have been generated.

    | Improve this Doc View Source

    CudaFFTPlan2D(Int32, Int32, cufftType)

    Creates a new 2D FFT plan (old API)

    Declaration
    public CudaFFTPlan2D(int nx, int ny, cufftType type)
    Parameters
    Type Name Description
    System.Int32 nx

    The transform size in the X dimension (number of rows)

    System.Int32 ny

    The transform size in the Y dimension (number of columns)

    cufftType type

    The transform data type (e.g., C2R for complex to real)

    | Improve this Doc View Source

    CudaFFTPlan2D(Int32, Int32, cufftType, CUstream)

    Creates a new 2D FFT plan (old API)

    Declaration
    public CudaFFTPlan2D(int nx, int ny, cufftType type, CUstream stream)
    Parameters
    Type Name Description
    System.Int32 nx

    The transform size in the X dimension (number of rows)

    System.Int32 ny

    The transform size in the Y dimension (number of columns)

    cufftType type

    The transform data type (e.g., C2R for complex to real)

    CUstream stream

    A valid CUDA stream created with cudaStreamCreate() (or 0 for the default stream)

    | Improve this Doc View Source

    CudaFFTPlan2D(Int32, Int32, cufftType, CUstream, Compatibility)

    Creates a new 2D FFT plan (old API)

    Declaration
    public CudaFFTPlan2D(int nx, int ny, cufftType type, CUstream stream, Compatibility mode)
    Parameters
    Type Name Description
    System.Int32 nx

    The transform size in the X dimension (number of rows)

    System.Int32 ny

    The transform size in the Y dimension (number of columns)

    cufftType type

    The transform data type (e.g., C2R for complex to real)

    CUstream stream

    A valid CUDA stream created with cudaStreamCreate() (or 0 for the default stream)

    Compatibility mode

    The Compatibility option to be used

    | Improve this Doc View Source

    CudaFFTPlan2D(Int32, Int32, cufftType, Compatibility)

    Creates a new 2D FFT plan (old API)

    Declaration
    public CudaFFTPlan2D(int nx, int ny, cufftType type, Compatibility mode)
    Parameters
    Type Name Description
    System.Int32 nx

    The transform size in the X dimension (number of rows)

    System.Int32 ny

    The transform size in the Y dimension (number of columns)

    cufftType type

    The transform data type (e.g., C2R for complex to real)

    Compatibility mode

    The Compatibility option to be used

    Properties

    | Improve this Doc View Source

    Handle

    Handle

    Declaration
    public cufftHandle Handle { get; }
    Property Value
    Type Description
    cufftHandle
    | Improve this Doc View Source

    NX

    The transform size in the X dimension (number of rows)

    Declaration
    public int NX { get; }
    Property Value
    Type Description
    System.Int32
    | Improve this Doc View Source

    NY

    The transform size in the Y dimension (number of columns)

    Declaration
    public int NY { get; }
    Property Value
    Type Description
    System.Int32
    | Improve this Doc View Source

    Type

    The transform data type (e.g., C2R for complex to real)

    Declaration
    public cufftType Type { get; }
    Property Value
    Type Description
    cufftType

    Methods

    | Improve this Doc View Source

    Dispose()

    Dispose

    Declaration
    public void Dispose()
    | Improve this Doc View Source

    Dispose(Boolean)

    For IDisposable

    Declaration
    protected virtual void Dispose(bool fDisposing)
    Parameters
    Type Name Description
    System.Boolean fDisposing
    | Improve this Doc View Source

    EstimateSize(Int32, Int32, cufftType)

    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. Note that changing some plan settings, such as compatibility mode, may alter the size required for the work area.

    Declaration
    public static SizeT EstimateSize(int nx, int ny, cufftType type)
    Parameters
    Type Name Description
    System.Int32 nx

    The transform size in the x dimension (number of rows)

    System.Int32 ny

    The transform size in the y dimension (number of columns)

    cufftType type

    The transform data type (e.g., CUFFT_C2C for single precision complex to complex)

    Returns
    Type Description
    SizeT
    | Improve this Doc View Source

    Exec(CUdeviceptr)

    Executes a CUFTT transorm as defined by the cufftType. This method does an in‐place transform.

    This method is only valid for transform types where transorm direction is implicitly given by the type (i.e. not C2C and not Z2Z)

    Declaration
    public void Exec(CUdeviceptr iodata)
    Parameters
    Type Name Description
    CUdeviceptr iodata
    | Improve this Doc View Source

    Exec(CUdeviceptr, CUdeviceptr)

    Executes a CUFTT transorm as defined by the cufftType. If idata and odata are the same, this method does an in‐place transform.

    This method is only valid for transform types where transorm direction is implicitly given by the type (i.e. not C2C and not Z2Z)

    Declaration
    public void Exec(CUdeviceptr idata, CUdeviceptr odata)
    Parameters
    Type Name Description
    CUdeviceptr idata
    CUdeviceptr odata
    | Improve this Doc View Source

    Exec(CUdeviceptr, CUdeviceptr, TransformDirection)

    Executes a CUFTT transorm as defined by the cufftType. If idata and odata are the same, this method does an in‐place transform.

    Declaration
    public void Exec(CUdeviceptr idata, CUdeviceptr odata, TransformDirection direction)
    Parameters
    Type Name Description
    CUdeviceptr idata
    CUdeviceptr odata
    TransformDirection direction

    Only unsed for transformations where direction is not implicitly given by type

    | Improve this Doc View Source

    Exec(CUdeviceptr, TransformDirection)

    Executes a CUFTT transorm as defined by the cufftType. This method does an in‐place transform.

    Declaration
    public void Exec(CUdeviceptr iodata, TransformDirection direction)
    Parameters
    Type Name Description
    CUdeviceptr iodata
    TransformDirection direction

    Only unsed for transformations where direction is not implicitly given by type

    | Improve this Doc View Source

    Finalize()

    For dispose

    Declaration
    protected void Finalize()
    | Improve this Doc View Source

    GetActualSize()

    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.

    Declaration
    public SizeT GetActualSize()
    Returns
    Type Description
    SizeT
    | Improve this Doc View Source

    GetSize()

    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.

    Declaration
    public SizeT GetSize()
    Returns
    Type Description
    SizeT
    | Improve this Doc View Source

    SetAutoAllocation(Boolean)

    SetAutoAllocation() 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 "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.

    Declaration
    public void SetAutoAllocation(bool autoAllocate)
    Parameters
    Type Name Description
    System.Boolean autoAllocate
    | Improve this Doc View Source

    SetCompatibilityMode(Compatibility)

    configures the layout of CUFFT output in FFTW‐compatible modes. When FFTW compatibility is desired, it can be configured for padding only, for asymmetric complex inputs only, or to be fully compatible.

    Declaration
    public void SetCompatibilityMode(Compatibility mode)
    Parameters
    Type Name Description
    Compatibility mode
    | Improve this Doc View Source

    SetStream(CUstream)

    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 (for example, data copying). The association remains until the plan is destroyed or the stream is changed with another call to SetStream().

    Declaration
    public void SetStream(CUstream stream)
    Parameters
    Type Name Description
    CUstream stream

    A valid CUDA stream created with cudaStreamCreate() (or 0 for the default stream)

    | Improve this Doc View Source

    SetWorkArea(CUdeviceptr)

    SetWorkArea() overrides the work area pointer associated with a plan. If the work area was auto-allocated, CUFFT frees the auto-allocated space. The cufftExecute*() 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.

    Declaration
    public void SetWorkArea(CUdeviceptr workArea)
    Parameters
    Type Name Description
    CUdeviceptr workArea

    Implements

    System.IDisposable
    • Improve this Doc
    • View Source
    Back to top Generated by DocFX