You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Currently, ThrillerFlow implements code generation based on graph dataflow. However, a complete kernel requires not only the core data flow but also operations for variable declarations and template definitions.
In addition to the core dataflow, a complete kernel needs to declare variables at different memory levels, handle copy operations between different memory levels (usually defined as templates), and implement TileIterators for various memory variables.
Therefore, this requires a preliminary Graph Pass to traverse all the information in the graph and perform the generation.
For memory variables, it is sufficient to traverse all memory nodes in the entire graph, generating them sequentially.
For Load/Store, different templates will be constructed for different shapes. However, this part can be directly placed in the template and constructed in the configuration. In the dataflow graph, the edges between memory nodes should be declared as Load/Store operations at different memory levels.
For TileIterator, this means continuously tiling a block of memory data during the load/store process. Therefore, it is necessary to analyze the edges between memory nodes and generate the TileIterator.
The text was updated successfully, but these errors were encountered:
Currently, ThrillerFlow implements code generation based on graph dataflow. However, a complete kernel requires not only the core data flow but also operations for variable declarations and template definitions.
Taking GEMM as an example:
In addition to the core dataflow, a complete kernel needs to declare variables at different memory levels, handle copy operations between different memory levels (usually defined as templates), and implement TileIterators for various memory variables.
Therefore, this requires a preliminary Graph Pass to traverse all the information in the graph and perform the generation.
TileIterator
, this means continuously tiling a block of memory data during the load/store process. Therefore, it is necessary to analyze the edges between memory nodes and generate theTileIterator
.The text was updated successfully, but these errors were encountered: