Software Tuning, Performance Optimization & Platform Monitoring
Discussion regarding monitoring and software tuning methodologies, Performance Monitoring Unit (PMU) of Intel microprocessors, and platform updating.

Power gating Execution units of HD graphics using MSR



Is it possible to power gate execution units of HD4600 through MSRs. Like how we can vary the number of active CPUs through BIOS, I would like to know whether is there any way to vary the number of active EUs in HD graphics?  I would like to do this in linux OS


0 Kudos
1 Reply

Hello GA,

You might be able to do use the MSR MSR_PP1_POWER_LIMIT to limit the graphics power but it looks quite complicated to do and I don't know anyone who has used these registers to limit the power. See the SDM 64-ia-32-architectures-software-developer-system-programming-manual-325384.pdf section 14.9.4. MSR MSR_PP1_POLICY might change how much power graphics gets but I just don't know (haven't tried it).

If you are truly wanting to limit the number EU used, you would probably have to get the source for the Linux graphics driver (from and build it with knobs to control the Execution Units used. This sounds like a lot of work to me.

You might have more luck just trying different workloads (with different sized windows) and see how much power the RAPL MSRs say is being used by the graphics unit. Workload is constant, you can see things like the frequency of the graphics unit. I don't know how tell how busy the graphics unit is... you can tell how idle it is (see the powertop utility display) but I have a hard time figuring out how busy it is.

There is a utility intel_gpu_top which tells who busy the gpu is but, when I run glmark with intel_gpu_top, my Ubuntu 4 ivybridge system crashes so beware.


0 Kudos