def __init__(
        self,
        causal_type: CausalType,
        epilogue_math_name: str,
        alpha0: float,
        alpha1: float,
        alpha1_divide_by_seq_len: bool = False,
    ) -> None:
        r"""Back-to-back batched gemm fused kernels.

        More detailed documentation at the top of this file.

        Args:
        * causal_type (CausalType): Type of causal_mask. See comments above.
        * epilogue_math_name (str): Name of the activation function.
        Supported epilogue functions can be found from
        python/aitemplate/utils/mk_cutlass_lib/extra_enum.py.
        * alpha0 (float): See the math function above.
        * alpha1 (float): See the math function above.
        * alpha1_divide_by_seq_len (bool) Whether divide alpha1 by seq_len.
        Useful when seq_len is a dynamic value so that alpah1 cannot be
        computed in advance.
        """
        super().__init__(
            causal_type, epilogue_math_name, alpha0, alpha1, alpha1_divide_by_seq_len
        )
        self._attrs["op"] = "classic_b2b_bmm"
        if (
            causal_type != CausalType.NO_CAUSAL
            and causal_type != CausalType.LOWER_LEFT_EMPTY
        ):
            raise NotImplementedError(
                f"classic_b2b_bmm only supports NO_CAUSAL or LOWER_LEFT_EMPTY. Current causal type: {causal_type}"
            )
Back-to-back batched gemm fused kernels.

        More detailed documentation at the top of this file.

        Args:
        * causal_type (CausalType): Type of causal_mask. See comments above.
        * epilogue_math_name (str): Name of the activation function.
        Supported epilogue functions can be found from
        python/aitemplate/utils/mk_cutlass_lib/extra_enum.py.
        * alpha0 (float): See the math function above.
        * alpha1 (float): See the math function above.
        * alpha1_divide_by_seq_len (bool) Whether divide alpha1 by seq_len.
        Useful when seq_len is a dynamic value so that alpah1 cannot be
        computed in advance.
        
python/aitemplate/compiler/ops/b2b_bmm/classic_b2b_bmm.py