Red Hat Developer Manages Full Clock-Gating For Kepler With Nouveau

Following lots of reverse engineering, rewrites, and tracing the behavior of the NVIDIA proprietary driver, Lyude has implemented all known levels of clock-gating for Kepler1/Kepler2 GPUs. Lyude was also working on Fermi GPU support, but its clock-gating is being handled differently and currently that code isn't yet ready.
When this Kepler clock-gating code lands for Nouveau it will initially be disabled by default, but can be turned on with the config=NvPmEnableGating= kernel module parameter where the value is from 0 to 3 for indicating the level of power-savings to enable. This clock-gating isn't being enabled by default until more widespread testing has happened to ensure there isn't any fallout / stability issues.
The initial results shown in the patch series indicates this clock-gating can shave several Watts off the GPU power consumption. It's too late for this code to be merged to DRM-Next for Linux 4.16, but hopefully we'll see it bundled for Linux 4.17.
This Kepler clock-gating code that comes in at over one thousand lines of code isn't Red Hat's only Nouveau work right now... Longtime Nouveau contributor Karol Herbst who recently joined Red Hat has been working on NIR/SPIR-V support for Nouveau in an interesting compute (and potentially Vulkan) play. It will be interesting to see where Red Hat's Nouveau investment leads.
24 Comments