code: def test_cuda_floormod_with_vectorization():
      with tvm.target.cuda():
          # B[i] = A[floormod(i, k)]
          n = 256
          k = 37
          A = te.placeholder((n,), name="A")
          B = te.compute(
              (n,), lambda i: A[tvm.tir.floormod(i, k)], name="B"
          )
          s = te.create_schedule(B.op)
          xo, xi = s[B].split(B.op.axis[0], nparts=1)
          xio, xii = s[B].split(xi, factor=4)
          s[B].vectorize(xii)
          s[B].bind(xo, bx)
          s[B].bind(xio, tx)
          func = tvm.build(s, [A, B], "cuda")
  
          dev = tvm.cuda(0)
          a_np = np.random.uniform(size=(n,)).astype(A.dtype)
          b_np = np.array([a_np[i % k] for i in range(0, n)])
          a_nd = tvm.nd.array(a_np, dev)
          b_nd = tvm.nd.array(
              np.zeros(b_np.shape, dtype=b_np.dtype), dev
          )
          func(a_nd, b_nd)
          tvm.testing.assert_allclose(b_nd.numpy(), b_np, rtol=1e-3)
  
imports: import os
  import re
  import tvm
  from tvm import te
  import numpy
  from tvm import topi
  from tvm.contrib.nvcc import have_fp16, have_int8, have_bf16
  from tvm.contrib import utils
  from tvm.script import tir
  import tvm.testing
  import pytest
label_desc: Use image node_id 17 for calling a global function with example usage: test_cuda_floormod_with_vectorization() without return types