Type that can be used to set additional configuration parameters to dtFFT
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
logical(kind=c_bool), | public | :: | enable_z_slab |
Should dtFFT use Z-slab optimization or not. Default is true. One should consider disabling Z-slab optimization in order to resolve |
|||
type(dtfft_platform_t), | public | :: | platform |
Selects platform to execute plan. Default is DTFFT_PLATFORM_HOST This option is only defined with device support build. Even when dtFFT is build with device support it does not nessasary means that all plans must be related to device. This enables single library installation to be compiled with both host, CUDA and HIP plans. |
|||
type(dtfft_stream_t), | public | :: | stream |
Main CUDA stream that will be used in dtFFT. This parameter is a placeholder for user to set custom stream. Stream that is actually used by dtFFT plan is returned by When user sets stream he is responsible of destroying it. Stream must not be destroyed before call to |
|||
type(dtfft_backend_t), | public | :: | backend |
Backend that will be used by dtFFT when Default is |
|||
logical(kind=c_bool), | public | :: | enable_mpi_backends |
Should MPI GPU Backends be enabled when Default is false. MPI Backends are disabled by default during autotuning process due to OpenMPI Bug https://github.com/open-mpi/ompi/issues/12849 It was noticed that during plan autotuning GPU memory not being freed completely. For example: 1024x1024x512 C2C, double precision, single GPU, using Z-slab optimization, with MPI backends enabled, plan autotuning will leak 8Gb GPU memory. Without Z-slab optimization, running on 4 GPUs, will leak 24Gb on each of the GPUs. One of the workarounds is to disable MPI Backends by default, which is done here. Other is to pass “–mca btl_smcuda_use_cuda_ipc 0” to |
|||
logical(kind=c_bool), | public | :: | enable_pipelined_backends |
Should pipelined GPU backends be enabled when Default is true. Pipelined backends require additional buffer that user has no control over. |
|||
logical(kind=c_bool), | public | :: | enable_nccl_backends |
Should NCCL Backends be enabled when Default is true. |
|||
logical(kind=c_bool), | public | :: | enable_nvshmem_backends |
Should NVSHMEM Backends be enabled when Default is true. |
Interface to create a new configuration
Creates a new configuration
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
logical, | intent(in), | optional | :: | enable_z_slab |
Should dtFFT use Z-slab optimization or not. |
|
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 |
|
logical, | intent(in), | optional | :: | enable_mpi_backends |
Should MPI GPU Backends be enabled when |
|
logical, | intent(in), | optional | :: | enable_pipelined_backends |
Should pipelined GPU backends be enabled when |
|
logical, | intent(in), | optional | :: | enable_nccl_backends |
Should NCCL Backends be enabled when |
|
logical, | intent(in), | optional | :: | enable_nvshmem_backends |
Should NVSHMEM Backends be enabled when |
Constructed dtFFT
config ready to be set by call to dtfft_set_config