Class CuFftNative
- Namespace
- NVMathNet.Interop
- Assembly
- NVMath.Net.dll
Raw P/Invoke bindings for the cuFFT library.
public static class CuFftNativeInheritance
Inherited Members
Methods
Check(CuFftResult, string?)
Throws NVMathNet.Interop.CuFftException if result is not
NVMathNet.Interop.CuFftResult.Success. Optionally prefixes the message with
context.
public static void Check(CuFftResult result, string? context = null)Parameters
resultCuFftResultcontextstring?
Create()
Creates a cuFFT plan handle. Caller must call NVMathNet.Interop.CuFftNative.Destroy(System.IntPtr) when done.
public static nint Create()Returns
Destroy(nint)
Destroys a cuFFT plan handle.
public static void Destroy(nint plan)Parameters
plannint
ExecC2C(nint, void*, void*, CuFftDirection)
Executes a complex-to-complex single-precision FFT (C2C).
public static void ExecC2C(nint plan, void* idata, void* odata, CuFftDirection direction)Parameters
plannintidatavoid*odatavoid*directionCuFftDirection
ExecC2R(nint, void*, void*)
Executes a complex-to-real single-precision inverse FFT (C2R).
public static void ExecC2R(nint plan, void* idata, void* odata)Parameters
ExecD2Z(nint, void*, void*)
Executes a real-to-complex double-precision forward FFT (D2Z).
public static void ExecD2Z(nint plan, void* idata, void* odata)Parameters
ExecR2C(nint, void*, void*)
Executes a real-to-complex single-precision forward FFT (R2C).
public static void ExecR2C(nint plan, void* idata, void* odata)Parameters
ExecZ2D(nint, void*, void*)
Executes a complex-to-real double-precision inverse FFT (Z2D).
public static void ExecZ2D(nint plan, void* idata, void* odata)Parameters
ExecZ2Z(nint, void*, void*, CuFftDirection)
Executes a complex-to-complex double-precision FFT (Z2Z).
public static void ExecZ2Z(nint plan, void* idata, void* odata, CuFftDirection direction)Parameters
plannintidatavoid*odatavoid*directionCuFftDirection
GetSize(nint)
Returns the size of the workspace (in bytes) required by plan.
public static nuint GetSize(nint plan)Parameters
plannint
Returns
GetVersion()
Returns the cuFFT library version number (e.g. 11000 = v11.0).
public static int GetVersion()Returns
MakePlanMany(nint, int, long[], long[]?, long, long, long[]?, long, long, CuFftType, long)
Builds a batched N-D FFT plan using the 64-bit cufftMakePlanMany64 API.
Returns the required workspace size in bytes.
public static nuint MakePlanMany(nint plan, int rank, long[] n, long[]? inembed, long istride, long idist, long[]? onembed, long ostride, long odist, CuFftType type, long batch)Parameters
plannint-
Plan handle.
rankint-
Number of FFT dimensions.
nlong[]-
Size of each FFT dimension.
inembedlong[]?-
Storage dimensions of the input data;
null= contiguous. istridelong-
Distance between successive input elements in the innermost dimension.
idistlong-
Stride between the first element of consecutive batches in the input.
onembedlong[]?-
Storage dimensions of the output data;
null= contiguous. ostridelong-
Distance between successive output elements in the innermost dimension.
odistlong-
Stride between the first element of consecutive batches in the output.
typeCuFftType-
Transform type (e.g. NVMathNet.Interop.CuFftType.C2C).
batchlong-
Number of independent transforms in the batch.
Returns
SetAutoAllocation(nint, bool)
Controls whether cuFFT automatically allocates its own workspace.
Set to false to supply a custom workspace via NVMathNet.Interop.CuFftNative.SetWorkArea(System.IntPtr,System.Void*).
public static void SetAutoAllocation(nint plan, bool autoAllocate)Parameters
SetStream(nint, nint)
Associates a CUDA stream with the plan for asynchronous execution.
public static void SetStream(nint plan, nint stream)Parameters
SetWorkArea(nint, void*)
Provides a caller-owned device workspace buffer to the plan.
public static void SetWorkArea(nint plan, void* workArea)Parameters
XtExec(nint, void*, void*, CuFftDirection)
Executes a cuFFTXt transform (mixed-precision / custom data types).
public static void XtExec(nint plan, void* input, void* output, CuFftDirection direction)Parameters
plannintinputvoid*outputvoid*directionCuFftDirection
XtMakePlanMany(nint, int, long[], long[]?, long, long, int, long[]?, long, long, int, long, int)
Builds a batched N-D FFT plan using the cuFFTXt cufftXtMakePlanMany API
for mixed-precision and custom data types.
Returns the required workspace size in bytes.
public static nuint XtMakePlanMany(nint plan, int rank, long[] n, long[]? inembed, long istride, long idist, int inputType, long[]? onembed, long ostride, long odist, int outputType, long batch, int executionType)Parameters
plannintrankintnlong[]inembedlong[]?istridelongidistlonginputTypeintonembedlong[]?ostridelongodistlongoutputTypeintbatchlongexecutionTypeint