This module handles additional configuration dtFFT
, provided by dtfft_config_t
or environment variables
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
logical, | private, | save | :: | is_z_slab_enabled | = | .true. |
Should we use z-slab decomposition or not |
type(dtfft_platform_t), | private, | save | :: | platform | = | DTFFT_PLATFORM_HOST |
Default platform |
type(dtfft_backend_t), | private, | parameter | :: | DEFAULT_GPU_BACKEND | = | DTFFT_BACKEND_NCCL |
Default GPU backend |
type(dtfft_stream_t), | private, | save | :: | main_stream |
Default dtFFT CUDA stream |
||
type(dtfft_stream_t), | private, | save | :: | custom_stream |
CUDA stream set by the user |
||
logical, | private, | save | :: | is_stream_created | = | .false. |
Is the default stream created? |
logical, | private, | save | :: | is_custom_stream | = | .false. |
Is the custom stream provided by the user? |
logical, | private, | save | :: | is_pipelined_enabled | = | .true. |
Should we use pipelined backends or not |
logical, | private, | save | :: | is_mpi_enabled | = | .false. |
Should we use MPI backends or not |
logical, | private, | save | :: | is_nccl_enabled | = | .true. |
Should we use NCCL backends or not |
logical, | private, | save | :: | is_nvshmem_enabled | = | .true. |
Should we use NCCL backends or not |
type(dtfft_backend_t), | private, | save | :: | backend | = | DEFAULT_GPU_BACKEND |
Default GPU backend |
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
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. |
|||
type(dtfft_platform_t), | public | :: | platform |
Selects platform to execute plan. |
|||
type(dtfft_stream_t), | public | :: | stream |
Main CUDA stream that will be used in dtFFT. |
|||
type(dtfft_backend_t), | public | :: | backend |
Backend that will be used by dtFFT when |
|||
logical(kind=c_bool), | public | :: | enable_mpi_backends |
Should MPI GPU Backends be enabled when |
|||
logical(kind=c_bool), | public | :: | enable_pipelined_backends |
Should pipelined GPU backends be enabled when |
|||
logical(kind=c_bool), | public | :: | enable_nccl_backends |
Should NCCL Backends be enabled when |
|||
logical(kind=c_bool), | public | :: | enable_nvshmem_backends |
Should NVSHMEM Backends be enabled when |
Interface to create a new configuration
private pure function config_constructor (enable_z_slab, platform, stream, backend, enable_mpi_backends, enable_pipelined_backends, enable_nccl_backends, enable_nvshmem_backends) | Creates a new configuration |
Whether Z-slab optimization is enabled or not
Returns either the custom provided by user or creates a new one
Returns GPU backend set by the user or default one
Whether pipelined backends are enabled or not
Whether MPI backends are enabled or not
Whether NCCL backends are enabled or not
Whether nvshmem backends are enabled or not
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
Creates a new configuration with default values.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(dtfft_config_t), | intent(out) | :: | config |
Configuration to create |
Sets configuration parameters
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(dtfft_config_t), | intent(in) | :: | config |
Configuration to set |
||
integer(kind=int32), | intent(out), | optional | :: | error_code |
Error code |
Destroy the default stream if it was created