Dell XPS Speed Shift

Discussion in 'Dell XPS and Studio XPS' started by pressing, Oct 8, 2016.

  1. pressing

    pressing Notebook Deity

    Reputations:
    183
    Messages:
    1,432
    Likes Received:
    613
    Trophy Points:
    131
    UPDATE MAY 2018

    *** DELL HAS ENABLED SPEEDSHIFT VIA BIOS IN 9570

    - Some reporting Dell enabled SpeedShift in 2018 XPS 9370 from factory. Appears no SpeedShift options in BIOS. See steps below to confirm on your system and ideas for adjusting EPP (to tune towards performance or energy savings).

    SPEED SHIFT BACKGROUND

    One of the exciting features of Skylake processors was Intel upgrading SpeedStep with SpeedShift. This could make your CPU snappier and more efficient. I am seeing a significant jump in CPU performance & latency in extreme situations (with minor caveats).

    A good summary of Speed Shift is published by Anandtech:

    http://www.anandtech.com/show/9751/examining-intel-skylake-speed-shift-more-responsive-processors

    Recent XPS 13 & 15 laptops (Skylake & Kaby Lake) should all be ready to run SpeedShift:

    - 9570 ==> Dell enabled SpeedShift by default in recent BIOS update
    - 9350 ==> Dell enabled SpeedShift by default in recent BIOS update
    - 9560, 9360, 9550 ==> Dell disabled SpeedShift by default (see how to enable below)

    ==> XPS KABY LAKE users update <<==
    read this guide & special section below. Then read thread before beginning research


    HOW TO ENABLE SPEEDSHIFT ON XPS
    Dell Enabled SpeedShift on new 9570 via BIOS.

    http://forum.notebookreview.com/thr...-its-predecessors.816824/page-4#post-10731554

    Whilst Micro$oft enabled SpeedShift November 2015, Dell has not yet supported SpeedShift via a BIOS update in all systems. And in March 2017, Dell Engineering stated they will not officially enable SpeedShift on the 9550 & 9560:

    ==> Regardless of Dell's official support, there are a few ways to enable SpeedShift:

    1. Download ThrottleStop 8.40 or newer software
    The ThrottleStop Guide

    2. Apparently write 1 to MSR 0x770

    HOW TO SEE IF SPEEDSHIFT IS ENABLED
    You can download HWiNFO64, which indicates SpeedShift is enabled when the letters "SST" are green (not red).

    You can also open up the ThrottleStop TPL window and see if the Speed Shift option has a check mark beside it. If Speed Shift is checked and can no longer be toggled off, that means Speed Shift is enabled

    *** Note, after my laptop is powered down I need to relaunch ThrotteStop 8.30 to re-enable SpeedShift.

    PERFORMANCE IMPROVEMENTS W/ SPEEDSHIFT
    ThrottleStop 8.30 was released this week and I am seeing a significant jump in CPU performance using the new SpeedShift features.

    There are now three key variables to adjust on SpeedShift in ThrottleStop 8.30:

    EPP: 0 to 255
    Min: 1 to 32
    Max: 1 to 32

    * EPP is "energy performance preference" (which some quote in range of 0-100 or 0-64 etc so be careful). Low (0) is higher performance, high (255 here but 100% or 64 on some systems) is energy savings

    * EPP seems to be the feature that boosts the performance; I only saw minor improvements in ThrottleStop 8.20 (which did not have EPP)

    * For min/max ranges, my CPU only goes to 3.2ghz so you may adjust the "32" upwards to 35 for 3.5ghz processors (etc) I suppose.

    * Setting Min & Max both to 32 seems to disable EPP and does not provide me with "best performance"

    The "best performance" settings for me (on 3.2 ghz turbo max on i5 6700HQ) were:
    EPP: 0
    Min: 1
    Max: 32

    My testing is using a digital piano that calls up very large samples in real time. Latency is critical. When the CPU falls behind, one typically hears clicks and pops from the CPU stuttering. The typical solutions include getting a faster CPU, slowing down the data, shrinking the data packages; or try SpeedShift...

    Using ThrottleStop 8.30 with above "best performance" SpeedShift settings, I could run very aggressive samples with no stuttering. However, after ~10 minutes the stuttering returned so still investigating there...

    WILL EPP~50% REDUCE CPU SPEEDS?
    Intel seems to recommend laptop makers to set default EPP in the 50% (or 128 [of 255]) range for a balance of power and energy use.

    - 9550 i7 - GoNz0 confirmed max CPU speeds can be reached with EPP=50% and EPP=65% (p.14).
    - 9550 i5 - my CPU hits max speeds with EPP=50% but has slightly reduced CPU speeds at EPP=65%. I use about 30% (or 78/255) for a performance tilt based on UncleWebb's recommendations
    - 9560 i7 - Rockstar confirmed max CPU speeds can be reached with EPP from 0% to 75% (p. 14)
    - 9560 i7 - GoNz0 confirmed max CPU speeds can be reached with EPP from 0% to 40% (http://forum.notebookreview.com/thr...5-9560-kaby-lake.802345/page-21#post-10580298)
    - 9360 - EFI hack reported to work by Hakujou Sep 2017 (see below)


    We had better results with SpeedShift EPP than Uncle Webb did with a different Kaby Lake computer:


    9560 & 9630 - KABY LAKE?


    9560 users have reported that Dell has disabled SpeedShift in Kaby Lake machines. I have enabled SpeedShift with ThrottleStop on a 9560 i7 7700HQ.

    Use caution editing MSR-BIOS on Kaby Lake as there are some differences.

    A. That said, RockStar posted success activating SpeedShift on 9560 (7700HQ) via RWEverything:

    B. For BIOS fixers

    1- RockStar used Goodwin's codes to provide step-by-step instructions below. He also confirmed this worked on his 7700HQ

    2- GoNz0 posted similar step-by-step instructions (linked below)

    3. Hakujou posted EFI specifically for the 9360 (linked below)

    4- Goodwin did the ground work to figure out and document the 9560 codes for us below (thanks!); his post and comments are below

    5- tiger501 provided a tutorial for some advanced options in 9550 BIOS (post and link below)


    ==>GonZ0's Step-by-Step post
    http://forum.notebookreview.com/threads/xps-15-9560-owners-thread.800611/#post-10440059


    ==>Hakujou's EFI variables for 9360

    OTHER INTERESTING SPEEDSHIFT REFERENCES
    http://www.pcper.com/reviews/Proces...sted-Significant-User-Experience-Improvements

    Direct way to enable SpeedShift manually on XPS 9550
    https://forums.anandtech.com/threads/intel-speed-shift-technology-mia.2463727/page-2
    http://rweverything.com/
    >CPU 1
    >WRMSR 0x770 0x0 0x1

    Powercfg command line options - parameters from M$
    https://msdn.microsoft.com/en-us/library/windows/hardware/mt644885(v=vs.85).aspx

    Task scheduler primer
    http://www.digitalcitizen.life/use-task-scheduler-launch-programs-without-uac-prompts

    Sample powercfg and GUI instructions by jntfoster & technical detail by fo3nx (for SP4)
    http://answers.microsoft.com/en-us/...e/a20f481a-fe3d-4e15-b0b5-ea11f8c62795?page=8

    Intel SpeedShift technical doc (around page 474)
    http://www.intel.com/content/dam/ww...eveloper-system-programming-manual-325384.pdf


    **Some references help with writing MSR. Also see UncleWebb's detailed comments below

    Package C-State fix for improved battery life & thermals?

    For those interested in potentially improving battery life and thermals. It appears that some laptops (including the XPS 15) can not enter deep Package C-States due to issues with IDE ATA/ATAPI control driver from M$.

    One way to check is via ThrottleStop (free monitoring software):

    - exit all other programs

    - click the button at the bottom of the panel labeled "C8" or similar

    - Look at section labeled "Package C State Percentage"

    --- Before, with M$ driver, my system was showing say 80% stuck no higher than C2

    --- After, with updated Intel driver, my system was showing say 80% in deeper C States (e.g. C8)

    Special thanks to @Che0063 and @CraftyClown who identified issues and found a simple solution. So hopefully they will draft a guide as they do more testing and have some time. More details on issue and fix are linked below:

     
    Last edited: May 19, 2018
    abujafar, van_on, Che0063 and 11 others like this.
  2. Nocchi

    Nocchi Notebook Enthusiast

    Reputations:
    2
    Messages:
    10
    Likes Received:
    1
    Trophy Points:
    6
    I did some simple tests on my i7 XPS 9550 using TS 8.30 with the latest Windows 10.
    With EPP set to 0, i noticed that the CPU is stuck at a quite high frequency; with EPP set to 255, i got an opposite result; if i set EPP to a value above 128, the CPU won't hit the highest frequency.
    I'm an Android programmer, so i measure the possible performance improvement using Android Studio 2.2, observing the cold start time. I didn't notice the start time had significantly decreased.

    FYI: I set min to 1 and max to 35
     
  3. pressing

    pressing Notebook Deity

    Reputations:
    183
    Messages:
    1,432
    Likes Received:
    613
    Trophy Points:
    131
    Nocchi, is "cold start time" a good measure of CPU performance or a better measurement of SSD performance?
     
  4. unclewebb

    unclewebb ThrottleStop Author

    Reputations:
    6,066
    Messages:
    5,055
    Likes Received:
    2,678
    Trophy Points:
    331
    Speed Shift allows the CPU to go from minimum speed to maximum speed approximately 100 ms faster compared to the Windows Balanced power profile. During some short tasks, that might make a significant difference. If you use a benchmark test takes 20 seconds, 100 ms only represents 0.5% of the duration of the benchmark. For the other 99.5% of the time, the CPU will be running at the exact same speed whether Speed Shift is enabled or not. This is why the majority of traditional benchmarks do not show any measurable difference in performance. For longer benchmarks, there isn't any difference.

    To see if Speed Shift is enabled you can use HWiNFO but you can also open up the ThrottleStop TPL window and see if the Speed Shift option has a check mark beside it. If Speed Shift is checked and can no longer be toggled off, that means Speed Shift is enabled.

    With the latest versions of Windows 10, you should be able to go into the Control Panel Power Options and toggle Speed Shift on and off as well as adjust the Energy Performance Preference value. The register in the CPU can be adjusted from 0 to 255 but most things in the Power Options are scaled so the range there will be 0 to 100. If these options are not visible in Power Options, they might be part of the hidden settings.

    @pressing - Thanks for posting those links. Speed Shift disables some common throttling methods that manufacturers use so some of the performance improvements you are seeing might be because of that. In theory, you should be seeing maximum performance and minimum latency when your CPU is running at its maximum speed. If it has some throttling issues, Speed Shift might not cure the problem but perhaps it can delay the inevitable slow down. Why not turn on the ThrottleStop Log File option while testing so you have a record of what the CPU multiplier is doing.

    @Dufus used to use a graphing tool that he wrote that I think could measure the CPU multiplier in 1 ms intervals. That data would be interesting when testing out Speed Shift. I might have to build something similar. :)
     
    duttyend, Arondight and pressing like this.
  5. pressing

    pressing Notebook Deity

    Reputations:
    183
    Messages:
    1,432
    Likes Received:
    613
    Trophy Points:
    131
    Thanks for visiting UncleWebb!

    With SpeedShift enabled, I ran a ThrottleStop log file for 5 minutes until the crackling started. Didn't see much in variance; the multipliers were pegged around 30-31x, temps were 35-40*C, etc

    I did try all sorts of combinations of BIOS (disabling c-states, turbo, SpeedStep) disabling SpeedShift in ThrottleStop to no avail. One discovery was that disabling the turbo (only) resulted in a major increase in crackling

    Also, LatencyMon seemed to show decent results. Except driver Wdf01000.sys (kernal mode driver framework runtime) may be a problem (high TOTAL execution time). I don't think I can disable that unfortunately so will keep hunting around.
     
  6. Nocchi

    Nocchi Notebook Enthusiast

    Reputations:
    2
    Messages:
    10
    Likes Received:
    1
    Trophy Points:
    6
    CPU performance matters. When i had "Power Saver" option checked in TS, the start time of Android Studio would significantly increase (of course with SST disabled).
    And after reading some articles and unclewebb's post, i'm aware that SST won't bring any performance improvement if CPU has already been running at a high frequency. Based on my tests and your post (set EPP to 0), i guess that you feel SST boosts the performance because your settings keeps the CPU running at the highest frequency.
     
    pressing likes this.
  7. pressing

    pressing Notebook Deity

    Reputations:
    183
    Messages:
    1,432
    Likes Received:
    613
    Trophy Points:
    131
    Thanks for your post Nocchi...

    I spent some time trying to figure out what the buttons on ThrottleStop were doing but am still working them out. It seems that "Power Saver" might be suboptimal for modern processors. That said, the developer UncleWebb, can't test everything and Intel has a lot of secrets that are not public. So he recommended users spend some time testing ThrottleStop to find optimal settings for their systems:


    Good point on setting EPP to 0. Not really sure what is going on...
    - The virtual piano software CPU Usage spikes when notes are played but is otherwise quite low.
    - On the face of it, if we keep the Idling at a high frequency, it seems SST should not provide improved performance.
    - Maybe SST is allowing the CPU to fully ramp up to "higher wattage" Usage spikes more rapidly (?)

    Regardless, the virtual piano software performs significantly better with SpeedShift enabled (for a while!)
     
  8. Techland

    Techland Notebook Consultant

    Reputations:
    12
    Messages:
    151
    Likes Received:
    35
    Trophy Points:
    41
    > With the latest versions of Windows 10, you should be able to go into the Control Panel Power Options and toggle Speed Shift on and off as well as adjust the Energy Performance Preference value.

    I thought I am on the 'latest' version - I can't find such a setting anywhere. And wouldn't it mean that Dell does not need to update their Bios anymore to make the 9550 Speed Shift ready? Confused...
     
  9. pressing

    pressing Notebook Deity

    Reputations:
    183
    Messages:
    1,432
    Likes Received:
    613
    Trophy Points:
    131
    Windows provided support for SpeedShift in Nov 2015. For the SpeedShift setting to be enabled on the the 9550 via control panel power options, Dell needs to provide SpeedShift support (presumably via a BIOS update we are waiting for).

    You can get around Dell's bad user support by writing 1 to MSR 0x770 or using ThrottleStop 8.30, for example...
     
    Techland likes this.
  10. unclewebb

    unclewebb ThrottleStop Author

    Reputations:
    6,066
    Messages:
    5,055
    Likes Received:
    2,678
    Trophy Points:
    331
    Adding Speed Shift Control to the Windows Power Options

    Before starting, I would check to see if these options are already part of your Windows Power Options. In Windows 10, to open up a command window with Admin privileges, hold down the Windows key on the keyboard and then press X to pop open the window. Let go of those keys and press A for the Command Prompt (Admin) option.

    To query your power options type in

    powercfg -qh >C:\report.txt

    This command creates a lot of information so I redirect the output (>) to a file called report.txt which will be located directly on my C: drive. You can redirect the output wherever you like. The -q option stands for query and the h part of that option will show hundreds of hidden settings. Search that file for the 3 Speed Shift related entries.

    (Processor energy performance preference policy)
    (Processor autonomous activity window)
    (Processor performance autonomous mode)

    If any of those 3 are missing, copy and paste each powercfg command into the command window and press enter. After you are done adding those, I would reboot.

    Balanced Profile

    (Processor energy performance preference policy)
    Code:
    powercfg –setacvalueindex SCHEME_BALANCED SUB_PROCESSOR 36687f9e-e3a5-4dbf-b1dc-15eb381c6863 50
    powercfg –setdcvalueindex SCHEME_BALANCED SUB_PROCESSOR 36687f9e-e3a5-4dbf-b1dc-15eb381c6863 50
    (Processor autonomous activity window)
    Code:
    powercfg –setacvalueindex SCHEME_BALANCED SUB_PROCESSOR cfeda3d0-7697-4566-a922-a9086cd49dfa 0
    powercfg –setdcvalueindex SCHEME_BALANCED SUB_PROCESSOR cfeda3d0-7697-4566-a922-a9086cd49dfa 0
    (Processor performance autonomous mode)
    Code:
    powercfg –setacvalueindex SCHEME_BALANCED SUB_PROCESSOR 8baa4a8a-14c6-4451-8e8b-14bdbd197537 1
    powercfg –setdcvalueindex SCHEME_BALANCED SUB_PROCESSOR 8baa4a8a-14c6-4451-8e8b-14bdbd197537 1
    High Performance Profile

    (Processor energy performance preference policy)
    Code:
    powercfg –setacvalueindex SCHEME_MIN SUB_PROCESSOR 36687f9e-e3a5-4dbf-b1dc-15eb381c6863 50
    powercfg –setdcvalueindex SCHEME_MIN SUB_PROCESSOR 36687f9e-e3a5-4dbf-b1dc-15eb381c6863 50
    (Processor autonomous activity window)
    Code:
    powercfg –setacvalueindex SCHEME_MIN SUB_PROCESSOR cfeda3d0-7697-4566-a922-a9086cd49dfa 0
    powercfg –setdcvalueindex SCHEME_MIN SUB_PROCESSOR cfeda3d0-7697-4566-a922-a9086cd49dfa 0
    (Processor performance autonomous mode)
    Code:
    powercfg –setacvalueindex SCHEME_MIN SUB_PROCESSOR 8baa4a8a-14c6-4451-8e8b-14bdbd197537 1
    powercfg –setdcvalueindex SCHEME_MIN SUB_PROCESSOR 8baa4a8a-14c6-4451-8e8b-14bdbd197537 1
    These options are hidden by default in Power Options. After you have rebooted, open up the command window again with Admin privileges and enter the following 3 commands so these new entries show up in Power Options.

    To show these new settings in Power Options

    Code:
    powercfg –attributes SUB_PROCESSOR 36687f9e-e3a5-4dbf-b1dc-15eb381c6863 -ATTRIB_HIDE
    powercfg –attributes SUB_PROCESSOR cfeda3d0-7697-4566-a922-a9086cd49dfa -ATTRIB_HIDE
    powercfg –attributes SUB_PROCESSOR 8baa4a8a-14c6-4451-8e8b-14bdbd197537 -ATTRIB_HIDE
    After this, open up your Power Options, scroll down to Processor power management and there should be some new options in there. I believe that "Autonomous mode" is what Microsoft calls Intel Speed Shift. If you ever need to hide these options just change the minus sign (-) before ATTRIB_HIDE to a plus (+) sign in the above 3 commands.

    With Autonomous mode enabled, check with HWiNFO to see if SST is displayed in green. In theory, you will have to set this option to Disabled and then you will have to reboot to disable Speed Shift.

    I do not yet know if a bios update is needed or if Windows Power Options can be used to set MSR 0x770 to 1 to enable Speed Shift. Depending on what you guys find out, it would be easy to create a small .bat file so adding all of these options to Windows could be done in one simple step.
     
    917er, leader288, duttyend and 2 others like this.
Loading...

Share This Page