Feature Cross Analysis
Purpose: Ensure new requirements are covered under GE's core execution scenarios, avoiding omissions that lead to missing functionality or abnormal behavior in some scenarios. Analyze the relationship between this requirement and the following scenarios item by item, filling in "Applicable/Not Applicable". Applicable scenarios need to provide corresponding solutions in the design section; not applicable scenarios need to explain reasons.
| Scenario | Applicability | Analysis Description |
|---|---|---|
| Static Shape | {Applicable/Not Applicable} | {Describe the impact and design points of the requirement in this scenario} |
| Dynamic Shape | {Applicable/Not Applicable} | {Describe the impact and design points of the requirement in this scenario} |
| Dynamic Shape Static Subgraph (Graph Split) | {Applicable/Not Applicable} | {Describe the impact of the requirement in mixed graph split scenarios, whether it affects split boundaries, subgraph behavior, etc.} |
| Offline Scenario (atc Compilation) | {Applicable/Not Applicable} | {Describe whether the requirement affects offline compilation flow, OM artifact structure, or serialization/deserialization} |
| Online Scenario (Framework Adaptation) | {Applicable/Not Applicable} | {Describe whether the requirement affects online compilation execution flow, interaction with Adapters, etc.} |
Analysis Guidance
- Static Shape: Does the requirement affect known shape compilation optimization (memory reuse, operator online compilation, sink scheduling)? Does it involve
runtime/v1/path? Pay special attention toDavinciModelloading/initialization/execution flow. - Dynamic Shape: Does the requirement involve operators or execution paths with uncertain shape? Does it involve runtime tiling, dynamic memory allocation? Does it involve
runtime/v2/path? Pay special attention toLoweringGlobalData,ModelConverter,LoweringFileConstantNodeand other lowering phase components. - Dynamic Shape Static Subgraph (Critical Cross Scenario): This is the most easily overlooked scenario. Static subgraphs in dynamic shape models go through v1 path via
DavinciModelKernel. Analysis points:- Data crossing v2→v1 boundary: If the requirement adds data in v2's
LoweringGlobalData, does this data need to be passed to v1'sDavinciModel? Specifically, doesCreateDavinciModelOnInitRootinstatic_compiled_graph_converter.ccneed to pass the new data as input toDavinciModelCreate/DavinciModelCreateV2kernel? - DavinciModel interface changes: If the requirement modifies
DavinciModelinterfaces (such as adding Set methods), doDavinciModelCreate/DavinciModelCreateV2inDavinciModelKernelneed to call the new interfaces? Doesdavinci_model_kernel.ccneed new KernelContext input indices? - Check method: grep
DavinciModelCreateandDavinciModelCreateV2to confirm all paths creating DavinciModel can access the new data.
- Data crossing v2→v1 boundary: If the requirement adds data in v2's
- Offline Scenario: Does the requirement affect atc compilation flow, OM file format, model serialization/deserialization? Do offline compilation artifacts need new fields?
- Online Scenario: Does the requirement affect GE's interaction with frontend framework adaptation layers (TorchAir/TF Adapter)? Does it affect
session-level compilation and execution flow?