Checks whether the provided tile description is valid for the given compute capability. At present, this checks the following: - Does the tile description use a number of stages supported by the compute capability in question? - Does the tile size requested fit with
(self, td: TileDescription)
| 370 | raise Exception(msg) |
| 371 | |
| 372 | def _valid_tile_description(self, td: TileDescription) -> tuple: |
| 373 | """ |
| 374 | Checks whether the provided tile description is valid for the given compute capability. At present, |
| 375 | this checks the following: |
| 376 | |
| 377 | - Does the tile description use a number of stages supported by the compute capability in question? |
| 378 | - Does the tile size requested fit within shared memory? |
| 379 | - Are cluster dimensions outside the valid range requested for a given architecture (e.g., |
| 380 | more non-unit cluster dimensions for pre-SM90 architectures)? |
| 381 | - Is the kernel schedule being used supported on the architecture in question? |
| 382 | |
| 383 | :param td: tile description to validate |
| 384 | :type td: cutlass_cppgen.backend.TileDescription |
| 385 | :return: tuple in which the first element is a bool indicating that the tile description is valid |
| 386 | and the second element is a string providing an optional error message. |
| 387 | :rtype: tuple |
| 388 | """ |
| 389 | valid, msg = check.valid_stage_count(self.cc, self.current_cc, td) |
| 390 | if not valid: |
| 391 | return (valid, msg) |
| 392 | |
| 393 | valid, msg = check.valid_cluster_shape(self.current_cc, td.cluster_shape) |
| 394 | if not valid: |
| 395 | return (valid, msg) |
| 396 | |
| 397 | return valid, msg |
| 398 | |
| 399 | def tile_descriptions(self) -> list: |
| 400 | """ |
no outgoing calls
no test coverage detected