New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 616811 link

Starred by 5 users

Issue metadata

Status: Fixed
Owner:
Closed: Aug 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Mac
Pri: 2
Type: Bug



Sign in to add a comment

Mac GPU power tests.

Project Member Reported by erikc...@chromium.org, Jun 2 2016

Issue description

Add Telemetry tests that measure Mac GPU usage. The goal is to be able to detect 10% improvements and regressions to Mac compositing.
 
Cc: rnep...@chromium.org charliea@chromium.org
Project Member

Comment 2 by bugdroid1@chromium.org, Jun 3 2016

Initial numbers look pretty stable. There is a single spike on chromium-rel-mac11. I'm curious how the numbers will look after we get some more data.

It looks like chromium-rel-mac-hdd isn't correctly reporting mWh. nednguyen@, can you investigate?
https://chromeperf.appspot.com/report?sid=e135aad6f55383890eface86512e700155b1533d18359a7bd96e0a81625fbeb1
Screen Shot 2016-06-03 at 6.50.38 AM.png
57.6 KB View Download
Project Member

Comment 5 by bugdroid1@chromium.org, Jun 6 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/3885ecfd5ff0a486f97839089eb739a39f66960b

commit 3885ecfd5ff0a486f97839089eb739a39f66960b
Author: erikchen <erikchen@chromium.org>
Date: Mon Jun 06 22:28:59 2016

telemetry, mac: Add more simple scrolling power tests.

These tests measure the no-gpu and disable-mac-overlays cases.

BUG= 616811 
CQ_EXTRA_TRYBOTS=tryserver.chromium.perf:mac_retina_perf_cq

Review-Url: https://codereview.chromium.org/2034123002
Cr-Commit-Position: refs/heads/master@{#398143}

[modify] https://crrev.com/3885ecfd5ff0a486f97839089eb739a39f66960b/tools/perf/benchmarks/power.py
[add] https://crrev.com/3885ecfd5ff0a486f97839089eb739a39f66960b/tools/perf/page_sets/mac_gpu_sites.py
[delete] https://crrev.com/26219410e3069f9cff75c5c487d2fc2d52f8ef4d/tools/perf/page_sets/trivial_sites.py

Ping. Should this be Pri-1? If so please assign a milestone.
Labels: -Pri-1 Pri-2
There is a different in measured power consumption from MSRs, but the difference appears very small. This is at least partly due to the fact that CPU power and GPU power get lumped together. I'm going to add a GPU heavy test to see if the measured differences become larger.

Note: Lumping the three configurations (no gpu, no overlays, regular) together into a single benchmark has the problem that the three results get averaged together by default. I'm worried that if there is a 10% regression to the regular path, it will only look like a 3% regression. nednguyen, can you comment?
Screen Shot 2016-06-27 at 12.24.12 PM.png
214 KB View Download
We also have monitoring per page if that's what you want.
Project Member

Comment 10 by bugdroid1@chromium.org, Jun 28 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/4eb467453200da5ced2cf5fcc7d0a3e234b28dae

commit 4eb467453200da5ced2cf5fcc7d0a3e234b28dae
Author: erikchen <erikchen@chromium.org>
Date: Tue Jun 28 16:36:09 2016

Add a power test for blinking cursor.

Also fix the browser args, which should have been "--disable-gpu", not
"--no-gpu".

BUG= 616811 
CQ_EXTRA_TRYBOTS=tryserver.chromium.perf:android_s5_perf_cq;tryserver.chromium.perf:mac_retina_perf_cq

Review-Url: https://codereview.chromium.org/2100223002
Cr-Commit-Position: refs/heads/master@{#402487}

[modify] https://crrev.com/4eb467453200da5ced2cf5fcc7d0a3e234b28dae/tools/perf/benchmarks/power.py
[modify] https://crrev.com/4eb467453200da5ced2cf5fcc7d0a3e234b28dae/tools/perf/page_sets/mac_gpu_sites.py
[add] https://crrev.com/4eb467453200da5ced2cf5fcc7d0a3e234b28dae/tools/perf/page_sets/trivial_sites/trivial_blinking_cursor.html

Cc: shrike@chromium.org
The first two simple tests are up and running. The results are most pronounced on chromium-rel-mac-retina.

One screenshot is for a slowly scrolling page with lots of text. The other is for a blinking cursor. 

In both cases, there are 3 distinct lines for mwh:
1. The lowest is for Core Animation compositor.
2. The second is for GL compositor
3. The highest is for no-GPU.
Screen Shot 2016-07-06 at 11.06.07 AM.png
88.2 KB View Download
Screen Shot 2016-07-06 at 11.06.20 AM.png
85.0 KB View Download
The benchmark media.tough_video_cases already has a pretty exhaustive suite of tests for different types of video & audio content (which measures mwh), defaulting to the CoreAnimation compositor. Since we really only care about performance of the CoreAnimation compositor, this is sufficient for our needs.

That being said, when we look at some test pages like crowd2160.mp4, crowd1080.ogv, or crowd1080.mp4, we see that there's been no change expect for a surge between 3/17 and 5/11 (there are actually no data points in between those two points, since tough_video_cases were disabled on mac: https://bugs.chromium.org/p/chromium/issues/detail?id=595665)
Screen Shot 2016-07-06 at 11.23.24 AM.png
47.9 KB View Download
Cc: sullivan@chromium.org
sullivan: Could you point me to a reference to per page monitoring, as mentioned by nednguyen in c#9?
The monitoring config is set up as a simple path with '*' wildcards. The dashboard has both "summary" metrics and "per-page" metrics.

The "summary" metric will alert on the average of all the pages:
ChromiumPerf/*/power.trivial_pages/energy_consumption_mwh

The "per-page" metric will alert on each individual page:
ChromiumPerf/*/power.trivial_pages/energy_consumtion_mwh/*

We generally prefer "per-page" alerting because it's more accurate, and the dashboard should group alerts on the same test together, so you should get a single bug if 10 pages regress at the same time.
Oh, perfect, that does exactly what I want. Thanks for the info, sullivan!
 Issue 533174  has been merged into this issue.
Project Member

Comment 17 by bugdroid1@chromium.org, Jul 13 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/bd717794cd228563dafe102ca66cf8c614363438

commit bd717794cd228563dafe102ca66cf8c614363438
Author: erikchen <erikchen@chromium.org>
Date: Wed Jul 13 03:25:22 2016

Add 2d Canvas power test.

The test is exceedingly simple. It uses requestAnimationFrame and 2D Canvas APIs
to animate the background color of the page.

BUG= 616811 

Review-Url: https://codereview.chromium.org/2131413003
Cr-Commit-Position: refs/heads/master@{#404957}

[modify] https://crrev.com/bd717794cd228563dafe102ca66cf8c614363438/tools/perf/page_sets/mac_gpu_sites.py
[add] https://crrev.com/bd717794cd228563dafe102ca66cf8c614363438/tools/perf/page_sets/trivial_sites/trivial_canvas.html

Project Member

Comment 18 by bugdroid1@chromium.org, Jul 13 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ad659671899c8629433fc7904e109ab34f15eafd

commit ad659671899c8629433fc7904e109ab34f15eafd
Author: erikchen <erikchen@chromium.org>
Date: Wed Jul 13 16:26:40 2016

mac: Add WebGL power test

The test is exceedingly simple. It uses requestAnimationFrame and WebGL APIs
to animate the background color of the page.

BUG= 616811 

Review-Url: https://codereview.chromium.org/2143523002
Cr-Commit-Position: refs/heads/master@{#405182}

[modify] https://crrev.com/ad659671899c8629433fc7904e109ab34f15eafd/tools/perf/page_sets/mac_gpu_sites.py
[add] https://crrev.com/ad659671899c8629433fc7904e109ab34f15eafd/tools/perf/page_sets/trivial_sites/trivial_webgl.html

Project Member

Comment 19 by bugdroid1@chromium.org, Jul 13 2016

Labels: merge-merged-2795
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/bd717794cd228563dafe102ca66cf8c614363438

commit bd717794cd228563dafe102ca66cf8c614363438
Author: erikchen <erikchen@chromium.org>
Date: Wed Jul 13 03:25:22 2016

Add 2d Canvas power test.

The test is exceedingly simple. It uses requestAnimationFrame and 2D Canvas APIs
to animate the background color of the page.

BUG= 616811 

Review-Url: https://codereview.chromium.org/2131413003
Cr-Commit-Position: refs/heads/master@{#404957}

[modify] https://crrev.com/bd717794cd228563dafe102ca66cf8c614363438/tools/perf/page_sets/mac_gpu_sites.py
[add] https://crrev.com/bd717794cd228563dafe102ca66cf8c614363438/tools/perf/page_sets/trivial_sites/trivial_canvas.html

Project Member

Comment 20 by bugdroid1@chromium.org, Jul 13 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ad659671899c8629433fc7904e109ab34f15eafd

commit ad659671899c8629433fc7904e109ab34f15eafd
Author: erikchen <erikchen@chromium.org>
Date: Wed Jul 13 16:26:40 2016

mac: Add WebGL power test

The test is exceedingly simple. It uses requestAnimationFrame and WebGL APIs
to animate the background color of the page.

BUG= 616811 

Review-Url: https://codereview.chromium.org/2143523002
Cr-Commit-Position: refs/heads/master@{#405182}

[modify] https://crrev.com/ad659671899c8629433fc7904e109ab34f15eafd/tools/perf/page_sets/mac_gpu_sites.py
[add] https://crrev.com/ad659671899c8629433fc7904e109ab34f15eafd/tools/perf/page_sets/trivial_sites/trivial_webgl.html

Project Member

Comment 21 by bugdroid1@chromium.org, Jul 16 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/76bfe25ea868d0038ca850bf2839cd605a49fb26

commit 76bfe25ea868d0038ca850bf2839cd605a49fb26
Author: erikchen <erikchen@chromium.org>
Date: Sat Jul 16 01:16:25 2016

Add power test for css filter effect animation.

The test is exceedingly simple. It uses 2D Canvas to draw a gradient, then it
uses a css filter effect animation to modulate the radius of a gaussian blur
effect.

BUG= 616811 ,  581526 

Review-Url: https://codereview.chromium.org/2153913003
Cr-Commit-Position: refs/heads/master@{#405915}

[modify] https://crrev.com/76bfe25ea868d0038ca850bf2839cd605a49fb26/tools/perf/page_sets/mac_gpu_sites.py
[add] https://crrev.com/76bfe25ea868d0038ca850bf2839cd605a49fb26/tools/perf/page_sets/trivial_sites/trivial_blur_animation.html

Numbers for gifs and fullscreen video are in:

Fullscreen power shows very clear gains, about 2x reduction from no-overlays to overlays.

Gifs shows that CA compositor actually does worse than no CA-compositor!
Screen Shot 2016-08-29 at 4.34.49 PM.png
131 KB View Download
Screen Shot 2016-08-29 at 4.33.31 PM.png
175 KB View Download
Status: Fixed (was: Assigned)
I filed https://bugs.chromium.org/p/chromium/issues/detail?id=642176 to investigate GIF power usage. Otherwise, this bug is complete, as all desired test cases are measured.
"...NoGPU..." is the CA compositor case?

No, NoGPU is not using the GPU at all.
How is the graph showing CA compositor doing worse than non-CA compositor?

The problem is that the colors for the lines are too similar. the GIF graphs  (c#24, image #2), CA compositor (SharedPageState) is about 10% worse than GL compositor (NoOverlays)
Got it - thank you.

Sign in to add a comment