undervolting (e.g. skylake) in linux

Discussion in 'Hardware Components and Aftermarket Upgrades' started by conker_ts, Aug 13, 2017.

  1. ngoonee

    ngoonee Newbie

    Reputations:
    0
    Messages:
    3
    Likes Received:
    3
    Trophy Points:
    6
    Opened an issue on github, I think the second index is your ThrottleStop profile.
     
    Vasudev likes this.
  2. jeanne.morreau

    jeanne.morreau Newbie

    Reputations:
    0
    Messages:
    1
    Likes Received:
    0
    Trophy Points:
    5
    Hey guys,

    First I gotta say thank you all for your efforts and your researchs, I've been literally waiting for YEARS for someone to write such a guide, as Intel seemed to have decided Linux wasn't worth writing the XTU thing. Anyway, I've come to share my results.

    SO my laptop is a HP Chromebook 14 with Celeron 2955U CPU, 4 years old now, and I had Linux replacing Chrome OS. Windows couldn't really be put on it, so no Throttlestop for me, I had to blindly find the suitable values. Nor could I use i7z to check the voltages since the software wouldn't recognize my hardware :

    wrmsr 0x150 0x80000011ef600000

    Set an -130mV offset to the CPU it seems if I did the right thing. It's stable for now and the benchmark performance stays the same. -140mV would instantly freeze and force to reboot.

    wrmsr 0x150 0x80000111f0a00000

    Then I set an -120mV offset to the iGPU it seems. I tried -140mV but the screen also froze, and -130mV I had little artefacts.

    Finally I set -130mV to the other voltage planes, although I had absolutely no idea whether it would do anything since I can't run Windows to check the compatibily of my CPU. Anyway everything runs perfectly fine and I put the commands in /etc/rc.local to have the undervolt on startup. Also I'd say I have a -2 or -3°C temperature difference now, not that my laptop was hot to begin with.

    EDIT : also you have to load the msr module. sudo modprobe msr or just add msr in /etc/modules on Ubuntu anyway
     
    Last edited: Nov 11, 2017
  3. JanW7

    JanW7 Newbie

    Reputations:
    5
    Messages:
    3
    Likes Received:
    2
    Trophy Points:
    6
    Thank you Thank you Thank you to conker_ts, unclewebb, _pk, tincmulc and everyone else for this thread! This is a stripe of light on the horizon for me.

    I have a Dell Precision 5520 with an i7-7820HQ and Nvidia Quadro M1200 which runs hot as hell. So with the help of this thread I can get a stable undervolt of -120mV across the five voltage planes (not fine-tuned yet). Even though it seems I didn't get too lucky with the silicon lottery, being able to undervolt is great!! I had given up on doing it under Linux on this machine and was actually thinking about reselling it.

    Under heavy load, throttling is reduced (but not eliminated, depending on load). Minimal fps on DiRT Rally Benchmark (3 loops, 1080p, high settings) is up from 23 fps (no undervolt) to 44 fps (-120mV) (average up from 61 to 63 fps). Temperatures still hit 90°C on the CPU and GPU (up to 96°C on the CPU without undervolt).

    What I do not get, is that idle temperatures do not change at all. According to i7z, my nominal undervolt of -120 mV brings voltage down from about 0.662V to 0.557V (a drop of 105mV) when the computer is idle (CPU at 800MHz). That's a drop by about 16%. Power consumption should go down by a factor of (0.557/0.662)²=0.71, which is almost 30% down. How can this not affect idle temperature? At first I was thinking this was maybe due to a steep fan curve, but the fans actually never go below 2500rpm, and stay there at idle, whether the CPU is undervolted or not, so cooling should be strictly identical. Long term idle CPU temperature is 35°C, independent of voltage (40°C with even the most minimal activity such as editing this post). What am I missing?

    The next step would be to undervolt the Nvidia Quadro M1200. Does anyone have a pointer on how to achieve that under Linux (no Windows here)? I've tried to search for GPU undervolting, and I get very few hits for Linux, most of which talk about hacking the BIOS of AMD graphics cards and none that give any detail about the procedure.

    I already repasted CPU and GPU, with little improvement.

    Thanks again to everyone for this thread! I may actually keep this laptop after all.
     
    Vasudev likes this.
  4. Vasudev

    Vasudev Notebook Virtuoso

    Reputations:
    791
    Messages:
    3,293
    Likes Received:
    1,569
    Trophy Points:
    231
    Ambient temps plays an important role. Your idle temps looks okay to me. Elevate the back of the laptop using a ventilated stand from amazon basics or Steklo X stand for maximum airflow.
    I thought Dell Precision didn't have overheating issue considering you are paying twice the cash than a gaming laptop!
     
  5. JanW7

    JanW7 Newbie

    Reputations:
    5
    Messages:
    3
    Likes Received:
    2
    Trophy Points:
    6
    I absolutely agree, Vasudev, the Precision should definitely offer better cooling for the price premium. But sadly the chassis and cooling solution really seem to be identical to the XPS. Maybe I should still consider contacting Dell support on this.

    And yes, my absolute idle temperatures might be considered acceptable (even though they increase too fast for my taste on _very_ low loads). What is surprising to me, is that there is no difference at all between undervolt and no undervolt. I repeated the idle test, trying to reduce consumption of the other components, thinking that maybe they were heating the CPU: I disabled the Nvidia graphics, unplugged the TB3->Ethernet adapter, disabled wireless network. Temps dropped to 30°C over night, and the fans actually switched off, but still no difference whatsoever between undervolted CPU and stock voltages. I guess the CPU is just doing an incredibly good job to consume close to no power at all at idle, undervolt or not, and idle temperatures are dominated by the other system components heating the chassis.

    So now that that's sort of elucidated, I guess the only hope is to undervolt the Nvidia graphics. Is there any hope for that?
     
  6. Vasudev

    Vasudev Notebook Virtuoso

    Reputations:
    791
    Messages:
    3,293
    Likes Received:
    1,569
    Trophy Points:
    231
    Maxwell GPU can't be undervolted. Do you use it for development? Which distro?
    I had these issues on my PC too, I used TLP to reduce heat on my lappie and whilst web browsing it consumes just 10W on wifi giving 7-8+ hrs on battery. I disabled Turbo boost and increased max cpu usage %age from 30-70.
    IN addition to that use powertop to tweak/calibrate sensors and power usage metrics for even more reduction in heat.
    Sadly nvidia gpu consume too much energy than Windows drivers and mine usually idles at 60C whilst CPU stays at 30-50C on light usage and fans doesn't turn on unless the cpu temps cross 85C.
    I think you can work ur GPU in headless mode and use Intel iGPU for most tasks and offload computation to nvidia card simultaneously. I'm unsure how your card works, I think it has Optimus.
     
    JanW7 likes this.
  7. JanW7

    JanW7 Newbie

    Reputations:
    5
    Messages:
    3
    Likes Received:
    2
    Trophy Points:
    6
    That's a bummer. Can't be as in "impossible to do because the hardware does not support it at all", or as in "no one has succeeded so far under Linux"?

    I plan to: this will be for Matlab / CUDA work. For now the computer is quite new and I'm still trying to set things up. And playing a few games in the meantime ;)
    I've installed Ubuntu 16.04 + KDE, because that's what I have on most of my other machines now. My main computer for development of CUDA stuff is Windows, though, so I'll have to see how much pain it is to port that part. And yes, my card has Optimus.

    I have installed powertop and TLP, but not tweaked much yet - that's still on my TODO list. As well as looking more closely at power consumption with my trusty power meter. I will have to look into the fan curve as well. Thanks for all the pointers!
     
    Vasudev likes this.
  8. Vasudev

    Vasudev Notebook Virtuoso

    Reputations:
    791
    Messages:
    3,293
    Likes Received:
    1,569
    Trophy Points:
    231
    See if you can get TCC mode or Headless mode using Nvidia drivers. Windows is simply superior to Linux in IDE support and VS simply produces a faster binary file. Linux on nvcc is fast but not comparable to Windows. For python and CUDA, Linux is somewhat better because it setups env. variable correctly w/o any hassles.
    I doubt Optimus will allow Windows like flexibility, you need to use only nvidia prime because Bumblebee and similar can't offload everything like Win 10. KDE is heavier I always use Xfce or Lxde. Personally using Xubuntu 16.04.3 with custom kernel upgrade to 4.13 official version for better battery and performance. Maybe I use teamviewer to tweak your system. Use either CUDA7.5 or CUDA 8.x
     
  9. Mr.Koala

    Mr.Koala Notebook Virtuoso

    Reputations:
    565
    Messages:
    2,293
    Likes Received:
    554
    Trophy Points:
    131
    A note for people who want a efficient Linux system under low load:

    The modern Linux kernel runs the Intel PState CPU governor on Intel platforms by default. The Intel engineers do understand their own hardware, but even the "powersave" profile is too aggressive. Try playing with CPUfreq, especially the new schedutil governor if you use the system mostly for low-load tasks like text work and normal browsing. You can get a noticeable drop in average power draw and temperature, but hardly any noticeable difference in responsiveness. Also consider making a few scripts to quickly switch among governors and settings if you plan to do heavy work from time to time. (No switching between PState and CPUfreq on the fly though.)

    On modern Intel mobile CPUs the power draw from CPU core/cache appears to only account for a small proportion of the whole-package power budget when idling. The voltage panels you're controlling simply don't do much.

    I have a Clevo W230SD whose cooling is completely passive under low/intermediate load, so there's no fan profile. I run a 100mV undervolt on core/cache/GPU and even in a room where the air temperature is well regulated by a powerful AC I can't see the difference in idle CPU temperature at all.
     
    Last edited: Nov 21, 2017 at 7:49 PM
Loading...

Share This Page