![]() |
(git:f824184)
|
Public Member Functions | |
| subroutine | dbt_reshape (tensor_in, tensor_out, summation, move_data, bounds, index_map, group_mask, group_dim) |
| copy data (involves reshape) tensor_out = tensor_out + tensor_in move_data memory optimization: transfer data from tensor_in to tensor_out s.t. tensor_in is empty on return | |
| subroutine | dbt_gather (tensor_in, tensor_out, images, index_map, stack_dim) |
| Gather whole blocks from selected tensors, optionally relabelling each block index. Zero images or mapped indices are skipped. Blocks retain their sizes. Each image occupies one source tensor extent along stack_dim, including skipped images. Retained index maps must be injective; the stack-dimension map stays within one source extent. | |
Definition at line 44 of file dbt_reshape_ops.F.
| subroutine dbt_reshape_ops::dbt_copy_indexed::dbt_reshape | ( | type(dbt_type), intent(inout), target | tensor_in, |
| type(dbt_type), intent(inout) | tensor_out, | ||
| logical, intent(in), optional | summation, | ||
| logical, intent(in), optional | move_data, | ||
| integer, dimension(:, :), intent(in), optional | bounds, | ||
| integer, dimension(:, :), intent(in), optional | index_map, | ||
| logical, dimension(:, :), intent(in), optional | group_mask, | ||
| integer, intent(in), optional | group_dim ) |
copy data (involves reshape) tensor_out = tensor_out + tensor_in move_data memory optimization: transfer data from tensor_in to tensor_out s.t. tensor_in is empty on return
| bounds | crop tensor data while copying (as dbt_crop): start and end index per dimension |
| tensor_in | source tensor on the parent communicator |
| tensor_out | destination tensor; smaller communicators denote equal, contiguous subgroups |
| summation | add to destination instead of replacing it |
| move_data | clear the source after copying |
| index_map | optional source-to-destination block indices; zero skips a block |
| group_mask | optional subgroup selection by source block index |
| group_dim | source dimension indexing group_mask |
Definition at line 68 of file dbt_reshape_ops.F.
| subroutine dbt_reshape_ops::dbt_copy_indexed::dbt_gather | ( | type(dbt_type), dimension(:), intent(inout), target | tensor_in, |
| type(dbt_type), intent(inout) | tensor_out, | ||
| integer, dimension(:), intent(in) | images, | ||
| integer, dimension(:, :), intent(in) | index_map, | ||
| integer, intent(in) | stack_dim ) |
Gather whole blocks from selected tensors, optionally relabelling each block index. Zero images or mapped indices are skipped. Blocks retain their sizes. Each image occupies one source tensor extent along stack_dim, including skipped images. Retained index maps must be injective; the stack-dimension map stays within one source extent.
| tensor_in | source tensors on one communicator, with identical shapes |
| tensor_out | destination tensor |
| images | source tensor indices; zero skips an image |
| index_map | source-to-destination block indices, padded to the largest source dimension |
| stack_dim | dimension along which images are stacked |
Definition at line 94 of file dbt_reshape_ops.F.