예제 #1
0
 def check_device(device, ctx):
     with tvm.target.Target(device):
         print("Running on target: %s" % device)
         conv2d_compute, conv2d_schedule = tvm.topi.testing.get_conv2d_nchw_implement(device)
         data = te.placeholder((2, 1, 2, 4), "int8", "data")
         w = te.placeholder((3, 1, 2, 2), "int8", "w")
         conv1 = conv2d_compute(data, w, 1, 0, 1, "int32")
         zeros = topi.full((2, 3, 1, 3), "int32", tvm.tir.const(0, dtype="int32"))
         gt = topi.greater_equal(conv1, zeros)
         one = topi.full((2, 3, 1, 3), "int32", tvm.tir.const(1, dtype="int32"))
         two = topi.full((2, 3, 1, 3), "int32", tvm.tir.const(2, dtype="int32"))
         where = topi.where(gt, one, two)
         add = topi.add(conv1, where)
         outs = [add]
         s = conv2d_schedule(outs)
         tvm.build(s, [data, w, add], target=backend)
예제 #2
0
 def check_device(device):
     with tvm.target.create(device):
         ctx = tvm.context(device, 0)
         if not ctx.exist:
             print("Skip because %s is not enabled" % device)
             return
         print("Running on target: %s" % device)
         conv2d_compute, conv2d_schedule = tvm.topi.testing.get_conv2d_nchw_implement(device)
         data = te.placeholder((2, 1, 2, 4), 'int8', 'data')
         w = te.placeholder((3, 1, 2, 2), 'int8', 'w')
         conv1 = conv2d_compute(data, w, 1, 0, 1, 'int32')
         zeros = topi.full((2, 3, 1, 3), 'int32', tvm.tir.const(0, dtype='int32'))
         gt = topi.greater_equal(conv1, zeros)
         one = topi.full((2, 3, 1, 3), 'int32', tvm.tir.const(1, dtype='int32'))
         two = topi.full((2, 3, 1, 3), 'int32', tvm.tir.const(2, dtype='int32'))
         where = topi.where(gt, one, two)
         add = topi.add(conv1, where)
         outs = [add]
         s = conv2d_schedule(outs)
         tvm.build(s, [data, w, add], target=backend)
예제 #3
0
 def greater_equal(x, y):
     return topi.greater_equal(x, y).astype("int8")