| 4 | |
| 5 | |
| 6 | class PersistentTileSchedulerSm90: |
| 7 | @dataclass |
| 8 | class WorkTileInfo: |
| 9 | M_idx: int = 0 |
| 10 | N_idx: int = 0 |
| 11 | L_idx: int = 0 |
| 12 | is_valid_tile: bool = False |
| 13 | |
| 14 | class RasterOrder(Enum): |
| 15 | AlongM = 0 |
| 16 | AlongN = 1 |
| 17 | |
| 18 | @dataclass |
| 19 | class Arguments: |
| 20 | max_swizzle_size: int = 1 |
| 21 | |
| 22 | class Params: |
| 23 | def __init__(self, blocks_per_problem=0, log_swizzle_size=0, raster_order=None): |
| 24 | self.blocks_per_problem_ = blocks_per_problem |
| 25 | self.log_swizzle_size_ = log_swizzle_size |
| 26 | self.raster_order_ = ( |
| 27 | raster_order |
| 28 | if raster_order is not None |
| 29 | else PersistentTileSchedulerSm90.RasterOrder.AlongN |
| 30 | ) |
| 31 | |
| 32 | def __init__(self, gpu_kernel: GPUKernel) -> None: |
| 33 | self.current_work_linear_idx_ = gpu_kernel.blockRange().x + gpu_kernel.blockRange().y * gpu_kernel |
nothing calls this directly
no outgoing calls
no test coverage detected