def make_fproc_f16(func_attrs, layout, op_kind, extra_kind):
    """This function sets a callback for processing the epilogue of the kernel
    associated with func_attrs.

    Parameters
    ----------
    func_attrs: Dictionary
        kernel attributes dictionary
    layout: layout object
        kernel layout
    op_kind : ck_lib.library.OperationKind
        Operation kind.
    extra_kind : ck_lib.library.[AnyKind]
        Used to as extra flag to distinguish kernels.
        E.g. bias_add_relu vs. add_relu_bias
    """

    def fproc_f16(op):
        a_layout, b_layout, c_layout = layout.ck_lib_layouts()
        return default_fproc_f16(
            op=op,
            a_layout=a_layout,
            b_layout=b_layout,
            c_layout=c_layout,
        )

    has_dynamic_shape = False
    for inp in func_attrs["inputs"]:
        for dim in inp.shape():
            if isinstance(dim, IntVar):
                has_dynamic_shape = True
    func_attrs["op_instance"] = extract_config(op_kind, extra_kind, fproc_f16)
    if has_dynamic_shape:
        filtered_op_instance = {}
        for op_name, op in func_attrs["op_instance"].items():
            if "Padding" in emit_instance(op):
                filtered_op_instance[op_name] = op
        func_attrs["op_instance"] = filtered_op_instance
This function sets a callback for processing the epilogue of the kernel
    associated with func_attrs.

    Parameters
    ----------
    func_attrs: Dictionary
        kernel attributes dictionary
    layout: layout object
        kernel layout
    op_kind : ck_lib.library.OperationKind
        Operation kind.
    extra_kind : ck_lib.library.[AnyKind]
        Used to as extra flag to distinguish kernels.
        E.g. bias_add_relu vs. add_relu_bias
    
python/aitemplate/backend/rocm/gemm/common.py