Hello, I am also struggling the tvm.transform.Sequential API usage,could you please help me to understand the following code piece ?
# driver/build_module.py下面的_build_for_device函数
opt_mixed += [
tvm.tir.transform.ThreadSync("shared"),
tvm.tir.transform.ThreadSync("warp"),
tvm.tir.transform.InferFragment(),
tvm.tir.transform.LowerThreadAllreduce(),
tvm.tir.transform.MakePackedAPI(),
tvm.tir.transform.SplitHostDevice(),
]
mod_mixed = tvm.transform.Sequential(opt_mixed)(mod_mixed)
Basically my questions are:
- Where is this 2nd paramter mod_mixed passed to in the opt_mixed listed functions? The functions in the list actually does not need this IRModule param as an input.
- When I dump the final output of mod_mixed, it is a IRModule that contains Relay Expressions. But according to the doc, the tvm.tir API is used to convert Relay IR to lower IR right ? So why mod_mixed still contains the Relay Expression.
I guess that I mixed up some understandings, please help, thanks.