def METHOD_NAME(
    self, hexagon_launcher, comp_type, data, reference, schedule, verify
):
    """Async software pipeline test."""
    out_np = data[0]
    a_np = data[1]
    if comp_type == "single_input":
        ref = reference(a_np)
    else:
        b_np = data[2]
        ref = reference(a_np, b_np)
    with tvm.transform.PassContext(
        config={
            "tir.use_async_copy": 1,
            "tir.experimental_dma_bypass_cache": 1,
        }
    ):
        # tvm.lower(schedule.mod["main"]).show()
        func = tvm.build(schedule.mod["main"], target=get_hexagon_target("v68"))
    with hexagon_launcher.create_session() as hexagon_session:
        dev = hexagon_session.device
        mod = hexagon_session.load_module(func)
        out = tvm.nd.array(out_np, device=dev)
        a = tvm.nd.array(a_np, device=dev)
        if comp_type == "single_input":
            mod(a, out)
        else:
            b = tvm.nd.array(b_np, device=dev)
            mod(a, b, out)
        verify(out, ref)