Helper to compute the maximum alignment of the epilogue
(max_alignment, tile, epilogue_steps = 8)
| 123 | |
| 124 | # |
| 125 | def EpilogueAlignment(max_alignment, tile, epilogue_steps = 8): |
| 126 | ''' Helper to compute the maximum alignment of the epilogue ''' |
| 127 | |
| 128 | def product(X, identity = 1): |
| 129 | result = identity |
| 130 | for item in X: |
| 131 | result *= item |
| 132 | return result |
| 133 | |
| 134 | elements_per_thread = product(tile.threadblock_shape[:-1]) // product(tile.warp_count) // 32 // epilogue_steps |
| 135 | return min(max_alignment, elements_per_thread) |
| 136 | |
| 137 | def DefaultSwizzlingFunctor(): |
| 138 | return SwizzlingFunctor.Identity8 |
no test coverage detected