Generic Transpose Handle Executes transposition in 3 steps:
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| logical, | private | :: | has_exchange | = | .false. |
If current handle has exchanges between GPUs |
|
| logical, | private | :: | is_pipelined | = | .false. |
If underlying exchanges are pipelined |
|
| logical, | private | :: | is_async_supported | = | .false. |
If underlying backend support async execution(execute/execute_end) |
|
| class(abstract_kernel), | private, | allocatable | :: | transpose_kernel |
Kernel for data transposition |
||
| class(abstract_kernel), | private, | allocatable | :: | unpack_kernel |
Kernel for unpacking data |
||
| class(abstract_backend), | private, | allocatable | :: | comm_handle |
Communication handle |
Creates transpose handle
Creates transpose handle
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(abstract_transpose_handle), | intent(inout) | :: | self |
Abstract transpose handle |
||
| type(pencil), | intent(in) | :: | send |
Send pencil |
||
| type(pencil), | intent(in) | :: | recv |
Recv pencil |
||
| integer(kind=int64), | intent(in) | :: | base_storage |
Base storage size |
||
| type(create_args), | intent(inout) | :: | kwargs |
Additional arguments |
Creates Generic Transpose Handle
Creates Generic Transpose Handle
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(transpose_handle_generic), | intent(inout) | :: | self |
Generic Transpose Handle |
||
| type(MPI_Comm), | intent(in) | :: | comm |
MPI Communicator |
||
| type(pencil), | intent(in) | :: | send |
Send pencil |
||
| type(pencil), | intent(in) | :: | recv |
Recv pencil |
||
| type(dtfft_transpose_t), | intent(in) | :: | transpose_type |
Type of transpose to create |
||
| integer(kind=int64), | intent(in) | :: | base_storage |
Base storage |
||
| type(create_args), | intent(in) | :: | kwargs |
Additional arguments |
Executes transpose - exchange - unpack
Executes transpose - exchange - unpack
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(transpose_handle_generic), | intent(inout) | :: | self |
Generic Transpose Handle |
||
| real(kind=real32), | intent(inout) | :: | in(:) |
Send pointer |
||
| real(kind=real32), | intent(inout) | :: | out(:) |
Recv pointer |
||
| type(execute_args), | intent(inout) | :: | kwargs |
Additional arguments |
||
| integer(kind=int32), | intent(out) | :: | error_code |
Error code |
Finalizes async transpose
Ends execution of transposition
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(transpose_handle_generic), | intent(inout) | :: | self |
Generic Transpose Handle |
||
| type(execute_args), | intent(inout) | :: | kwargs |
Additional arguments |
||
| integer(kind=int32), | intent(out) | :: | error_code |
Error code |
Returns if async transpose is active
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(transpose_handle_generic), | intent(in) | :: | self |
Generic Transpose Handle |
Destroys Generic Transpose Handle
Destroys Generic Transpose Handle
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(transpose_handle_generic), | intent(inout) | :: | self |
Generic Transpose Handle |
Returns number of bytes required by aux buffer
Returns number of bytes required by aux buffer
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(transpose_handle_generic), | intent(in) | :: | self |
Generic Transpose Handle |