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 | = | 4 |
dtFFT Minor Version |
| integer(kind=int32), | public, | parameter | :: | DTFFT_VERSION_PATCH | = | 0 |
dtFFT Patch Version |
| integer(kind=int32), | public, | parameter | :: | DTFFT_VERSION_CODE | = | 204000 |
dtFFT Version Code. Can be used in Version comparison |
| real(kind=real32), | public, | parameter | :: | MAX_REAL32 | = | huge(1._real32) |
Maximum value of real32 |
| integer(kind=int32), | public, | parameter | :: | MAX_INT32 | = | huge(1_int32) |
Maximum value of int32 |
| type(dtfft_execute_t), | public, | parameter | :: | DTFFT_EXECUTE_FORWARD | = | dtfft_execute_t(11) |
Perform XYZ –> YZX –> ZXY plan execution (Forward) |
| type(dtfft_execute_t), | public, | parameter | :: | DTFFT_EXECUTE_BACKWARD | = | dtfft_execute_t(12) |
Perform ZXY –> YZX –> 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) | = | ["Z_TO_X", "Z_TO_Y", "Y_TO_X", " NULL ", "X_TO_Y", "Y_TO_Z", "X_TO_Z"] |
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 | :: | 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 This is default backend for Host build. Not really recommended to use for GPU usage, since it is a ‘million’ times slower than other backends. |
| 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_MPI_RMA | = | dtfft_backend_t(29) |
MPI RMA backend |
| type(dtfft_backend_t), | public, | parameter | :: | DTFFT_BACKEND_MPI_RMA_PIPELINED | = | dtfft_backend_t(30) |
MPI Pipelined RMA backend |
| 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_MPI_P2P_SCHEDULED | = | dtfft_backend_t(31) |
MPI peer-to-peer algorithm with overlapping data copying and unpacking using MPI_Schedule |
| 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 | :: | DTFFT_BACKEND_CUFFTMP_PIPELINED | = | dtfft_backend_t(28) |
cuFFTMp backend that uses extra buffer to gain performance |
| 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_BACKENDS(*) | = | [DTFFT_BACKEND_MPI_DATATYPE, DTFFT_BACKEND_MPI_P2P, DTFFT_BACKEND_MPI_A2A, DTFFT_BACKEND_MPI_P2P_PIPELINED, DTFFT_BACKEND_MPI_P2P_SCHEDULED, DTFFT_BACKEND_NCCL_PIPELINED, DTFFT_BACKEND_NCCL, DTFFT_BACKEND_CUFFTMP, DTFFT_BACKEND_CUFFTMP_PIPELINED] |
List of valid backends that |
| 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(async_exec_t), | public, | parameter | :: | EXEC_BLOCKING | = | async_exec_t(1) |
Blocking execution |
| type(async_exec_t), | public, | parameter | :: | EXEC_NONBLOCKING | = | async_exec_t(2) |
Non-blocking execution |
| 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, DTFFT_BACKEND_CUFFTMP_PIPELINED, DTFFT_BACKEND_MPI_RMA_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, DTFFT_BACKEND_MPI_RMA, DTFFT_BACKEND_MPI_RMA_PIPELINED, DTFFT_BACKEND_MPI_P2P_SCHEDULED] |
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 | :: | CUFFTMP_BACKENDS(*) | = | [DTFFT_BACKEND_CUFFTMP, DTFFT_BACKEND_CUFFTMP_PIPELINED] |
List of cuFFTMp backends |
| type(dtfft_backend_t), | private, | parameter | :: | NVSHMEM_BACKENDS(*) | = | [DTFFT_BACKEND_CUFFTMP, DTFFT_BACKEND_CUFFTMP_PIPELINED] |
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(async_exec_t), | intent(in) | :: | left | |||
| type(async_exec_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 backends 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 | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| type(c_ptr), | public | :: | val | = | c_null_ptr |
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| integer(kind=int32), | public | :: | val |
| 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 | ||
|---|---|---|---|---|---|---|
| integer(kind=int8), | intent(in) | :: | param |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int32), | intent(in) | :: | param |
Gets the string description of a precision
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(dtfft_precision_t), | intent(in) | :: | precision |
Precision type |
Precision string
Gets the string description of an executor
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(dtfft_executor_t), | intent(in) | :: | executor |
Executor type |
Executor string
Gets the string description of a backend
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(dtfft_backend_t), | intent(in) | :: | backend |
Backend ID |
Backend 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 |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(dtfft_backend_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 |
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(async_exec_t), | intent(in) | :: | left | |||
| type(async_exec_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