src/tests/restricted_traces/restricted_trace_perf.py


Log

Author Commit Date CI Message
Amirali Abdolrashidi edd331eb 2022-04-28T09:47:51 Traces: Add a device arg to restricted_trace_perf In case of multiple available devices, we can use either this argument or setting $ANDROID_SERIAL to select the device to run tests on. * Added the option to run restricted_trace_perf with more than one connected device. * The device serial can be entered either by using the --device arg or setting $ANDROID_SERIAL. If both are used at the same time, the former has more priority. * Neither is required if there is only one connected device. Bug: angleproject:6970 Change-Id: Id80398b82ea5b905f3dbfa4651d5f5246a3ccbe8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3615082 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Cody Northrop 5cffbe96 2022-03-08T14:51:11 Android: Track peak GPU memory in restricted_trace_perf We've noticed that the script reports higher memory usage than recorded with local runs with similar steps. We isolated this to ANGLE using much higher peak memory when the trace loads, but then evens out after some time, nearing parity with native. To track this for optimization, we are going to split the memory tracking into: - peak GPU memory usage - sustained GPU memory usage This CL changes the script to: * Measure peak GPU memory usage by tracking total GPU memory used throughout the trace, returning the highest. * Measure sustained GPU memory usage by tracking usage from the middle of the trace (based on run time), returning the average. * Update the frequency of memory sampling by reducing sleep to 0.25 seconds instead of 1.0 second. As a data point, here is what angry_birds_2_1500 reports on Pixel 6: Before: 602599651 bytes After: 672231424 bytes (peak) 360621537 bytes (sustained) Bug: angleproject:6970 Change-Id: I227e30abeb6a5f28fe7230a2979441c3693234f1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3511314 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Cody Northrop 3b4548bb 2022-02-02T15:19:06 Traces: Add restricted_trace_perf.py script for Android We've been using restricted_trace_perf.py to gather numbers on Android devices. The script uses angle_perftests and records: - Wall time per frame - GPU time per frame - CPU time per frame - GPU power per frame - CPU power per frame - GPU memory per frame It reports numbers to the terminal and creates a spreadsheet at the end. A typical command to run it would be: python3 restricted_trace_perf.py --fixedtime 10 --power \ --output-tag <tag> --loop-count 5 Power numbers are only available on Pixel 6 as we read directly from power rails. Also included is a gpumem shell script run on the Android device, and a power_denoising script that deactivates a number of services to reduce variance. The former is invoked automatically, the latter is only invoked by hand. Bug: angleproject:6970 Change-Id: I11fd346790565b5efcda228f43dc36dd41025642 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3432821 Reviewed-by: Roman Lavrov <romanl@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>