dtfft_config_t Interface

public interface dtfft_config_t

Interface to create a new configuration

Calls

interface~~dtfft_config_t~~CallsGraph interface~dtfft_config_t dtfft_config_t proc~config_constructor config_constructor interface~dtfft_config_t->proc~config_constructor

Module Procedures

private pure function config_constructor(enable_log, enable_z_slab, n_measure_warmup_iters, n_measure_iters, platform, stream, backend, enable_mpi_backends, enable_pipelined_backends, enable_nccl_backends, enable_nvshmem_backends, enable_kernel_optimization, n_configs_to_test, force_kernel_optimization) result(config)

Creates a new configuration

Arguments

Type IntentOptional Attributes Name
logical, intent(in), optional :: enable_log

Should dtFFT use Z-slab optimization or not.

logical, intent(in), optional :: enable_z_slab

Should dtFFT use Z-slab optimization or not.

integer(kind=int32), intent(in), optional :: n_measure_warmup_iters

Number of warmup iterations for measurements

integer(kind=int32), intent(in), optional :: n_measure_iters

Number of measurement iterations

type(dtfft_platform_t), intent(in), optional :: platform

Selects platform to execute plan.

type(dtfft_stream_t), intent(in), optional :: stream

Main CUDA stream that will be used in dtFFT.

type(dtfft_backend_t), intent(in), optional :: backend

Backend that will be used by dtFFT when effort is DTFFT_ESTIMATE or DTFFT_MEASURE.

logical, intent(in), optional :: enable_mpi_backends

Should MPI GPU Backends be enabled when effort is DTFFT_PATIENT or not.

logical, intent(in), optional :: enable_pipelined_backends

Should pipelined GPU backends be enabled when effort is DTFFT_PATIENT or not.

logical, intent(in), optional :: enable_nccl_backends

Should NCCL Backends be enabled when effort is DTFFT_PATIENT or not.

logical, intent(in), optional :: enable_nvshmem_backends

Should NVSHMEM Backends be enabled when effort is DTFFT_PATIENT or not.

logical, intent(in), optional :: enable_kernel_optimization

Should dtFFT try to optimize NVRTC kernel block size during autotune or not.

integer(kind=int32), intent(in), optional :: n_configs_to_test

Number of top theoretical best performing blocks of threads to test for transposition kernels when effort is DTFFT_PATIENT.

logical, intent(in), optional :: force_kernel_optimization

Whether to force kernel optimization when effort is not DTFFT_PATIENT.

Return Value type(dtfft_config_t)

Constructed dtFFT config ready to be set by call to dtfft_set_config