Do you consider yourself a PC enthusiast? Downloading the latest drivers the moment they're available, running custom tools to access hidden settings and overclocking your components to get the best bang for your buck? We'll, here's one tale that goes above and beyond your average tweaking session.
Late last year I upgraded from an aging Dell M1330, powered by an Intel Core 2 Duo and GMA 965, to an ASUS UX32VD with an Ivy Bridge i7 and discrete NVIDIA 620M GPU. Night and day in terms of performance? More like the darkest moments of Pluto compared to the burning internals of the Sun.
And comparing the UX32VD to the Sun is very apt... it's one hot-running ultrabook. A CPU temperature of 90 degrees C is common when under load.
90 degrees. The Penryn in my M1330 is lucky to hit 70. Though the CPU in the M1330 is undervolted, which helps a lot.
With the Core 2 series of CPUs, it was possible to directly modify the voltage levels at each multiplier step using an application called RMClock. With the arrival of Intel's i3/i5/i7 models, this functionality was removed.
Notebooks are not well-known for being tweak-friendly. BIOSes tend to be locked down, fans cannot be controlled via software and your options are limited when it comes to frequency adjustments, be it for reducing heat or overclocking. There's a good reason for this -- ignoring desktop replacements, notebooks are designed to provide the best compromise between portability, performance, heat and noise and getting this balance right involves intelligent engineering.
A few wrong settings and you could cook the device and unlike a desktop, it's much, much harder to replace individual components, as they tend to be soldered onto the motherboard. The introduction of ultrabooks has only exacerbated the problem.
Dealing With The CPU Using ThrottleStop
I've previously discussed how to tame a hot Sandy or Ivy Bridge CPU using ThottleStop. It's not as powerful as configuring voltage levels, but you can reduce the thermal power limits on the processor so it throttles more frequently without disabling Turbo Boost altogether. With the right tweaking, it's possible to cut a good 10 degrees C off your CPU temperatures without a massive drop in performance.
Still, the CPU isn't the only source of heat in the UX32VD. There's that fiery 620M to worry about too...
Handling A Throttle-Happy Discrete GPU
Along with a 1920 x 1080 IPS screen -- perhaps the best screen I've seen on a Windows notebook -- the UX32VD comes with NVIDIA's 620M mobile GPU. It's based on the company's older Fermi architecture, but includes a die-shrink to 28nm and a few enhancements from the newer Kelper design.
The problem is it's still a hot little bugger. Even at standard clocks, it can hit 85 degrees -- the trigger point for its automatic throttling system, which drops the clocks and kills performance. Excellent when you're not doing anything demanding but, of course, when else would this safety mechanism kick in other than when you're playing a game or running some other graphics-intensive task?
What compounds the heat issues is the locality of components -- as the CPU gets hotter, so does the GPU and vice-versa. They also share a common heat pipe, which naturally distributes the heat.
So, to get the GPU running at more comfortable temperatures, we have to get the CPU running cooler too. This is something we've already accomplished, so let's look at how I convinced the GPU to pull its weight.
Power States, Custom Programs And Voltage
Modern GPUs -- including NVIDIA's -- are capable of adjusting clock speeds and voltages in response to workloads, just like CPUs do. Browsing the web and typing documents, the GPU will run at lower speeds. Fire up Battlefield 3 and watch the GPU wind up to its maximum clocks.
And like CPUs, you can change the voltages pumped into the hardware. This is possible via two methods -- a piece of software like MSI Afterburner or EVGA Precision (that at their core are identical programs), or modifying the GPU BIOS and editing the voltages directly. Unfortunately, because of Optimus, the technology that allows notebooks to switch between Intel's graphics hardware and NVIDIA's, the GPU BIOS is baked in the notebook's BIOS and difficult to edit. As for the aforementioned tweaking programs, most notebooks (and quite a few desktop cards) don't allow control of the voltage.
But there is a way to get the hardware to use lower voltages. But it is exceptionally convoluted.
It took about a week of trial and error to discover this trick and I have no idea if it works with other mobile NVIDIA chips, but it does work for the 620M in the UX32VD, on driver versions before 310.90 (the latest as of 19/1/2013).
Using its default power-optimisation logic, the 620M will happy eat around 1.025V when it's under load, but can idle as low as 0.85V. While this doesn't sound like that large a difference, this can easily add 10 degrees to the GPU's temperature. However, if you disable NVIDIA's power logic, called "PowerMizer", using a handy utility called PowerMizer Manager, the 620M will happy work under load, even massively overclocked, on a paltry 0.9V. Perhaps NVIDIA thought it wiser to pump a healthy voltage into the chip to assure stability, but the side-effect is a significant boost to temperatures.
Disabling the power logic comes with a downside -- the GPU will never go into a low-power mode and will constantly run at higher clocks. As long as the GPU isn't doing anything, this doesn't increase idle temperatures that much, but it does mean that even the most basic task will be done in the hardware's high-performance mode and that will up the average idle temperatures when doing non-demanding activities.
The solution, at least for me, was to code up a program that remains active and monitors the GPU's load (see right). When it detects the GPU is under load for more than a few seconds, it forces the GPU into its high-performance mode using a command line call to nvidiaInspector, a nifty application capable of switching the power-state of the GPU. When no load is detected, it again waits a few seconds to make sure the GPU is definitely idle and then changes back to the low-power profile.
If it seems like a complicated solution, that's because it is. But thanks to this set-up, I can not only play games on my notebook without fear of throttling kicking in, but I've been able to overclock the GPU's core by 20 per cent and the memory by about 30 per cent, with the latter providing noticeable gains due to the small 64-bit memory bus.
The annoying thought I have about the situation is that, when correctly configured, these hot-running ultrabooks can operate at saner temperatures while still delivering excellent performance. True, I have made the situation worse by opting for a dedicated GPU, but honestly, we're fast reaching the point where great mobile GPUs should be expected, especially with the focus on smartphone and tablet hardware pushing vendors in the direction of cool, low-power technologies.
Have any epic stories of tweaking you'd care to share? I'd feel a lot better if I knew I wasn't the only one who goes to such lengths to get the best out of my hardware.