Helper with nccl, mpi and nvshmem communicators
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
logical, | public | :: | is_nccl_created | = | .false. |
Flag is |
|
type(ncclComm), | public | :: | nccl_comm |
NCCL communicator |
|||
logical, | public | :: | should_register |
If NCCL buffer should be registered |
|||
type(c_ptr), | public, | allocatable | :: | nccl_register(:,:) |
NCCL register cache |
||
integer(kind=int32), | public | :: | nccl_register_size |
Number of elements in |
|||
type(MPI_Comm), | public, | allocatable | :: | comms(:) |
MPI communicators |
||
integer(kind=int32), | public, | allocatable | :: | comm_mappings(:,:) |
Mapping of 1d comm ranks to global comm |
||
type(dtfft_transpose_t), | public | :: | tranpose_type |
Type of transpose to create |
|||
type(pencil), | public, | pointer | :: | pencils(:) |
Pencils |
Creates helper
Creates helper
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(backend_helper), | intent(inout) | :: | self |
Backend helper |
||
type(MPI_Comm), | intent(in) | :: | base_comm |
MPI communicator |
||
type(MPI_Comm), | intent(in) | :: | comms(:) |
1D Communicators |
||
logical, | intent(in) | :: | is_nccl_needed |
If nccl communicator will be needed |
||
type(pencil), | intent(in), | target | :: | pencils(:) |
Pencils |
Destroys helper
Destroys helper
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(backend_helper), | intent(inout) | :: | self |
Backend helper |