Diff Coverage

Diff: origin/master...HEAD, staged and unstaged changes

Source File Diff Coverage (%) Missing Lines
hyper_parallel/core/dtensor/device_mesh.py 100%  
hyper_parallel/core/dtensor/layout.py 100%  
hyper_parallel/core/dtensor/tensor_redistribution.py 0.0% 314-315,321
hyper_parallel/core/optimizer/optimizer.py 0.0% 327
hyper_parallel/core/tensor_parallel/api.py 100%  
hyper_parallel/tools/logging.py 100%  
hyper_parallel/core/dtensor/tensor_redistribution.py
310
311
312
313
314
315
316
317
318
319
        # 1. ReduceScatter is executed before AllReduce
        # 2. If multiple split, the dev axis split outer will be execute first.
        #    e.g. ("cp", "tp"), will execute reduce_scatter along "cp" before "tp"
        # 3. Lower dev_id execute before higher dev_id
        def _reduce_pair_sort_key(reduce_pair):
            return (
                reduce_pair[0] != "ReduceScatter",
                dev_map_order.get(reduce_pair[2], 0),
                to_layout.mesh.axis_id(reduce_pair[2]),
            )
317
318
319
320
321
322
323
324
325
                dev_map_order.get(reduce_pair[2], 0),
                to_layout.mesh.axis_id(reduce_pair[2]),
            )

        sorted_pending_reduce_op_list = sorted(pending_reduce_op_list, key=_reduce_pair_sort_key)

        output_alias_tensor_map = list(from_layout.alias_tensor_map)
        for reduce_op_pair in sorted_pending_reduce_op_list:
            comm_op = reduce_op_pair[0]
hyper_parallel/core/optimizer/optimizer.py
323
324
325
326
327
328
329
330
331

        # Cache Hit Check
        if cache_key in self._split_sub_pg_cache:
            sub_pg_map = self._split_sub_pg_cache[cache_key]
            for _, sub_pg in sub_pg_map.items():
                if sub_pg is not None:
                    try:
                        dist.get_rank(group=sub_pg)
                        return sub_pg