> One thing I'd like anwsered here what sort of control it will allow on the 
> passes run there : MergeComposite, AnnotateTarget, MergeCompilerRegions and 
> ParititionGraph.

So far we had planned to standardize on MergeComposite, AnnotateTarget, 
MergeCompilerRegions and ParititionGraph. To get a better overview I extracted 
the partitioning flows of existing BYOC targets:

|BYOC Backend    | Pre Partition Passes                                         
                           |  Partition                                         
                          |  Post Partition Passes                              
                                       |
|----------------|-----------------------------------------------------------------------------------------|------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------|
|arm_compute_lib | InferType,                                                   
                           |  MergeComposite, AnnotateTarget, PartitionGraph    
                          |                                                     
                                       |
|bnns            | InferType, FoldConstant, FoldScaleAxis, DynamicToStatic, 
AlterOpLayout, FoldConstant,   |  MergeComposite, AnnotateTarget, 
PartitionGraph                              |                                   
                                                         |
|cmsisnn         |                                                              
                           |  MergeComposite, AnnotateTarget, PartitionGraph,   
                          | GenerateCMSISNNConstants, ScalarToTensorConstants, 
ExtractConstantsFromPartitionedFunction |
|cutlass         | SimplifyInference, FoldConstant, FoldScaleAxis,              
                           |  MergeComposite, AnnotateTarget, PartitionGraph    
                          |                                                     
                                       |
|dnnl            |                                                              
                           |  MergeComposite, AnnotateTarget, 
MergeCompilerRegions, PartitionGraph        |                                   
                                                         |
|ethosu          |                                                              
                           |  MergeComposite, AnnotateTarget, 
MergeCompilerRegions, PartitionGraph,       |   preprocess_ext_io               
                                                         |
|tensorrt        | RemoveDropoutPass, RemoveUnusedFunctions, ConvertLayout, 
FoldConstant,                  |  AnnotateTarget, MergeCompilerRegions, 
PartitionGraph                        |                                         
                                                   |
|vitis_ai        | RemoveUnusedFunctions, ConvertLayout, FoldConstant, 
InferType,                          |  ("VitisAIAnnotationPass"), 
MergeCompilerRegions, PartitionGraph,            |   RemoveUnusedFunctions, 
ConvertLayout, FoldConstant                                       |

Looking at the existing backends it might make sense to make 
MergeCompilerRegions optional. We probably do not want to support custom 
compiler annotations as used in `vitis_ai` target. 

-- 
Reply to this email directly or view it on GitHub:
https://github.com/apache/tvm-rfcs/pull/60#issuecomment-1066897007
You are receiving this because you are subscribed to this thread.

Message ID: <apache/tvm-rfcs/pull/60/c1066897...@github.com>

Reply via email to