8b445d2c00
To validate cache and memory blocks profiling, this patch prepares tests to profile dedicated kernels using specified counters, to compare the profiled results against expected ones, and further show the test is a fail or pass. Tests here are focusing on cache hit/miss, memory fetch/write size. Change-Id: Icbc8096a6e15256dec66297597a57c7665a533b8
Memory Validation Tests
The tests here are used to validate TCP and TCC. The validation focuses on the
commonly used stats like cache hit/miss, and memory traffic. The kernels used
for testing are dedicated ones, e.g., pointer chase,showing regular parrterns,
and thus providing expected stats.
The testing workflow is that:
1) dedicated kernels will be executed and profiled using the specified
counters/events in rocprofiler;
2) profiling results will be parsed using the provided scripts, and compared
against expected values (self-checking);
3) the comparion results are printed onto screen to show the test is a pass or
fail.
#### Source tree ####
- run_scripts/
- global.cfg: settings and global codes used by .sh files
- test_cache_miss.sh: test TCP/TCC miss rates
- test_fetchwrite_size.sh: test memory fetch/write sizes
- pmc_config_files/
- cache_pmc.txt: counters used for cache tests
- benches/
- test_cache/: benchmark used for cached-related tests
#### How to run ####
1) step into the test folder
$cd test/memory_validation/
2) run tests
$run_scripts/test_cache_miss.sh [TCP/TCC/TCP TCC]
$run_scripts/test_fetchwrite_size.sh
#### Known issues ####
while all tests have be thoroughly tests on Vega 10 and all show [PASS],
occasionally some tests show [FAIL]. Possbile reasons is interference onto test
benchmarks from runtime processes. You just need to run the tests again.