Copyright | [2013..2018] Robert Clifton-Everest Trevor L. McDonell |
---|---|
License | BSD3 |
Maintainer | Trevor L. McDonell <tmcdonell@cse.unsw.edu.au> |
Stability | experimental |
Portability | non-portable (GHC extensions) |
Safe Haskell | None |
Language | Haskell98 |
Documentation
A handle used to store and access cuFFT plans.
A handle is created by the FFT planning functions (e.g. plan1D
) and used
during execution of the transforms (e.g. execC2C
).
The handle may be reused, but should be destroy
ed once it is no longer
required, in order to release associated GPU memory and other resources.
The cuFFT library supports complex- and real-valued transforms. This data type enumerates the kind of transform a plan will execute.
Key:
- R: real (32-bit float)
- D: double (64-bit float)
- C: single-precision complex numbers (32-bit, interleaved)
- Z: double-precision complex numbers (64-bit, interleaved)
:: Int | Size of the transformation |
-> Type | Transformation data type |
-> Int | Number of one-dimensional transforms to configure |
-> IO Handle |
Creates a 1D FFT plan configured for a specified signal size and data type.
The third argument tells cuFFT how many 1D transforms, of size given by the
first argument, to configure. Consider using planMany
for multiple
transforms instead.
http://docs.nvidia.com/cuda/cufft/index.html#function-cufftplan1d
:: Int | The transform size in the x-dimension. This is the slowest changing dimension of a transform (strided in memory) |
-> Int | The transform size in the y-dimension. This is the fastest changing dimension of a transform (contiguous in memory) |
-> Type | Transformation data type |
-> IO Handle |
Creates a 2D FFT plan configuration for a specified signal size and data type.
http://docs.nvidia.com/cuda/cufft/index.html#function-cufftplan2d
:: Int | The transform size in the x-dimension. This is the slowest changing dimension of the transform (strided in memory) |
-> Int | The transform size in the y-dimension. |
-> Int | The transform size in the z-dimension. This is the fastest changing dimension of the transform (contiguous in memory) |
-> Type | Transformation data type |
-> IO Handle |
Creates a 3D FFT plan configuration for a specified signal size and data type.
http://docs.nvidia.com/cuda/cufft/index.html#function-cufftplan3d
:: [Int] | The size of the transform in each dimension, where |
-> Maybe ([Int], Int, Int) | Input data layout. If |
-> Maybe ([Int], Int, Int) | Output data layout. If |
-> Type | Transformation type |
-> Int | Batch size for this transform |
-> IO Handle |
Creates a batched plan configuration for many signals of a specified size and data type in either 1, 2 or 3 dimensions.
This function supports more complicated input and output data layouts. If not
specified (that is, Nothing
is passed for either of the second or third
parameters), contiguous data arrays are assumed.
Data layout configuration consists of three fields, respectively:
- storage dimensions of the input data in memory
- the distance between two successive input elements in the innermost (least significant) dimension
- the distance between the first element of two consecutive signals in a batch of the input data
http://docs.nvidia.com/cuda/cufft/index.html#function-cufftplanmany