Directly build relax model may occur “Did you forget to bind" hints,as there is no default schedule in model。
MLC-LLM tend to use DefaultGPUSchedule(),such as:
mod_transform = tvm.tir.transform.DefaultGPUSchedule()(mod_transform)
but in tvm-unity test demos,and mlc.ai website, tend to encourage users to write tvmscript and bind variable to thread manually, such as
@tvm.script.ir_module class MyModuleVecAdd: @T.prim_func def main(A: T.Buffer((1024,), “float32”), B: T.Buffer((1024,), “float32”), C: T.Buffer((1024,), “float32”)) → None: T.func_attr({“global_symbol”: “main”, “tir.noalias”: True}) for i in T.grid(1024): with T.block(“C”): vi = T.axis.remap(“S”, [i]) C[vi] = A[vi] + B[vi]
I wonder which approach will be mainstream in the future?