def bgmv_expand_cpu(
    inputs: torch.Tensor,
    lora_b_weights: torch.Tensor,
    output_tensor: torch.Tensor,
    lora_indices_tensor: torch.Tensor,
    add_inputs: bool,
):
    r"""
    Args:
        inputs (torch.Tensor): The input tensor with shape of
            [batchsize, input_size1] or [1, input_size1] which input_size1  >= hidden_size.
        lora_b_weights (torch.Tensor):  LoRA weights tensor
            with shape of [num_lora, max_rank, hidden_size].
        output_tensor (torch.Tensor): The output tensor with shape of
            [batchsize, output_size1] which output_size1 >= max_rank
        lora_indices_tensor (torch.Tensor): The tensor mapping each input token
            to the lora-id related to that token with shape of [batchsize].
        add_inputs (bool): Whether to add to the output tensor.
    """
    return torch.ops.torch_ipex.punica_bgmv_expand(
        output_tensor, inputs, lora_b_weights, lora_indices_tensor, add_inputs
    )

    Args:
        inputs (torch.Tensor): The input tensor with shape of
            [batchsize, input_size1] or [1, input_size1] which input_size1  >= hidden_size.
        lora_b_weights (torch.Tensor):  LoRA weights tensor
            with shape of [num_lora, max_rank, hidden_size].
        output_tensor (torch.Tensor): The output tensor with shape of
            [batchsize, output_size1] which output_size1 >= max_rank
        lora_indices_tensor (torch.Tensor): The tensor mapping each input token
            to the lora-id related to that token with shape of [batchsize].
        add_inputs (bool): Whether to add to the output tensor.
    
intel_extension_for_pytorch/transformers/models/cpu/fusions/mha_fusion.py