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 | = | 2 |
dtFFT Minor Version |
integer(kind=int32), | public, | parameter | :: | DTFFT_VERSION_PATCH | = | 0 |
dtFFT Patch Version |
integer(kind=int32), | public, | parameter | :: | DTFFT_VERSION_CODE | = | 202000 |
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 –> 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) | = | ["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 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 | :: | 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_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, DTFFT_BACKEND_CUFFTMP_PIPELINED] |
List of valid GPU 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(kernel_type_t), | public, | parameter | :: | KERNEL_DUMMY | = | kernel_type_t(-1) |
Dummy kernel, does nothing |
type(kernel_type_t), | public, | parameter | :: | KERNEL_TRANSPOSE | = | kernel_type_t(1) |
Basic transpose kernel type. |
type(kernel_type_t), | public, | parameter | :: | KERNEL_TRANSPOSE_PACKED | = | kernel_type_t(2) |
Transposes data and packs it into contiguous buffer. Should be used only in X-Y 3D plans. |
type(kernel_type_t), | public, | parameter | :: | KERNEL_UNPACK | = | kernel_type_t(3) |
Unpacks contiguous buffer. |
type(kernel_type_t), | public, | parameter | :: | KERNEL_UNPACK_SIMPLE_COPY | = | kernel_type_t(4) |
Doesn’t actually unpacks anything. Performs |
type(kernel_type_t), | public, | parameter | :: | KERNEL_UNPACK_PIPELINED | = | kernel_type_t(5) |
Unpacks pack of contiguous buffer recieved from rank. |
type(kernel_type_t), | public, | parameter | :: | KERNEL_UNPACK_PARTIAL | = | kernel_type_t(6) |
Unpacks contiguous buffer recieved from everyone except myself. |
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, DTFFT_BACKEND_CUFFTMP_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 | :: | 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 |
type(kernel_type_t), | private, | parameter | :: | TRANSPOSE_KERNELS(*) | = | [KERNEL_TRANSPOSE, KERNEL_TRANSPOSE_PACKED] |
List of all transpose kernel types |
type(kernel_type_t), | private, | parameter | :: | UNPACK_KERNELS(*) | = | [KERNEL_UNPACK, KERNEL_UNPACK_PIPELINED, KERNEL_UNPACK_PARTIAL] |
List of all unpack kernel types |
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(kernel_type_t), | intent(in) | :: | left | |||
type(kernel_type_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 |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(kernel_type_t), | intent(in) | :: | left | |||
type(kernel_type_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 |
nvRTC Kernel type
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
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(kernel_type_t), | intent(in) | :: | param |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(kernel_type_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 | ||
---|---|---|---|---|---|---|
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 |
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 |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(kernel_type_t), | intent(in) | :: | left | |||
type(kernel_type_t), | intent(in) | :: | right |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(kernel_type_t), | intent(in) | :: | left | |||
type(kernel_type_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