create Subroutine

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

Creates FFT plan via vkFFT Interface

Type Bound

vkfft_executor

Arguments

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

vkFFT 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 vkfft_executor%create proc~get_user_platform get_user_platform proc~create~11->proc~get_user_platform proc~get_user_stream get_user_stream proc~create~11->proc~get_user_stream proc~load_vkfft load_vkfft proc~create~11->proc~load_vkfft proc~get_platform_from_env get_platform_from_env proc~get_user_platform->proc~get_platform_from_env interface~cudastreamcreate cudaStreamCreate proc~get_user_stream->interface~cudastreamcreate interface~int_to_str int_to_str proc~get_user_stream->interface~int_to_str mpi_abort mpi_abort proc~get_user_stream->mpi_abort proc~cudageterrorstring cudaGetErrorString proc~get_user_stream->proc~cudageterrorstring proc~load load proc~load_vkfft->proc~load 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 interface~cudageterrorstring_c cudaGetErrorString_c proc~cudageterrorstring->interface~cudageterrorstring_c proc~string_c2f string_c2f proc~cudageterrorstring->proc~string_c2f proc~destroy_strings destroy_strings proc~load->proc~destroy_strings proc~dynamic_load dynamic_load proc~load->proc~dynamic_load interface~is_null_ptr is_null_ptr proc~dynamic_load->interface~is_null_ptr proc~load_library load_library proc~dynamic_load->proc~load_library proc~load_symbol load_symbol proc~dynamic_load->proc~load_symbol proc~unload_library unload_library proc~dynamic_load->proc~unload_library interface~is_null_ptr->interface~is_null_ptr proc~is_null_funptr is_null_funptr interface~is_null_ptr->proc~is_null_funptr proc~load_library->interface~is_null_ptr interface~dlopen dlopen proc~load_library->interface~dlopen proc~astring_f2c astring_f2c proc~load_library->proc~astring_f2c proc~dl_error dl_error proc~load_library->proc~dl_error proc~load_symbol->interface~is_null_ptr interface~dlsym dlsym proc~load_symbol->interface~dlsym proc~load_symbol->proc~astring_f2c proc~load_symbol->proc~dl_error interface~dlclose dlclose proc~unload_library->interface~dlclose proc~unload_library->proc~dl_error proc~string_f2c string_f2c proc~astring_f2c->proc~string_f2c proc~dl_error->proc~string_c2f interface~dlerror dlerror proc~dl_error->interface~dlerror proc~get_log_enabled get_log_enabled proc~dl_error->proc~get_log_enabled proc~write_message write_message proc~dl_error->proc~write_message mpi_comm_rank mpi_comm_rank proc~write_message->mpi_comm_rank mpi_finalized mpi_finalized proc~write_message->mpi_finalized