mirror of
https://github.com/ROCm/composable_kernel.git
synced 2026-05-01 20:21:23 +00:00
There are 2 derived structs based on whether Stream-K is persistent or not. If it's persistent that means that both the data parallel and Stream-K sections are data parallel. If it's non-persistent that means that only the Stream-K section is persistent, while the data parallel section will have separate workgroups allocated for it. Both structs will have a template argument for Persistent. The 2 derived classes will inherit common variables and functions from the Stream-K TilePartitioner base class. There are additional variables for the differing data parallel sections that will be added to each derived class, that are in charge of the indexing/bookkeeping for the data parallel sections. The only additional function that will differ between the 2 structs is GridSize(), as the non-persistent will allocate extra workgroups for data parallel. Unit tests for the derived structs are included.