def gen_function_call(
    func_attrs: Dict[str, Any],
    backend_spec,
    indent="  ",
) -> str:
    """
    Parameters
    ----------
    func_attrs : dict
        Attributes from Operator
    backend_spec : class
        specifies backend configs
    indent : str, optional
        Indentation for function call template, by default "  "

    Returns
    -------
    str
        Driver code for invoking call
    """
    x = func_attrs["inputs"][0]
    xshape = x._attrs["shape"]
    y = func_attrs["outputs"][0]
    return FUNC_CALL_TEMPLATE.render(
        func_name=func_attrs["name"],
        in_ptr=x._attrs["name"],
        out_ptr=y._attrs["name"],
        x_dim0=xshape[0]._attrs["name"],
        x_dim1=xshape[1]._attrs["name"],
        x_dim2=xshape[2]._attrs["name"],
        indent=indent,
    )
Parameters
----------
func_attrs : dict
Attributes from Operator
backend_spec : class
specifies backend configs
indent : str, optional
Indentation for function call template, by default "  "

Returns
-------
str
Driver code for invoking call
python/aitemplate/backend/common/tensor/permute102_common.py