class_docstr: This is a NodeHandler class which deals with the addition + batched matrix multiplication operation in PyTorch.
  Such operations including `torch.addbmm` and `torch.Tensor.addbmm` require the two matmul tensor to be 3D. However, due to the
  addition, logical-physical shape conversion is required for the bias term.
  
  As the addbmm operation will reduce the batch dimension, the bias is maximum 2D.
class_docstr_tok: ["This","is","a","NodeHandler","class","which","deals","with","the","addition","+","batched","matrix","multiplication","operation","in","PyTorch",".","Such","operations","including","`","torch.addbmm","`","and","`","torch.Tensor.addbmm","`","require","the","two","matmul","tensor","to","be","3D",".","However",",","due","to","the","addition",",","logical-physical","shape","conversion","is","required","for","the","bias","term",".","As","the","addbmm","operation","will","reduce","the","batch","dimension",",","the","bias","is","maximum","2D","."]
code: def get_strategy_generator(self) -> List[StrategyGenerator]:
      op_data_mapping = self.get_operation_data_mapping()
      generators = []
      generator = BatchedMatMulStrategyGenerator(
          op_data_mapping, self.device_mesh
      )
      # addbmm will shrink the first batch dim
      generator.squeeze_batch_dim = True
      generators.append(generator)
      return generators
  
file_path: ColossalAI/colossalai/auto_parallel/tensor_shard/node_handler/bmm_handler.py
imports: from typing import Dict, List, Union
  import torch
  from ..sharding_strategy import OperationData, OperationDataType, ShardingStrategy
  from ..utils import comm_actions_for_oprands, recover_sharding_spec_for_broadcast_shape
  from .node_handler import NodeHandler
  from .registry import operator_registry
  from .strategy import BatchedMatMulStrategyGenerator, StrategyGenerator
label_desc: Use image node_id 2 for calling the AddBMMFunctionHandler obj's underlying member method code with example usage: obj.get_strategy_generator() and returns: generators