def METHOD_NAME(device):
    dev = tvm.device(device, 0)
    if not tvm.testing.device_enabled(dev):
        print("Skip because %s is not enabled" % device)
        return
    print("Running on target: %s" % device)
    with tvm.target.Target(device):
        C = topi.x86.conv2d_NCHWc(
            A,
            W,
            (stride, stride),
            (padding, padding),
            (dilation, dilation),
            "NCHW%dc" % ic_block,
            "NCHW%dc" % oc_block,
            dtype,
        )
        s = topi.x86.schedule_conv2d_NCHWc([C])
    a = tvm.nd.array(a_np, dev)
    w = tvm.nd.array(w_np, dev)
    c = tvm.nd.array(np.zeros(get_const_tuple(C.shape), dtype=C.dtype), dev)
    func = tvm.build(
        s,
        [A, W, C],
        device,
        name="relu_%d_%d_%d_%d_%d_%d_%d_%d"
        % (batch, in_channel, in_size, num_filter, kernel, stride, padding, dilation),
    )
    # print(tvm.lower(s, [A, W, C], simple_mode=True))
    func(a, w, c)
    tvm.testing.assert_allclose(c.numpy(), c_np, rtol=1e-3)