from argparse import Namespace
from mindspeed.features_manager import NoopLayersFeature as MSNoopLayersFeature
from mindspeed.patch_utils import MindSpeedPatchesManager
class NoopLayersFeature(MSNoopLayersFeature):
def register_patches(
self,
patch_manager: MindSpeedPatchesManager,
args: Namespace,
):
from mindspeed.core.pipeline_parallel.noop_layers.adaptor import (
mindspeed_calc_flop,
mindspeed_track_moe_metrics,
)
if getattr(args, self.feature_name, None):
patch_manager.register_patch("megatron.training.training.num_floating_point_operations",
mindspeed_calc_flop)
patch_manager.register_patch("megatron.core.transformer.moe.moe_utils.track_moe_metrics",
mindspeed_track_moe_metrics)