set_split_strategy_by_size
Applicability
Product |
Supported |
|---|---|
Atlas 350 Accelerator Card |
√ |
√ |
|
√ |
|
☓ |
|
√ |
|
√ |
For
For the
Function
Sets a gradient segmentation strategy in a collective communication group based on the proportion of gradient data to implement AllReduce fusion and optimize the collective communication performance.
Prototype
1 | def set_split_strategy_by_size(dataSizeList, group="hccl_world_group") |
Parameters
Parameter |
Input/Output |
Description |
|---|---|---|
dataSizeList |
Input |
A list. List of gradient parameter data volume percentages.
|
group |
Input |
A string containing a maximum of 128 bytes, including the end character. Group name, which can be a user-defined value or hccl_world_group. Defaults to hccl_world_group. |
Returns
None
Constraints
- The caller rank must be within the range defined by the group argument passed to this API call. Otherwise, the API call fails.
- When the backward gradient segmentation policy is set based on both the gradient data volume percentage and the gradient index ID, the setting result based on the gradient data volume percentage is preferred.
- If you do not call the gradient segmentation API to set the segmentation policy, the default backward gradient segmentation policy is used.
Default segmentation strategy: The optimal segmentation location of ResNet-50 is as follows: ResNet-50 is divided into two segments based on the gradient data size. The data size of the first segment is 96.54%, and that of the second segment is 3.46%.
Call Example
1 2 | from hccl.split.api import * set_split_strategy_by_size([60, 20, 20], "group") |