Transpose Plan class This class is a container for transposition plans
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| type(dtfft_backend_t), | private | :: | backend |
Backend |
|||
| type(backend_helper), | private | :: | helper |
Backend helper |
|||
| logical, | private | :: | is_z_slab |
Z-slab optimization flag (for 3D transforms) |
|||
| integer(kind=int64), | private | :: | min_buffer_size |
Minimal buffer size for transposition |
|||
| type(dtfft_platform_t), | private | :: | platform |
Platform used for transposition |
|||
| type(dtfft_stream_t), | private | :: | stream |
CUDA stream |
|||
| type(c_ptr), | private | :: | aux |
Auxiliary memory |
|||
| real(kind=real32), | private, | pointer | :: | paux(:) |
Pointer to auxiliary memory |
||
| logical, | private | :: | is_aux_alloc | = | .false. |
Is auxiliary memory allocated |
|
| type(plan_t), | private, | allocatable | :: | plans(:) |
Plans for each transposition |
Creates transpose plan
Creates transposition plan
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(transpose_plan), | intent(inout) | :: | self |
Transposition class |
||
| type(dtfft_platform_t), | intent(in) | :: | platform |
Platform to create plan for |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Global sizes of the transform requested |
||
| type(MPI_Comm), | intent(in) | :: | base_comm |
Base communicator |
||
| type(dtfft_effort_t), | intent(in) | :: | effort |
|
||
| type(MPI_Datatype), | intent(in) | :: | base_dtype |
Base MPI_Datatype |
||
| integer(kind=int64), | intent(in) | :: | base_storage |
Number of bytes needed to store single element |
||
| type(MPI_Comm), | intent(out) | :: | cart_comm |
Cartesian communicator |
||
| type(MPI_Comm), | intent(out) | :: | comms(:) |
Array of 1d communicators |
||
| type(pencil), | intent(out) | :: | pencils(:) |
Data distributing meta |
||
| type(pencil_init), | intent(in), | optional | :: | ipencil |
Pencil passed by user |
Error code
Executes transposition
Executes transposition
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(transpose_plan), | intent(inout) | :: | self |
Transposition class |
||
| type(c_ptr), | intent(in) | :: | in |
Incoming buffer |
||
| type(c_ptr), | intent(in) | :: | out |
Resulting buffer |
||
| type(dtfft_transpose_t), | intent(in) | :: | transpose_type |
Type of transpose to execute |
||
| type(async_exec_t), | intent(in) | :: | exec_type |
Type of execution (sync/async) |
||
| integer(kind=int32), | intent(out), | optional | :: | error_code |
Error code |
Finishes asynchronous transposition
Finishes asynchronous transposition
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(transpose_plan), | intent(inout) | :: | self |
Transposition class |
||
| type(c_ptr), | intent(in) | :: | in |
Incoming buffer |
||
| type(c_ptr), | intent(in) | :: | out |
Resulting buffer |
||
| type(dtfft_transpose_t), | intent(in) | :: | transpose_type |
Type of transpose |
||
| integer(kind=int32), | intent(out) | :: | error_code |
Error code |
Returns .true. if any of the plans is running asynchronously
Returns .true. if any of the plans is running asynchronously
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(transpose_plan), | intent(in) | :: | self |
Transposition class |
Destroys transpose plan
Destroys transposition plans
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(transpose_plan), | intent(inout) | :: | self |
Transposition class |
Returns auxiliary buffer size
Returns maximum auxiliary memory size needed by transpose plan
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(transpose_plan), | intent(in) | :: | self |
Transposition class |
Returns backend id
Returns plan GPU backend
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(transpose_plan), | intent(in) | :: | self |
Transposition class |
Returns .true. if Z-slab optimization is enabled
Returns .true. if Z-slab optimization is enabled
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(transpose_plan), | intent(in) | :: | self |
Transposition class |
Allocates memory based on selected backend
Allocates memory based on selected backend
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(transpose_plan), | intent(inout) | :: | self |
Transposition class |
||
| type(MPI_Comm), | intent(in) | :: | comm |
MPI communicator |
||
| integer(kind=int64), | intent(in) | :: | alloc_bytes |
Number of bytes to allocate |
||
| type(c_ptr), | intent(out) | :: | ptr |
Pointer to the allocated memory |
||
| integer(kind=int32), | intent(out) | :: | error_code |
Error code |
Frees memory allocated with mem_alloc
Frees memory allocated with mem_alloc
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(transpose_plan), | intent(inout) | :: | self |
Transposition class |
||
| type(c_ptr), | intent(in) | :: | ptr |
Pointer to the memory to free |
||
| integer(kind=int32), | intent(out) | :: | error_code |
Error code |