Update | Disabling ULPS may reduce GPU throttling on Kaby Lake G based HP Spectre x360 systems and more
Update: following an inquiry about the GPU throttling issue into HP's customer service (which did not provide a satisfactory answer or solution to our issue), we received a call today that explained why the 400 MHz bug appeared suddenly on our retail unit. As it turns out, HP calibrates all power states and clock speeds for the GPU at the factory via Windows. Once the retail unit received an update for 1803, those settings were wiped out by Windows and the GPU was thus locked to 400 MHz. It is probable that the review unit also experienced the same issue. Unfortunately, those settings are not recoverable and the only solution is to disable or enable ULPS as needed.
Last August, we reviewed the HP Spectre x360 with the i7-8705G, a unique processor that comes with a CPU, a GPU, and 4 GB of HBM2 for VRAM. On paper, it should perform about as well as a 7700HQ with a GTX 1050 or RX 560. However, in our testing we found that it barely performed better than an MX150, which is about half of a 1050. The reason was that the Vega M GPU was throttling down to just 400 MHz, not even half of the 985 MHz boost clock that it's rated for. And so, the Spectre received very poor marks for performance.
However, among the writers, we own a retail unit of the same exact laptop, and the same sort of throttling was not initially apparent on that unit. The GPU would retain its boost clock of 985 MHz in games such as Witcher 3 and was able to deliver 45-60 FPS on a blend of medium and ultra settings. However, that same unit did later exhibit the 400 MHz throttle after significant tinkering so as to increase performance.
Intel's XTU was initially suspected to have caused a power management issue, as the CPU would run at 4 GHz and the GPU at 400 MHz, a configuration which makes no sense for gaming. However, nothing changed the throttling, no matter how much the CPU's power allowance was expanded or limited, so XTU was neither a solution nor a cause of the problem. It wasn't a thermal limit either, since undervolting didn't change the throttling and even applying about a gram of brand new Kryonaut thermal paste to the CPU, GPU, and HBM2 memory did nothing except make the laptop very cool.
At that point, there was one last ditch effort to solve the problem: disabling ULPS, or ultra low power state. ULPS is an AMD setting used for configurations with multiple GPUs so that extra GPUs can be put to sleep, basically. Disabling it can help in CrossFire configurations, so the idea was that it might help here as well. Previously, ULPS was turned off and then on again during that tinkering process mentioned above, so it seemed possible that there might be a connection.
As soon as ULPS was turned off, all GPU throttling issues ceased and performance was identical to when the laptop was factory new. We ran Unigine's Valley benchmark for about a half hour to see how it would throttle, and the results are interesting. It started out with the CPU at 3.7-4 GHz and the GPU was at its max clock speed of 985 MHz. Then, towards the 6 minute mark, the CPU had dropped down to 2.6 GHz and about 3 minutes later the GPU slowly started to slip to 800 MHz. Finally, it settled in at 3.4-3.8 GHz for the CPU and 550 MHz for the GPU. To be clear, the GPU will still throttle, but only to 550 MHz, which is almost 50% faster than 400 MHz; enough to make Witcher 3, for example, playable. The unit's 3DMark scores doubled in both Timespy and Firestrike.
Disabling ULPS is as easy as installing MSI Afterburner, navigating to the settings, and under "AMD compatibility properties" finding the option to disable ULPS. This technique could also work for other AMD based laptops if they are exhibiting extreme throttling. While it could help performance, be aware that your battery life may suffer as a result. Also, keep in mind that our review sample showed throttling issues at stock settings while the retail laptop laptop did not (turning off ULPS and turning it on again probably caused the throttling), so turning off ULPS might not be necessary unless your system is actually throttling.