CUDA Transpose Handle
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
type(dtfft_transpose_t), | private | :: | transpose_type |
Type of transposition to perform |
|||
logical, | private | :: | has_exchange | = | .false. |
If current handle has exchanges between GPUs |
|
logical, | private | :: | is_pipelined | = | .false. |
If underlying exchanges are pipelined |
|
type(nvrtc_kernel), | private | :: | transpose_kernel |
Kernel for data transposition |
|||
type(nvrtc_kernel), | private | :: | unpack_kernel |
Kernel for unpacking data |
|||
type(nvrtc_kernel), | private | :: | unpack_kernel2 |
Kernel for unpacking data required by |
|||
class(abstract_backend), | private, | allocatable | :: | comm_handle |
Communication handle |
Creates CUDA Transpose Handle
Creates CUDA Transpose Handle
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(transpose_handle_cuda), | intent(inout) | :: | self |
CUDA Transpose Handle |
||
type(backend_helper), | intent(in) | :: | helper |
Backend helper |
||
type(pencil), | intent(in) | :: | send |
Send pencil |
||
type(pencil), | intent(in) | :: | recv |
Recv pencil |
||
type(dtfft_effort_t), | intent(in) | :: | effort |
Effort level for generating transpose kernels |
||
integer(kind=int64), | intent(in) | :: | base_storage |
Number of bytes needed to store single element |
||
type(dtfft_backend_t), | intent(in) | :: | backend |
Backend type |
||
logical, | intent(in), | optional | :: | force_effort |
Should effort be forced or not |
Executes transpose - exchange - unpack
Executes transpose - exchange - unpack
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(transpose_handle_cuda), | intent(inout) | :: | self |
CUDA Transpose Handle |
||
real(kind=real32), | intent(inout) | :: | in(:) |
Send pointer |
||
real(kind=real32), | intent(inout) | :: | out(:) |
Recv pointer |
||
type(dtfft_stream_t), | intent(in) | :: | stream |
Main execution CUDA stream |
||
real(kind=real32), | intent(inout) | :: | aux(:) |
Aux pointer |
Destroys CUDA Transpose Handle
Destroys CUDA Transpose Handle
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(transpose_handle_cuda), | intent(inout) | :: | self |
CUDA 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_cuda), | intent(in) | :: | self |
CUDA Transpose Handle |