This module defines common dtFFT
parameters
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
integer(kind=int32), | public, | parameter | :: | DTFFT_VERSION_MAJOR | = | 2 |
dtFFT Major Version |
integer(kind=int32), | public, | parameter | :: | DTFFT_VERSION_MINOR | = | 0 |
dtFFT Minor Version |
integer(kind=int32), | public, | parameter | :: | DTFFT_VERSION_PATCH | = | 0 |
dtFFT Patch Version |
integer(kind=int32), | public, | parameter | :: | DTFFT_VERSION_CODE | = | 200000 |
dtFFT Version Code. Can be used in Version comparison |
type(dtfft_execute_t), | public, | parameter | :: | DTFFT_EXECUTE_FORWARD | = | dtfft_execute_t(11) |
Perform XYZ –> YXZ –> ZXY plan execution (Forward) |
type(dtfft_execute_t), | public, | parameter | :: | DTFFT_EXECUTE_BACKWARD | = | dtfft_execute_t(12) |
Perform ZXY –> YXZ –> XYZ plan execution (Backward) |
type(dtfft_transpose_t), | public, | parameter | :: | DTFFT_TRANSPOSE_X_TO_Y | = | dtfft_transpose_t(+1) |
Perform single transposition, from X aligned to Y aligned |
type(dtfft_transpose_t), | public, | parameter | :: | DTFFT_TRANSPOSE_Y_TO_X | = | dtfft_transpose_t((-1)) |
Perform single transposition, from Y aligned to X aligned |
type(dtfft_transpose_t), | public, | parameter | :: | DTFFT_TRANSPOSE_X_TO_Z | = | dtfft_transpose_t(+3) |
Perform single transposition, from X aligned to Z aligned |
type(dtfft_transpose_t), | public, | parameter | :: | DTFFT_TRANSPOSE_Y_TO_Z | = | dtfft_transpose_t(+2) |
Perform single transposition, from Y aligned to Z aligned |
type(dtfft_transpose_t), | public, | parameter | :: | DTFFT_TRANSPOSE_Z_TO_Y | = | dtfft_transpose_t((-2)) |
Perform single transposition, from Z aligned to Y aligned |
type(dtfft_transpose_t), | public, | parameter | :: | DTFFT_TRANSPOSE_Z_TO_X | = | dtfft_transpose_t((-3)) |
Perform single transposition, from Z aligned to X aligned |
character(len=*), | public, | parameter | :: | TRANSPOSE_NAMES(-3:3) | = | ["Z2X", "Z2Y", "Y2X", "NUL", "X2Y", "Y2Z", "X2Z"] |
String representation of |
type(dtfft_executor_t), | public, | parameter | :: | DTFFT_EXECUTOR_NONE | = | dtfft_executor_t(0) |
Do not setup any executor. If this type is provided, then |
type(dtfft_executor_t), | public, | parameter | :: | DTFFT_EXECUTOR_FFTW3 | = | dtfft_executor_t(1) |
FFTW3 executor |
type(dtfft_executor_t), | public, | parameter | :: | DTFFT_EXECUTOR_MKL | = | dtfft_executor_t(2) |
MKL executor |
type(dtfft_executor_t), | public, | parameter | :: | DTFFT_EXECUTOR_CUFFT | = | dtfft_executor_t(3) |
cuFFT GPU executor |
type(dtfft_executor_t), | public, | parameter | :: | DTFFT_EXECUTOR_VKFFT | = | dtfft_executor_t(4) |
VkFFT GPU executor |
integer(kind=int8), | public, | parameter | :: | FFT_FORWARD | = | (-1) |
Forward c2c transform |
integer(kind=int8), | public, | parameter | :: | FFT_BACKWARD | = | (+1) |
Backward c2c transform |
type(dtfft_effort_t), | public, | parameter | :: | DTFFT_ESTIMATE | = | dtfft_effort_t(0) |
Estimate flag. |
type(dtfft_effort_t), | public, | parameter | :: | DTFFT_MEASURE | = | dtfft_effort_t(+1) |
Measure flag. |
type(dtfft_effort_t), | public, | parameter | :: | DTFFT_PATIENT | = | dtfft_effort_t(+2) |
Patient flag. Same as |
type(dtfft_precision_t), | public, | parameter | :: | DTFFT_SINGLE | = | dtfft_precision_t(0) |
Use single precision |
type(dtfft_precision_t), | public, | parameter | :: | DTFFT_DOUBLE | = | dtfft_precision_t(+1) |
Use double precision |
type(dtfft_r2r_kind_t), | public, | parameter | :: | DTFFT_DCT_1 | = | dtfft_r2r_kind_t(+3) |
DCT-I (Logical N=2*(n-1), inverse is |
type(dtfft_r2r_kind_t), | public, | parameter | :: | DTFFT_DCT_2 | = | dtfft_r2r_kind_t(+5) |
DCT-II (Logical N=2*n, inverse is |
type(dtfft_r2r_kind_t), | public, | parameter | :: | DTFFT_DCT_3 | = | dtfft_r2r_kind_t(+4) |
DCT-III (Logical N=2*n, inverse is |
type(dtfft_r2r_kind_t), | public, | parameter | :: | DTFFT_DCT_4 | = | dtfft_r2r_kind_t(+6) |
DCT-IV (Logical N=2*n, inverse is |
type(dtfft_r2r_kind_t), | public, | parameter | :: | DTFFT_DST_1 | = | dtfft_r2r_kind_t(+7) |
DST-I (Logical N=2*(n+1), inverse is |
type(dtfft_r2r_kind_t), | public, | parameter | :: | DTFFT_DST_2 | = | dtfft_r2r_kind_t(+9) |
DST-II (Logical N=2*n, inverse is |
type(dtfft_r2r_kind_t), | public, | parameter | :: | DTFFT_DST_3 | = | dtfft_r2r_kind_t(+8) |
DST-III (Logical N=2*n, inverse is |
type(dtfft_r2r_kind_t), | public, | parameter | :: | DTFFT_DST_4 | = | dtfft_r2r_kind_t(+10) |
DST-IV (Logical N=2*n, inverse is |
integer(kind=int64), | public, | parameter | :: | DOUBLE_COMPLEX_STORAGE_SIZE | = | storage_size((1._real64, 1._real64))/8_int64 |
Number of bytes to store single double precision complex element |
integer(kind=int64), | public, | parameter | :: | COMPLEX_STORAGE_SIZE | = | storage_size((1._real32, 1._real32))/8_int64 |
Number of bytes to store single float precision complex element |
integer(kind=int64), | public, | parameter | :: | DOUBLE_STORAGE_SIZE | = | storage_size(1._real64)/8_int64 |
Number of bytes to store single double precision real element |
integer(kind=int64), | public, | parameter | :: | FLOAT_STORAGE_SIZE | = | storage_size(1._real32)/8_int64 |
Number of bytes to store single single precision real element |
integer(kind=int32), | public, | parameter | :: | COLOR_CREATE | = | int(Z'00FAB53C') |
Color for |
integer(kind=int32), | public, | parameter | :: | COLOR_EXECUTE | = | int(Z'00E25DFC') |
Color for |
integer(kind=int32), | public, | parameter | :: | COLOR_TRANSPOSE | = | int(Z'00B175BD') |
Color for |
integer(kind=int32), | public, | parameter | :: | COLOR_TRANSPOSE_XY | = | int(Z'005DFCCA') |
Color for |
integer(kind=int32), | public, | parameter | :: | COLOR_TRANSPOSE_YX | = | int(Z'0076A797') |
Color for |
integer(kind=int32), | public, | parameter | :: | COLOR_TRANSPOSE_YZ | = | int(Z'00E3CF9F') |
Color for |
integer(kind=int32), | public, | parameter | :: | COLOR_TRANSPOSE_ZY | = | int(Z'008C826A') |
Color for |
integer(kind=int32), | public, | parameter | :: | COLOR_TRANSPOSE_XZ | = | int(Z'00546F66') |
Color for |
integer(kind=int32), | public, | parameter | :: | COLOR_TRANSPOSE_ZX | = | int(Z'007A6D7D') |
Color for |
integer(kind=int32), | public, | parameter | :: | COLOR_FFT | = | int(Z'00FCD05D') |
Color for FFT |
integer(kind=int32), | public, | parameter | :: | COLOR_AUTOTUNE | = | int(Z'006075FF') |
Color for Autotune |
integer(kind=int32), | public, | parameter | :: | COLOR_AUTOTUNE2 | = | int(Z'0056E874') |
Color for Autotune2 |
integer(kind=int32), | public, | parameter | :: | COLOR_DESTROY | = | int(Z'00000000') |
Color for |
integer(kind=int32), | public, | parameter | :: | COLOR_TRANSPOSE_PALLETTE(-3:3) | = | [COLOR_TRANSPOSE_ZX, COLOR_TRANSPOSE_ZY, COLOR_TRANSPOSE_YX, 0, COLOR_TRANSPOSE_XY, COLOR_TRANSPOSE_YZ, COLOR_TRANSPOSE_XZ] |
Color pallete for |
integer(kind=int32), | public, | parameter | :: | DTFFT_SUCCESS | = | 0 |
Successful execution |
integer(kind=int32), | public, | parameter | :: | DTFFT_ERROR_MPI_FINALIZED | = | (-1) |
MPI_Init is not called or MPI_Finalize has already been called |
integer(kind=int32), | public, | parameter | :: | DTFFT_ERROR_PLAN_NOT_CREATED | = | 1 |
Plan not created |
integer(kind=int32), | public, | parameter | :: | DTFFT_ERROR_INVALID_TRANSPOSE_TYPE | = | 2 |
Invalid |
integer(kind=int32), | public, | parameter | :: | DTFFT_ERROR_INVALID_N_DIMENSIONS | = | 3 |
Invalid Number of dimensions provided. Valid options are 2 and 3 |
integer(kind=int32), | public, | parameter | :: | DTFFT_ERROR_INVALID_DIMENSION_SIZE | = | 4 |
One or more provided dimension sizes <= 0 |
integer(kind=int32), | public, | parameter | :: | DTFFT_ERROR_INVALID_COMM_TYPE | = | 5 |
Invalid communicator type provided |
integer(kind=int32), | public, | parameter | :: | DTFFT_ERROR_INVALID_PRECISION | = | 6 |
Invalid |
integer(kind=int32), | public, | parameter | :: | DTFFT_ERROR_INVALID_EFFORT | = | 7 |
Invalid |
integer(kind=int32), | public, | parameter | :: | DTFFT_ERROR_INVALID_EXECUTOR | = | 8 |
Invalid |
integer(kind=int32), | public, | parameter | :: | DTFFT_ERROR_INVALID_COMM_DIMS | = | 9 |
Number of dimensions in provided Cartesian communicator > Number of dimension passed to |
integer(kind=int32), | public, | parameter | :: | DTFFT_ERROR_INVALID_COMM_FAST_DIM | = | 10 |
Passed Cartesian communicator with number of processes in 1st (fastest varying) dimension > 1 |
integer(kind=int32), | public, | parameter | :: | DTFFT_ERROR_MISSING_R2R_KINDS | = | 11 |
For R2R plan, |
integer(kind=int32), | public, | parameter | :: | DTFFT_ERROR_INVALID_R2R_KINDS | = | 12 |
Invalid values detected in |
integer(kind=int32), | public, | parameter | :: | DTFFT_ERROR_R2C_TRANSPOSE_PLAN | = | 13 |
Transpose plan is not supported in R2C, use R2R or C2C plan instead |
integer(kind=int32), | public, | parameter | :: | DTFFT_ERROR_INPLACE_TRANSPOSE | = | 14 |
Inplace transpose is not supported |
integer(kind=int32), | public, | parameter | :: | DTFFT_ERROR_INVALID_AUX | = | 15 |
Invalid |
integer(kind=int32), | public, | parameter | :: | DTFFT_ERROR_INVALID_DIM | = | 16 |
Invalid |
integer(kind=int32), | public, | parameter | :: | DTFFT_ERROR_INVALID_USAGE | = | 17 |
Invalid API Usage. |
integer(kind=int32), | public, | parameter | :: | DTFFT_ERROR_PLAN_IS_CREATED | = | 18 |
Trying to create already created plan |
integer(kind=int32), | public, | parameter | :: | DTFFT_ERROR_ALLOC_FAILED | = | 19 |
Internal allocation failed |
integer(kind=int32), | public, | parameter | :: | DTFFT_ERROR_FREE_FAILED | = | 20 |
Internal memory free failed |
integer(kind=int32), | public, | parameter | :: | DTFFT_ERROR_INVALID_ALLOC_BYTES | = | 21 |
Invalid |
integer(kind=int32), | public, | parameter | :: | DTFFT_ERROR_DLOPEN_FAILED | = | 22 |
dlopen failed |
integer(kind=int32), | public, | parameter | :: | DTFFT_ERROR_DLSYM_FAILED | = | 23 |
dlsym failed |
integer(kind=int32), | public, | parameter | :: | DTFFT_ERROR_R2C_TRANSPOSE_CALLED | = | 24 |
Calling to |
integer(kind=int32), | public, | parameter | :: | DTFFT_ERROR_R2R_FFT_NOT_SUPPORTED | = | 101 |
Selected |
integer(kind=int32), | public, | parameter | :: | DTFFT_ERROR_GPU_INVALID_STREAM | = | 201 |
Invalid stream provided |
integer(kind=int32), | public, | parameter | :: | DTFFT_ERROR_GPU_INVALID_BACKEND | = | 202 |
Invalid GPU backend provided |
integer(kind=int32), | public, | parameter | :: | DTFFT_ERROR_GPU_NOT_SET | = | 203 |
Multiple MPI Processes located on same host share same GPU which is not supported |
integer(kind=int32), | public, | parameter | :: | DTFFT_ERROR_VKFFT_R2R_2D_PLAN | = | 204 |
When using R2R FFT and executor type is vkFFT and plan uses Z-slab optimization, it is required that types of R2R transform are same in X and Y directions |
integer(kind=int32), | public, | parameter | :: | DTFFT_ERROR_GPU_BACKENDS_DISABLED | = | 205 |
Passed |
integer(kind=int32), | public, | parameter | :: | DTFFT_ERROR_NOT_DEVICE_PTR | = | 300 |
One of pointers passed to |
integer(kind=int32), | public, | parameter | :: | DTFFT_ERROR_NOT_NVSHMEM_PTR | = | 301 |
One of pointers passed to |
integer(kind=int32), | public, | parameter | :: | DTFFT_ERROR_INVALID_PLATFORM | = | 400 |
Invalid platform provided |
integer(kind=int32), | public, | parameter | :: | DTFFT_ERROR_INVALID_PLATFORM_EXECUTOR_TYPE | = | 401 |
Invalid executor provided for selected platform |
integer(kind=int32), | public, | parameter | :: | VARIABLE_NOT_SET | = | -111 |
Default value when environ is not set |
type(dtfft_backend_t), | public, | parameter | :: | DTFFT_BACKEND_MPI_DATATYPE | = | dtfft_backend_t(21) |
Backend that uses MPI datatypes Not really recommended to use, since it is a million times slower than other backends Left here just to show how slow MPI Datatypes are for GPU usage |
type(dtfft_backend_t), | public, | parameter | :: | DTFFT_BACKEND_MPI_P2P | = | dtfft_backend_t(22) |
MPI peer-to-peer algorithm |
type(dtfft_backend_t), | public, | parameter | :: | DTFFT_BACKEND_MPI_A2A | = | dtfft_backend_t(23) |
MPI backend using MPI_Alltoallv |
type(dtfft_backend_t), | public, | parameter | :: | DTFFT_BACKEND_NCCL | = | dtfft_backend_t(24) |
NCCL backend |
type(dtfft_backend_t), | public, | parameter | :: | DTFFT_BACKEND_MPI_P2P_PIPELINED | = | dtfft_backend_t(26) |
MPI peer-to-peer algorithm with overlapping data copying and unpacking |
type(dtfft_backend_t), | public, | parameter | :: | DTFFT_BACKEND_NCCL_PIPELINED | = | dtfft_backend_t(27) |
NCCL backend with overlapping data copying and unpacking |
type(dtfft_backend_t), | public, | parameter | :: | DTFFT_BACKEND_CUFFTMP | = | dtfft_backend_t(25) |
cuFFTMp backend |
type(dtfft_backend_t), | public, | parameter | :: | BACKEND_NOT_SET | = | dtfft_backend_t(VARIABLE_NOT_SET) |
Backend is not used |
type(dtfft_backend_t), | public, | parameter | :: | VALID_GPU_BACKENDS(*) | = | [DTFFT_BACKEND_MPI_DATATYPE, DTFFT_BACKEND_MPI_P2P, DTFFT_BACKEND_MPI_A2A, DTFFT_BACKEND_MPI_P2P_PIPELINED, DTFFT_BACKEND_NCCL_PIPELINED, DTFFT_BACKEND_NCCL, DTFFT_BACKEND_CUFFTMP] |
List of valid GPU backends |
type(dtfft_stream_t), | public, | parameter | :: | NULL_STREAM | = | dtfft_stream_t(c_null_ptr) | |
type(dtfft_platform_t), | public, | parameter | :: | DTFFT_PLATFORM_HOST | = | dtfft_platform_t(1) |
Host platform |
type(dtfft_platform_t), | public, | parameter | :: | DTFFT_PLATFORM_CUDA | = | dtfft_platform_t(2) |
CUDA platform |
type(dtfft_platform_t), | public, | parameter | :: | PLATFORM_NOT_SET | = | dtfft_platform_t(VARIABLE_NOT_SET) | |
type(dtfft_execute_t), | private, | parameter | :: | VALID_EXECUTE_TYPES(*) | = | [DTFFT_EXECUTE_FORWARD, DTFFT_EXECUTE_BACKWARD] |
Valid execute types |
type(dtfft_transpose_t), | private, | parameter | :: | VALID_TRANSPOSE_TYPES(*) | = | [DTFFT_TRANSPOSE_X_TO_Y, DTFFT_TRANSPOSE_Y_TO_X, DTFFT_TRANSPOSE_Y_TO_Z, DTFFT_TRANSPOSE_Z_TO_Y, DTFFT_TRANSPOSE_X_TO_Z, DTFFT_TRANSPOSE_Z_TO_X] |
Types of transpose that are valid to pass to |
type(dtfft_executor_t), | private, | parameter | :: | VALID_EXECUTORS(*) | = | [DTFFT_EXECUTOR_NONE, DTFFT_EXECUTOR_FFTW3, DTFFT_EXECUTOR_MKL, DTFFT_EXECUTOR_CUFFT, DTFFT_EXECUTOR_VKFFT] |
List of valid executors |
type(dtfft_executor_t), | private, | parameter | :: | HOST_EXECUTORS(*) | = | [DTFFT_EXECUTOR_NONE, DTFFT_EXECUTOR_FFTW3, DTFFT_EXECUTOR_MKL] |
List of host executors |
type(dtfft_executor_t), | private, | parameter | :: | CUDA_EXECUTORS(*) | = | [DTFFT_EXECUTOR_NONE, DTFFT_EXECUTOR_CUFFT, DTFFT_EXECUTOR_VKFFT] |
List of CUDA executors |
type(dtfft_effort_t), | private, | parameter | :: | VALID_EFFORTS(*) | = | [DTFFT_ESTIMATE, DTFFT_MEASURE, DTFFT_PATIENT] |
Valid effort flags |
type(dtfft_precision_t), | private, | parameter | :: | VALID_PRECISIONS(*) | = | [DTFFT_SINGLE, DTFFT_DOUBLE] |
Valid precision flags |
type(dtfft_r2r_kind_t), | private, | parameter | :: | VALID_R2R_KINDS(*) | = | [DTFFT_DCT_1, DTFFT_DCT_2, DTFFT_DCT_3, DTFFT_DCT_4, DTFFT_DST_1, DTFFT_DST_2, DTFFT_DST_3, DTFFT_DST_4] |
Array of valid R2R kinds |
integer(kind=int8), | private, | parameter | :: | VALID_DIMENSIONS(*) | = | [2_int8, 3_int8] |
Valid dimensions for |
integer(kind=int32), | private, | parameter | :: | VALID_COMM_TYPES(*) | = | [MPI_UNDEFINED, MPI_CART] |
Valid communicator types for |
type(dtfft_backend_t), | private, | parameter | :: | PIPELINED_BACKENDS(*) | = | [DTFFT_BACKEND_MPI_P2P_PIPELINED, DTFFT_BACKEND_NCCL_PIPELINED] |
List of pipelined backends |
type(dtfft_backend_t), | private, | parameter | :: | MPI_BACKENDS(*) | = | [DTFFT_BACKEND_MPI_P2P, DTFFT_BACKEND_MPI_A2A, DTFFT_BACKEND_MPI_P2P_PIPELINED] |
List of MPI backends |
type(dtfft_backend_t), | private, | parameter | :: | NCCL_BACKENDS(*) | = | [DTFFT_BACKEND_NCCL, DTFFT_BACKEND_NCCL_PIPELINED] |
List of NCCL backends |
type(dtfft_backend_t), | private, | parameter | :: | NVSHMEM_BACKENDS(*) | = | [DTFFT_BACKEND_CUFFTMP] |
List of NVSHMEM-based backends |
type(dtfft_platform_t), | private, | parameter | :: | VALID_PLATFORMS(*) | = | [DTFFT_PLATFORM_HOST, DTFFT_PLATFORM_CUDA] |
Valid platforms |
Get dtFFT version
Returns the current version code
Returns the version code required by the user
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer(kind=int32), | intent(in) | :: | major |
Major version |
||
integer(kind=int32), | intent(in) | :: | minor |
Minor version |
||
integer(kind=int32), | intent(in) | :: | patch |
Patch version |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(dtfft_execute_t), | intent(in) | :: | left | |||
type(dtfft_execute_t), | intent(in) | :: | right |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(dtfft_transpose_t), | intent(in) | :: | left | |||
type(dtfft_transpose_t), | intent(in) | :: | right |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(dtfft_executor_t), | intent(in) | :: | left | |||
type(dtfft_executor_t), | intent(in) | :: | right |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(dtfft_effort_t), | intent(in) | :: | left | |||
type(dtfft_effort_t), | intent(in) | :: | right |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(dtfft_precision_t), | intent(in) | :: | left | |||
type(dtfft_precision_t), | intent(in) | :: | right |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(dtfft_r2r_kind_t), | intent(in) | :: | left | |||
type(dtfft_r2r_kind_t), | intent(in) | :: | right |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(dtfft_platform_t), | intent(in) | :: | left | |||
type(dtfft_platform_t), | intent(in) | :: | right |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(dtfft_backend_t), | intent(in) | :: | left | |||
type(dtfft_backend_t), | intent(in) | :: | right |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(dtfft_execute_t), | intent(in) | :: | left | |||
type(dtfft_execute_t), | intent(in) | :: | right |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(dtfft_transpose_t), | intent(in) | :: | left | |||
type(dtfft_transpose_t), | intent(in) | :: | right |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(dtfft_executor_t), | intent(in) | :: | left | |||
type(dtfft_executor_t), | intent(in) | :: | right |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(dtfft_effort_t), | intent(in) | :: | left | |||
type(dtfft_effort_t), | intent(in) | :: | right |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(dtfft_precision_t), | intent(in) | :: | left | |||
type(dtfft_precision_t), | intent(in) | :: | right |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(dtfft_r2r_kind_t), | intent(in) | :: | left | |||
type(dtfft_r2r_kind_t), | intent(in) | :: | right |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(dtfft_platform_t), | intent(in) | :: | left | |||
type(dtfft_platform_t), | intent(in) | :: | right |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(dtfft_backend_t), | intent(in) | :: | left | |||
type(dtfft_backend_t), | intent(in) | :: | right |
Creates dtfft_stream_t from integer(cuda_stream_kind)
Creates dtfft_stream_t from integer(cuda_stream_kind)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer(kind=int64), | intent(in) | :: | cuda_stream |
CUDA stream |
dtfft Stream
Type that is used during call to execute
method
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
integer(kind=c_int32_t), | public | :: | val |
Internal value |
Type that is used during call to transpose method
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
integer(kind=c_int32_t), | public | :: | val |
Internal value |
Type that specifies external FFT executor
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
integer(kind=c_int32_t), | public | :: | val |
Internal value |
Type that specifies effort that dtFFT should use when creating plan
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
integer(kind=c_int32_t), | public | :: | val |
Internal value |
Type that specifies precision of dtFFT plan
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
integer(kind=c_int32_t), | public | :: | val |
Internal value |
Type that specifies various kinds of R2R FFTs
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
integer(kind=c_int32_t), | public | :: | val |
Internal value |
Type that specifies various GPU Backend present in dtFFT
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
integer(kind=c_int32_t), | public | :: | val |
Internal value |
dtFFT
stream representation.
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
type(c_ptr), | public | :: | stream |
Actual stream |
Creates dtfft_stream_t from integer(cuda_stream_kind)
private function stream_from_int64 (cuda_stream) | Creates dtfft_stream_t from integer(cuda_stream_kind) |
Type that specifies runtime platform, e.g. Host, CUDA, HIP
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
integer(kind=c_int32_t), | public | :: | val |
Internal value |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(dtfft_execute_t), | intent(in) | :: | param |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(dtfft_transpose_t), | intent(in) | :: | param |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(dtfft_executor_t), | intent(in) | :: | param |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(dtfft_effort_t), | intent(in) | :: | param |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(dtfft_precision_t), | intent(in) | :: | param |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(dtfft_r2r_kind_t), | intent(in) | :: | param |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(dtfft_executor_t), | intent(in) | :: | param |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(dtfft_executor_t), | intent(in) | :: | param |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(dtfft_platform_t), | intent(in) | :: | param |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer(kind=int8), | intent(in) | :: | param |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer(kind=int32), | intent(in) | :: | param |
Gets the string description of an error code
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer(kind=int32), | intent(in) | :: | error_code |
Error code |
Error string
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(dtfft_backend_t), | intent(in) | :: | param |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(dtfft_backend_t), | intent(in) | :: | param |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(dtfft_backend_t), | intent(in) | :: | param |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(dtfft_backend_t), | intent(in) | :: | param |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(dtfft_backend_t), | intent(in) | :: | param |
Gets the string description of a GPU backend
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(dtfft_backend_t), | intent(in) | :: | backend |
GPU backend |
Backend string
Returns the CUDA stream from dtfft_stream_t
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(dtfft_stream_t), | intent(in) | :: | stream |
dtfft stream |
CUDA stream
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(dtfft_execute_t), | intent(in) | :: | left | |||
type(dtfft_execute_t), | intent(in) | :: | right |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(dtfft_transpose_t), | intent(in) | :: | left | |||
type(dtfft_transpose_t), | intent(in) | :: | right |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(dtfft_executor_t), | intent(in) | :: | left | |||
type(dtfft_executor_t), | intent(in) | :: | right |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(dtfft_effort_t), | intent(in) | :: | left | |||
type(dtfft_effort_t), | intent(in) | :: | right |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(dtfft_precision_t), | intent(in) | :: | left | |||
type(dtfft_precision_t), | intent(in) | :: | right |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(dtfft_r2r_kind_t), | intent(in) | :: | left | |||
type(dtfft_r2r_kind_t), | intent(in) | :: | right |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(dtfft_platform_t), | intent(in) | :: | left | |||
type(dtfft_platform_t), | intent(in) | :: | right |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(dtfft_execute_t), | intent(in) | :: | left | |||
type(dtfft_execute_t), | intent(in) | :: | right |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(dtfft_transpose_t), | intent(in) | :: | left | |||
type(dtfft_transpose_t), | intent(in) | :: | right |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(dtfft_executor_t), | intent(in) | :: | left | |||
type(dtfft_executor_t), | intent(in) | :: | right |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(dtfft_effort_t), | intent(in) | :: | left | |||
type(dtfft_effort_t), | intent(in) | :: | right |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(dtfft_precision_t), | intent(in) | :: | left | |||
type(dtfft_precision_t), | intent(in) | :: | right |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(dtfft_r2r_kind_t), | intent(in) | :: | left | |||
type(dtfft_r2r_kind_t), | intent(in) | :: | right |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(dtfft_platform_t), | intent(in) | :: | left | |||
type(dtfft_platform_t), | intent(in) | :: | right |
Returns the current version code
Returns the version code required by the user
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer(kind=int32), | intent(in) | :: | major |
Major version |
||
integer(kind=int32), | intent(in) | :: | minor |
Minor version |
||
integer(kind=int32), | intent(in) | :: | patch |
Patch version |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(dtfft_backend_t), | intent(in) | :: | left | |||
type(dtfft_backend_t), | intent(in) | :: | right |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(dtfft_backend_t), | intent(in) | :: | left | |||
type(dtfft_backend_t), | intent(in) | :: | right |
Creates dtfft_stream_t from integer(cuda_stream_kind)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer(kind=int64), | intent(in) | :: | cuda_stream |
CUDA stream |
dtfft Stream