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~~UsesGraph proc~create cufft_executor%create iso_c_binding iso_c_binding proc~create->iso_c_binding iso_fortran_env iso_fortran_env proc~create->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~~CallsGraph proc~create cufft_executor%create interface~cufftplanmany cufftPlanMany proc~create->interface~cufftplanmany interface~cufftsetstream cufftSetStream proc~create->interface~cufftsetstream interface~int_to_str int_to_str proc~create->interface~int_to_str mpi_abort mpi_abort proc~create->mpi_abort proc~cufftgeterrorstring cufftGetErrorString proc~create->proc~cufftgeterrorstring proc~get_user_stream get_user_stream proc~create->proc~get_user_stream proc~int_to_str_int32 int_to_str_int32 interface~int_to_str->proc~int_to_str_int32 proc~int_to_str_int64 int_to_str_int64 interface~int_to_str->proc~int_to_str_int64 proc~int_to_str_int8 int_to_str_int8 interface~int_to_str->proc~int_to_str_int8 proc~get_user_stream->interface~int_to_str proc~get_user_stream->mpi_abort interface~cudastreamcreate cudaStreamCreate proc~get_user_stream->interface~cudastreamcreate proc~cudageterrorstring cudaGetErrorString proc~get_user_stream->proc~cudageterrorstring interface~cudageterrorstring_c cudaGetErrorString_c proc~cudageterrorstring->interface~cudageterrorstring_c proc~string_c2f string_c2f proc~cudageterrorstring->proc~string_c2f