Kokkos::Experimental::StaticBatchSize
PR #8164
introduced Kokkos::Experimental::StaticBatchSize.
Though the default value of 1 was not intended to impact the generated code,
it unintentionally increased the register usage.
This performance regression was not caught by any performance test or reviewer,
and was only corrected in PR #9123.
This example illustrates how ReProspect could have been used
alongside PR #8164
to assert that a unit batch size leaves register usage unchanged,
catching the regression before merging.
Such a test is demonstrated in
examples.kokkos.static_batch_size.example_static_batch_size.TestStaticBatchSize.test_detailed_register_usage().
- class examples.kokkos.static_batch_size.example_static_batch_size.TestStaticBatchSizeView on GitHub
Bases:
CMakeAwareTestCase- property cubin: PathView on GitHub
- cuobjdump() CuObjDumpView on GitHub
- detailed_register_usage(cuobjdump: CuObjDump, nvdisasm: NVDisasm) dict[int, dict[RegisterType, tuple[int, int]]]View on GitHub
- classmethod get_target_name() strView on GitHub
- nvdisasm(cuobjdump: CuObjDump) NVDisasmView on GitHub
- static signature_matcher(*, batch_size: int) Pattern[str]View on GitHub
- test_detailed_register_usage(detailed_register_usage: dict[int, dict[RegisterType, tuple[int, int]]]) NoneView on GitHub
Check detailed register usage for each batch size.
Note
Once https://github.com/kokkos/kokkos/pull/9123 is merged, the
reprospect.tools.sass.decode.RegisterType.GPRcount will decrease for the unit batch size case.