create Subroutine

private subroutine create(self, fft_rank, fft_type, precision, idist, odist, how_many, fft_sizes, inembed, onembed, error_code, r2r_kinds)

Uses

  • proc~~create~11~~UsesGraph proc~create~11 cufft_executor%create iso_c_binding iso_c_binding proc~create~11->iso_c_binding iso_fortran_env iso_fortran_env proc~create~11->iso_fortran_env

Creates FFT plan via cuFFT Interface

Type Bound

cufft_executor

Arguments

Type IntentOptional Attributes Name
class(cufft_executor), intent(inout) :: self

cuFFT FFT Executor

integer(kind=int8), intent(in) :: fft_rank

Rank of fft: 1 or 2

integer(kind=int8), intent(in) :: fft_type

Type of fft: r2r, r2c, c2c

type(dtfft_precision_t), intent(in) :: precision

Precision of fft: DTFFT_SINGLE or DTFFT_DOUBLE

integer(kind=int32), intent(in) :: idist

Distance between the first element of two consecutive signals in a batch of the input data.

integer(kind=int32), intent(in) :: odist

Distance between the first element of two consecutive signals in a batch of the output data.

integer(kind=int32), intent(in) :: how_many

Number of transforms to create

integer(kind=int32), intent(in) :: fft_sizes(:)

Dimensions of transform

integer(kind=int32), intent(in) :: inembed(:)

Storage dimensions of the input data in memory.

integer(kind=int32), intent(in) :: onembed(:)

Storage dimensions of the output data in memory.

integer(kind=int32), intent(inout) :: error_code

Error code to be returned to user

type(dtfft_r2r_kind_t), intent(in), optional :: r2r_kinds(:)

Kinds of r2r transform


Calls

proc~~create~11~~CallsGraph proc~create~11 cufft_executor%create interface~cufftplanmany cufftPlanMany proc~create~11->interface~cufftplanmany interface~cufftsetstream cufftSetStream proc~create~11->interface~cufftsetstream interface~to_str to_str proc~create~11->interface~to_str mpi_abort mpi_abort proc~create~11->mpi_abort proc~cufftgeterrorstring cufftGetErrorString proc~create~11->proc~cufftgeterrorstring proc~get_conf_stream get_conf_stream proc~create~11->proc~get_conf_stream proc~double_to_string double_to_string interface~to_str->proc~double_to_string proc~float_to_string float_to_string interface~to_str->proc~float_to_string proc~int32_to_string int32_to_string interface~to_str->proc~int32_to_string proc~int64_to_string int64_to_string interface~to_str->proc~int64_to_string proc~int8_to_string int8_to_string interface~to_str->proc~int8_to_string proc~get_conf_stream->interface~to_str proc~get_conf_stream->mpi_abort interface~cudastreamcreate cudaStreamCreate proc~get_conf_stream->interface~cudastreamcreate proc~cudageterrorstring cudaGetErrorString proc~get_conf_stream->proc~cudageterrorstring interface~cudageterrorstring_c cudaGetErrorString_c proc~cudageterrorstring->interface~cudageterrorstring_c proc~string_c2f string_c2f proc~cudageterrorstring->proc~string_c2f