def default_gen_profiler(
    func_attrs,
    workdir,
    profiler_filename,
    dim_info_dict,
    default_problem_args,
):
    """default function for generating bmm profilers"""
    a_dims = reverse_dim_info_mapping(dim_info_dict, gemm_common.Source.INPUT, 0)
    b_dims = reverse_dim_info_mapping(dim_info_dict, gemm_common.Source.INPUT, 1)
    c_dims = reverse_dim_info_mapping(dim_info_dict, gemm_common.Source.OUTPUT, 0)

    args_parser = ARGS_PARSER_TEMPLATE.render(
        a_dims=a_dims, b_dims=b_dims, c_dims=c_dims
    )

    default_mm_info = get_default_problem_info(
        default_problem_args,
        alpha_value=func_attrs.get("alpha", 1),
    )
    a_shapes = func_attrs["input_accessors"][0].original_shapes
    b_shapes = func_attrs["input_accessors"][1].original_shapes
    _update_stride_info(default_mm_info, a_shapes, b_shapes)

    problem_args = PROBLEM_ARGS_TEMPLATE.render(
        mm_info=default_mm_info,
    )
    problem_args_cutlass_3x = PROBLEM_ARGS_TEMPLATE_CUTLASS_3X.render(
        mm_info=add_elem_types_to_mm_info(
            mm_info=default_mm_info,
            func_attrs=func_attrs,
        ),
    )

    return gen_profiler(
        func_attrs=func_attrs,
        workdir=workdir,
        profiler_filename=profiler_filename,
        dim_info_dict=dim_info_dict,
        src_template=common.SRC_TEMPLATE,
        problem_args=problem_args,
        problem_args_cutlass_3x=problem_args_cutlass_3x,
        args_parser=args_parser,
    )
default function for generating bmm profilers
python/aitemplate/backend/cuda/gemm_universal/bmm_common.py