def METHOD_NAME(
    self,
    hexagon_session: Session,
    ref_data,
    batch,
    in_channel,
    in_size,
    num_filter,
    kernel,
    dtype,
    stride,
    padding,
    dilation,
):
    """Test Conv2D NHWC."""
    a_np, w_np, b_np = ref_data
    a_tensor = te.placeholder(a_np.shape, name="a_tensor", dtype=dtype)
    w_tensor = te.placeholder(w_np.shape, name="w_tensor", dtype=dtype)
    with tvm.target.Target(get_hexagon_target("v68")):
        fcompute = topi.nn.conv2d_nhwc
        fschedule = topi.hexagon.schedule_conv2d_nhwc
        b_tensor = fcompute(a_tensor, w_tensor, stride, padding, dilation, dtype)
        s = fschedule([b_tensor])
    func_name = "conv2d_{}_{}_{}_{}_{}_{}_{}_{}_{}".format(
        dtype,
        batch,
        in_channel,
        in_size,
        num_filter,
        kernel,
        stride,
        padding,
        dilation,
    )
    func = tvm.build(
        s, [a_tensor, w_tensor, b_tensor], get_hexagon_target("v68"), name=func_name
    )
    mod = hexagon_session.load_module(func)
    dev = hexagon_session.device
    a_data = tvm.nd.array(a_np, dev)
    weight = tvm.nd.array(w_np, dev)
    b = tvm.nd.array(np.zeros(get_const_tuple(b_tensor.shape), dtype=b_tensor.dtype), dev)
    mod[func_name](a_data, weight, b)
    tvm.testing.assert_allclose(b.numpy(), b_np, rtol=1e-5)