def bgmv_shrink_cpu(
    inputs: torch.Tensor,
    lora_a_weights: torch.Tensor,
    output_tensor: torch.Tensor,
    lora_indices_tensor: torch.Tensor,
    scaling: float,
):
    r"""
    Args:
        inputs (torch.Tensor): The input tensor with shape of [batchsize, hidden_size].
        lora_a_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].
        scaling (float): Scaling factor.
    """
    return torch.ops.torch_ipex.punica_bgmv_shrink(
        output_tensor, inputs, lora_a_weights, lora_indices_tensor, scaling
    )

    Args:
        inputs (torch.Tensor): The input tensor with shape of [batchsize, hidden_size].
        lora_a_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].
        scaling (float): Scaling factor.
    
intel_extension_for_pytorch/transformers/models/cpu/fusions/mha_fusion.py