d1467777c6
* Finish support for list-of-targets This finishes the work started in https://github.com/apache/tvm/pull/11173 to support 'external codegen' targets in the N build-like API surfaces. - It turns out it's ok if a build is given only a single 'external codegen' target, so remove that check in CompilationConfig::Init. When Collage builds a 'candidate partition' it does so for a single target. As far as Collage is concerned it does not care whether the target is regular (eg Target("cuda")), or for a specific external codegen (eg Target("cutlass")), it just passes the target into the build. - Add CompilationConfig::FindPrimitiveTargetForKind which I'll later need to retrieve the external codegen Target instance corresponding to a "Compiler" attribute value. - Target.update_target_host_consist was supporting three API styles: - single target - map from device type to target - map from target to IRModule (for the ir_to_runtime API) I replaced all those calls with a more specialized 'canonicalize' call: - Target.canonicalize_target_and_host - Target.canonicalize_multi_targets_and_host - Target.canonicalize_target_map_and_host In particular, all the tuning interfaces (task extraction, tuning, tuning records) all explicitly *do not* support multiple targets since the underlying code just doesn't support that. * - Lints - Revert unintended changes * - more lints * - Fix model_library_format handling of target. - Improve comments in compilation_config.h * - Lints - Update target/target_host params documentation * - Fix micro library format tests - Rev micro library format from 5 to 6 - Use Target.current() in a few places * - eta contract comprehension * - Woops, one more device: target map left - Handle host already being in Target * - lint * - lint * - Bug with append - Take device type from target * - Fix hexagon