|
1f69f580
|
2022-11-18T14:33:20
|
|
Perf tests: Add --fixed-test-time-with-warmup
Warmup trials combined with fixed-test-time was broken
recently. It was already fragile and only worked when
parameters were provided in the right order.
On Android we're relying on this combination to get steady
results without hitting thermal limits.
To address this:
- Add a new parameter that encapsulates the combination
- ASSERT that flags aren't provided in unsupported combinations
Test: python3 restricted_trace_perf.py --fixedtime 10
Bug: angleproject:7755
Change-Id: I56fce1f65d4f0538e623951163a9c8736cb3fb03
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4027282
Reviewed-by: Roman Lavrov <romanl@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
11a3e06b
|
2022-10-24T11:26:05
|
|
Android: Fix restricted_trace_perf.py
Test: restricted_trace_perf.py --fixedtime 10 --power --loop-count 5
Bug: angleproject:7755
Change-Id: Idbd2ccc73bd7409e2538346897b254403c1fd5d6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3975592
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
a41c6173
|
2022-10-16T08:28:53
|
|
Simplify trace test names.
Originally we had a lot of conditionally enabled test configs
in angle_perftests, that we enabled behind a flag because the
total runtime would be too large if we left everything enabled.
This CL switches to using a single test set, one for each
trace, and using a the same command-line API we use in dEQP
and the ANGLE samples to pick a single configuration. This
makes it easier to pick exactly what configurations you want
from the command line.
Because we only run one configuration each time, we don't need
to specialize the test name to include the configuration info.
We can also simplify TracePerfTest -> TraceTest since these
tests are run for both perf and correctness.
Old name: TracePerfTest.Run/vulkan_trex_200
New name: TraceTest.trex_200
Example for tests that don't use default arguments:
Old args: --enable-all-trace-tests
Old name: TracePerfTest.Run/native_offscreen_trex_200
New args: --use-gl=native --offscreen
New name: TraceTest.trex_200
Bug: angleproject:7755
Change-Id: Id93cf5725eff2e2c6b3b14804bc2902f38306e7e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3966535
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Roman Lavrov <romanl@google.com>
|
|
c09d1475
|
2022-10-05T14:52:40
|
|
restricted_trace_perf: Switch to --warmup-trials
Restore functionality after updates in:
https://chromium-review.googlesource.com/c/angle/angle/+/3906144
Test: restricted_trace_perf.py
Bug: angleproject:6970
Change-Id: I0632907b6dab0c0ad91536d42cac8eaf433f4da7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3936966
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
e577353d
|
2022-09-29T17:20:22
|
|
restricted_trace_perf: Sleep between tests option
In order to get the most "real world" numbers possible, we're going
to start running with clocks unlocks on Pixel devices. To avoid
thermal throttling, allow for a pause between each test.
Test: restricted_trace_perf.py
Bug: angleproject:6970
Change-Id: If3f813cf1eadab6ea56122a3945f694eed79ed9a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3936965
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
503b250a
|
2022-08-31T20:06:57
|
|
restricted_trace_perf: Use Android platform loader
With persistent shader caching enabled, we now need to run the trace
tests exclusively in "native" mode, with ANGLE as the driver. The
cache is provided via the EGL_ANDROID_blob_cache extension, and it
is only enabled using Android's EGL loader.
Test: restricted_trace_perf.py
Bug: angleproject:6970
Change-Id: If791bfe199217dcc80105b55d8769fe43ffd9739
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3868310
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
9e0a7be6
|
2022-05-11T10:08:57
|
|
Traces: Update restricted_trace_perf.py
This CL includes the following changes:
* Fixes for swapped device power rails
* Add process memory stats
* Add shared column widths
This version of the script was used for numbers
generated on 2022-05-20.
Test: restricted_trace_perf.py
Bug: angleproject:6970
Change-Id: Idb2cb9266bb6168315b53164534a10b1df47a9da
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3661363
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
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>
|
|
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>
|
|
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>
|