def METHOD_NAME():
    data = relay.var("data", shape=(1, 32, 32, 64), dtype="float32")
    x = relay.nn.relu(data)
    w = relay.var("weight", shape=(3, 3, 64, 128), dtype="float32")
    y = relay.nn.conv2d(
        x, w, channels=128, kernel_size=3, padding=1, data_layout="NHWC", kernel_layout="HWIO"
    )
    z = relay.nn.relu(y)
    func = relay.Function(relay.analysis.free_vars(z), z)
    params = {
        "weight": tvm.nd.array(
            np.array(random_bsr_matrix(128, 64 * 9, 16, 1, 0.1, "float32").todense()).T.reshape(
                3, 3, 64, 128
            )
        )
    }
    x_np = np.random.randn(1, 32, 32, 64).astype("float32")
    # dense output
    dense_output = run_func(func, params, x_np)
    # sparse
    func = bind_params_by_name(func, params)
    sparse_func, params = relay.data_dep_optimization.bsr_conv2d.convert2(
        func, {}, (16, 1), 0.2, "NHWC", 3
    )
    sparse_output = run_func(sparse_func, params, x_np)
    np.testing.assert_allclose(sparse_output, dense_output, atol=1e-5, rtol=1e-5)