hello! I am trying to use tensorize on my declared conv2d operator. here is my code.import numpy as np
> import tvm > from tvm import te > from tvm import autotvm > from tvm import topi > from zte.enviroment import get_env > from zte.intrin import gemm > > data = tvm.te.placeholder((1, 64, 112, 112), dtype="int16", name="data") > kernel = tvm.te.placeholder((64, 64, 3, 3), dtype="int16", name="kernel") > > out_w = 110 > out_h = 110 > out_dtype = "int32" > oshape = (1, 64, 110, 110) > > # define the conv2d operator over the padded data > c = te.reduce_axis((0, 64), name="c") > k_h = te.reduce_axis((0, 3), name="k_h") > k_w = te.reduce_axis((0, 3), name="k_w") > hstride, wstride = 1, 1 > res = te.compute( > oshape, > lambda n, o, h, w: te.sum( > data[n, c, h * hstride + k_h, w * wstride + k_w].astype(out_dtype) > * kernel[o, c, k_h, k_w].astype(out_dtype), > axis=[c, k_h, k_w], > ), > name="res", > tag="conv2d_dense", > ) > > s = tvm.te.create_schedule(res.op) > > env = get_env() > > n_o, o_o, h_o, w_o = s[res].op.axis > c_in, h_1, w_1 = s[res].op.reduce_axis > > h_w_data = s[res].fuse(h_o, w_o) > h_w_kernel = s[res].fuse(k_h, k_w) > s[res].reorder(n_o, h_w_kernel, h_w_data, o_o, c_in) > > xo, yo, xi, yi = s[res].tile(o_o, c_in, x_factor=16, y_factor=16) > x_y_fuse = s[res].fuse(xo, yo) > data_out, data_in = s[res].split(h_w_data, 256) > > s[res].tensorize(h_w_kernel, gemm(env, 0, 16, 16, 16)) > > code = tvm.lower(s, [data, kernel, res], simple_mode=True) > print(code) And I got this after I run this program. Traceback (most recent call last): File "/home/tonywu/Documents/tvm/zte/test_con2d.py", line 53, in <module> s[res].tensorize(h_w_kernel, gemm(env, 0, 16, 16, 16)) File "/home/tonywu/Documents/tvm/zte/intrin.py", line 60, in gemm wgt_layout = tvm.tir.decl_buffer( File "/home/tonywu/Documents/tvm/python/tvm/tir/buffer.py", line 254, in decl_buffer return _ffi_api.Buffer( File "/home/tonywu/Documents/tvm/python/tvm/_ffi/_ctypes/packed_func.py", line 237, in __call__ raise get_last_ffi_error() tvm._ffi.base.TVMError: Traceback (most recent call last): 3: TVMFuncCall 2: _ZNSt17_Function_handlerIFvN3 1: tvm::tir::{lambda(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)#3}::operator()(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const [clone .isra.0] 0: tvm::runtime::TVMPODValue_::operator int() const File "/home/tonywu/Documents/tvm/include/tvm/runtime/packed_func.h", line 513 TVMError: --------------------------------------------------------------- An internal invariant was violated during the execution of TVM. Please read TVM's error reporting guidelines. More details can be found here: https://discuss.tvm.ai/t/error-reporting/7793. --------------------------------------------------------------- Check failed: type_code_ == kDLInt: expected int but got float Process finished with exit code 1 I'd appreciate it if you could help me solve this problem. Thank you! --- [Visit Topic](https://discuss.tvm.apache.org/t/data-type-error-while-using-tensorize/9530/1) to respond. You are receiving this because you enabled mailing list mode. To unsubscribe from these emails, [click here](https://discuss.tvm.apache.org/email/unsubscribe/4d76d8c96d7d4f07ca424bd0b67aff6b29b1abdf57f63ba31547953069e82c23).