-
Notifications
You must be signed in to change notification settings - Fork 641
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Revamp Android Benchmarks #15452
Comments
@KoolJBlack and I did some debugging on Android and it is more stable to set the The mapping of cpu_id to physical core is non-intuitive and does not correspond to We'll also need to get the mappings for Pixel 6 and Motorola phones. |
I also found that |
Can't speak to GPU as I haven't run any models on it as of late. The |
This change adds the configurations of CPU pinning to the benchmark definitions. Also follows #15452 to remap multi-thread benchmarks on the 2 homogeneous big cores on Pixel 6
We've also come to the conclusion that using For Pixel 8, we've found that this set of flags is supported: We'll need to do a similar exercise on the Pixel 6 and Moto devices. @dcaballe are there steps to identify which flags to use for each device? |
This is good info! Can whoever is doing those investigations take notes along the way and contribute to documentation updates (tracked at #15487)? |
I did this manually, unfortunately ( We also talked about adding aliases to avoid carrying over a huge list of target features. Basically, we could add |
This change adds the configurations of CPU pinning to the benchmark definitions. Also follows iree-org#15452 to remap multi-thread benchmarks on the 2 homogeneous big cores on Pixel 6
Request description
Given recent changes to how cpu-features are getting picked up, we need to update the Android benchmarks.
--iree-llvmcpu-target-cpu
instead of--iree-llvmcpu-target-cpu-features
. This means no separation betweenquant
andnon-quant
models and manually adding CPU features such as+dotprod
.This does complicate the pipeline. We'll need a mapping for each phone and core used. So using a (taskset, target-cpu) tuple:
Pixel 6: (c0, cortex-x1), (30, cortex-a76), (0f, cortex-a55)
Pixel 8 Pro: (100, cortex-x3), (f0, cortex-a715), (0f, cortex-a510)
Motorola Edge+: (100, cortex-x3), (c0, cortex-a715), (30, cortex-a710), (0f, cortex-a510)
To reduce noise, let's make sure the benchmarks run on homogeneous cores. So using a (number of threads, taskset) tuple:
Pixel 6: (1, 80), (2, c0)
Pixel 8 Pro: (1, 100), (4, f0)
Motorola Edge+: (1, 100), (2, c0)
It may not be the fastest configuration but should reduce noise. We can run the fastest configurations e.g. (5, 1f0) either under
benchmark-large.yml
or theopenxla-benchmark
repo.What component(s) does this issue relate to?
Other
Additional context
No response
The text was updated successfully, but these errors were encountered: