Lunderberg opened a new pull request, #14985:
URL: https://github.com/apache/tvm/pull/14985

   Prior to this commit, a build that used multiple targets needed to provide 
`tvm::build` with a `Map<Target, IRModule>` specifying which target should be 
used to compile each `IRModule`.  As a result, lowering passes could not 
introduce new targets based on a PrimFunc's content (e.g. a `with T.target()` 
frame to delegate out to another device), nor simplify based on cross-device 
subroutines (e.g. simplify a host-side conditional based on the known output of 
a device-side internal subroutine).
   
   This commit makes the `tvm::attr::kTarget` attribute (`"target"`) be the 
single source of truth for where a `PrimFunc` will be executed. Other existing 
methods for specifying the target (the `target` parameter for `tvm.build`, the 
keys in a `Map<Target,IRModule>`, the parameter to the pass 
`tir::transform::BindTarget`) are still accepted as inputs, and may provide a 
default value for `tvm::attr::kTarget` if the attribute is missing, but may not 
overwrite the target attribute.
   
   This is part of a series of commits to simplify the handling of multi-target 
builds.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to