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(dtfft_platform_t), | intent(in) | :: | platform |
Platform to use |
||
| 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 |