Guide: Optimizing Windows 10 Intel laptops/notebooks

Share your favorite Ableton Live tips, tricks, and techniques.
Post Reply
contortrix
Posts: 40
Joined: Wed Apr 23, 2014 3:09 pm

Guide: Optimizing Windows 10 Intel laptops/notebooks

Post by contortrix » Tue Dec 22, 2020 11:14 pm

Summary
These recommendations are specifically for the set of Live users that use:
  • A notebook / laptop
  • running Windows 10
  • on an Intel CPU from the last ~5 years or newer
These are recommendations for optimizing performance specifically for Ableton Live and similar audio applications. These are not recommendations for overclocking, nor for optimizing battery life. The goal is consistent performance. The end result of performing all of the actions I recommend below include a CPU locked to a static speed, with Turbo disabled, and most C-states disabled.

Background / Context
CPU technology in particular has become extremely complex. Optimization these days must go beyond simply over/under-volting or over/under-clocking by changing your CPU multiplier (e.g., from 26x 100MHz = 2.6GHz to 32x = 3.2GHz). Your CPU no longer has a single TDP (thermal/power rating expressed in watts), but has a set of ranges in which different levels of power draw and heat are allowed before throttling back to lower speeds (e.g., hitting 90C at 3.2GHz and drastically clocking down to 800MHz). CPUs no longer have a few states like "high, low, sleep, off", but instead may constantly switch between different states, increasing latency and making performance unpredictable.

GPU technology has followed a similar path: optimization of thermals, power draw, and performance are tied to each other in a three-way balancing act. An undervolt + overclock made while idle may be totally ignored - or even make things worse - at load.

In short, optimizing your Windows 10 machine for anything - not just audio applications live Ableton Live - has become much more complicated than it was 5-10 years ago. Some of the complexities can take years to learn, and the specific hardware of your personal machine could force you to perform hours of trial and error trying to tweak generic values to fit your specific hardware.

My recommendations here are based on the extensive research and time spent tuning my Intel-based Windows 10 laptops/notebooks. The recommendations I make here are specifically for Ableton Live and similar latency-sensitive audio processing tasks. I have proven these recommendations for, e.g., streaming to Twitch on a desktop i7, in addition to testing them on several laptops/notebooks.

These recommendations are specifically for the set of Live users that use:
  • A notebook / laptop
  • running Windows 10
  • on an Intel CPU from the last ~5 years or newer
If anyone has recommendations that they can back up with data (screenshots of settings, graphs showing the A/B testing results), I am interested in the OS X and AMD equivalents of the tools and optimal settings for those platforms.

To pre-emptively answer the question of why anyone should trust anything I'm saying:
I have been building, optimizing, and hacking computers since I was a child, and have never stopped. I legitimately do not know how many computers I have built, including notebooks, servers, and desktops of all sizes. I stopped counting after the first hundred or so.
I am an early adopter / guinea pig for some of the most extreme notebook hardware out there. (You know when you see something like the RoG Mothership or Eurocom Sky, and think "who even wants this"? It's me.) I push my hardware to the extremes, and love to test the limits.
I have designed, tested, built, and deployed hundreds or thousands of servers for companies that I would name here if they all weren't so famous and/or niche that I'd be doxxing myself. The one I'll name is AWS, where I developed multiple server hardware platforms to optimize Intel-based servers for niche use cases.

Recommendations
First off, a list of things not to do / tools not to use. Something that worked 5-10 years ago might not improve things today; and in fact, old best practices might make things worse in a modern-day setting. This list is not exhaustive; it's just the 80/20 of the most common issues I see in the wild.
  • Prime95 = Do not use this to stress-test or benchmark your CPU. It is purpose-built for a specific use that isn't applicable to day to day workloads on normal computers doing things that aren't specifically searching for new prime numbers. Prime95's stress tests create extreme artificial loads on your CPU that will at best give you meaningless stats, and at worst shorten your CPU's lifespan.
  • Defragging = Absolutely do not defragment your SSD storage. If you are using an SSD, fragmentation is not a thing. SSDs do not have a moving read head that needs to jump around on a moving platter in order to read fragmented files. Attempting to defragment an SSD has zero positive effects, and will just thrash your SSD for no reason, shortening its lifespan. I know that the official Ableton Live documentation recommends defragging; they need to put an "only use this on HDDs" warning on this section!
  • HDDs = If you are still storing any of your samples, Live installs, etc. on HDDs, plan to switch to at least a budget SATA SSD; the cost difference is small, but the performance and reliability gains are noticeably massive. Even if you are not using large samples (or other file types), HDDs have abysmal performance when it comes to reading lots of small files spread out on disk. SSDs do not have this problem; the average SSD can read lots of small files at about 1000x the speed of the fastest HDD you can buy. Store backups and/or rarely-used files on an HDD if you have space constraints, but keep everything you need for Live on an SSD.
  • Registry Cleaners = CCleaner, Piriform, and all other "registry cleaners" are snake oil. At best they will not help performance at all. At worst, they will break your system.
  • Wifi and BT = When using audio applications, switch to a wired connection if you need Internet Access. Don't leave your WiFi or Bluetooth radios running when you don't explicitly need them. If you are not using a BT device, turn off BT. If you are not actively connected to WiFi, turn it off. If in doubt, turn on airplane mode. Make sure you configure Windows to only turn on WiFi manually, not automatically. Network radios are like audio devices: they are given priority by the system so that you don't experience dropped datagrams/packets/samples or high latency. If your networking devices are off, then they aren't vying to be "first in line" to be processed. Additionally, turning off your WiFi and BT radios when you're not using them (when using a wired Ethernet connection at home, or with no Internet connection while performing in a venue) means that they aren't wasting power.
  • Anti-Virus / Anti-Malware = First off, most users should have some sort of anti-malware on your system. You should not have more than one anti-malware program, however. If you use a third-party anti-malware solution, disable Windows Defender. Exception: if you are using Norton, uninstall Norton and use Windows Defender (or anything other than Norton). Some anti-malware, such as McAfee, Norton, Trend Micro, and AVG, are practically malware themselves. If it came with the PC when you brought it home from Best Buy, uninstall it. I strongly recommend ESET NOD32 (it's perhaps the only AV I've ever used that isn't obnoxious or a resource hog), with your Ableton Live folders added to the exception (do not scan) list so that NOD32 does not try to read those files right when you are using them. If you do not want to use a paid AV like NOD32, Windows Defender is fine.
Next, a list of things that you should do to mitigate actual or potential performance issues. Some of these are the basics, and will sound obvious to most of you. Others are relatively extreme, or will only improve specific performance issues (as opposed to overall performance generally).

Specifically, Throttlestop settings may not be available due to your CPU settings being "locked". There are three reasons this can happen:
  • The CPU itself is locked. Many low-spec CPUs and "thin and light" laptops simply cannot be tweaked for CPU performance. In this case, you have no options other than buying a different machine that has an "unlocked" CPU.
  • The motherboard firmware (either the BIOS or the Intel Management Platform or simply "EM") prevents the CPU from being tweaked, even on a CPU (such as most of those with the H or K suffix) that should be tweak-able. In some of these cases, updating to the latest BIOS or using a third-party BIOS (e.g., PremaMod) can unlock the settings you are missing. However, be advised that any error in the BIOS flashing process could brick your motherboard; use caution, triple-check that you are following the process to the letter, and triple-check that the BIOS firmware you are about to flash actually matches your motherboard. If you get someone else to do it for you, try to find someone who has done this often enough to have seen a firmware flash go wrong, not just someone who flashed their BIOS once five years ago.
  • The CPU is unlocked, and the mother board is good to go, but something in the OS-level software prevents you from accessing the CPU settings you need to tweak. The initial release of Windows 10 version 2004 caused many users to lose access to Throttlestop settings, or even BSOD, due to a patch for a CPU exploit. Disable this patch at your discretion.
General Recommendations
  • Download and run this program: https://www.oo-software.com/en/shutup10. Run it again after every Windows Update, since Windows updates can revert some of ShutUp10's fixes. Windows 10 is full of cruft by default, and wastes a criminal amount of resources gathering telemetry and creating network traffic as it "phones home". ShutUp 10 does not need to be installed; just run it. While it shows some settings as "yes", "limited", and "no", these are recommendations, not hard requirements. For example, "I have all of the Privacy" items checked, except for "Disable app notifications". Another example: I have all of the "App Privacy" items checked, except for the camera and microphone items (disabling app access to the cam and mic means that even Zoom and Discord can't access the cam and mic).
  • Download, install, and run this program: https://www.resplendence.com/download/LatencyMon.exe. Run it any time you are hearing crackling/skips/lags or other audio artifacts and/or drop-outs. This program is worth a pile of cash when troubleshooting the cause of latency (which is usually a driver or CPU throttling issue in my experience), but it's free for some reason. Ideally your results look something like this: https://imgur.com/2EBHUeO
Throttlestop-specific Recommendations: Lock CPU speed, disable Turbo, and disable C1E state
  • Download Throttlestop and read the guide at http://forum.notebookreview.com/threads ... de.531329/
  • Create a Throttlestop profile for Ableton Live
  • (Main Screen) Set "Speed Shift - EPP" to 0 (this is part of locking your CPU to one speed and limiting the possible states)
  • (Main Screen) Check "Disable Turbo" (this is part of locking your CPU to one speed and limiting the possible states)
  • (Main Screen) Check "Log File" (useful if you crash)
  • (Main Screen) Uncheck C1E (this is part of locking your CPU to one speed and limiting the possible states; C1E off = Turbo cannot turn cores off)
  • (FIVR) Check "Lock" under "Non Turbo Ratio"
  • (FIVR) Make sure the value in "Non Turbo Ratio" is set to your maximum non-Turbo ratio. In the main screen of Throttlestop, you should see your processor name (e.g., Core i9-8950HK), voltage (e.g., 0.8369), multiplier x base clock in MHz (e.g., 29.00 x 100.000 MHz), and speed in MHz (e.g., 2900 MHz). This is your current multiplier. The maximum non-Turbo ratio (multiplier) should be in the CPU description if you look at the official Intel page, such as https://www.intel.com/content/www/us/en ... 950hk.html The "Processor Base Frequency" is your maximum non-Turbo ratio (multiplier). For the 8950HK, the number is 29.
  • (FIVR) Click on "OK - Save Voltages immediately.", then click "OK".
Reference: https://imgur.com/4m1JOe9

At this point, you have locked the CPU to a single speed, and limited the range of states to which it can switch. State C0 means "the CPU is actually doing something". Other states are basically different levels of "resting", "parking", or "sleep", depending on how you want to think about it.

Disable even more C states
The next thing you can do to limit the number of C-states is the following registry change:
  • Open Regedit as Administrator
  • Navigate to HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Intelppm
  • Set the "Start" to 4 in hex
  • Reboot for the change to take effect
This disables all the deep C states, so basically all the "sleep for a long time" states are disabled, and only the "pause briefly and be ready to go again" and "full speed all the time" states are allowed. This will increase the power draw of the CPU, since it cannot enter many of the "deep" C states. This will force your CPU to run all the CPU cores in a more "high performance" mode, even at idle. You will lose battery life, but this registry change can make a measurable difference in any program that does media streaming, needs low latency, or exhibited lag/skip issues.

Throttlestop-specific Recommendations: Undervolting
To offset the power draw from locking your CPU to the max non-Turbo frequency + disabling the deep low-power C-states, you can undervolt your CPU. Bear in mind that this process may involve multiple crashes and reboots, especially if you want to attempt a large undervolt! Close all programs other than Throttlestop. On a positive note, you can't burn out your CPU with undervolting; the only risk is that you may lower the power too much, causing the CPU to stop, forcing the system to reboot. If you reboot repeatedly, you can trigger Windows' automatic recovery features, which you can dismiss (though it's a sign that you're going too far and need to back off your undervolt).
  • (FIVR) Under "FIVR Control", select "CPU Core".
  • (FIVR) Under "CPU Core Voltage", check "Unlock Adjustable Voltage", then click "Adaptive".
  • (FIVR) Move the IccMax slider all the way to the right. Don't worry, you won't actually slam 255.75 amps through your CPU.
  • (FIVR) Do not touch the "Voltage" slider! Leave it at "Default".
  • (FIVR) Set the "Offset Voltage" range to 125 mV (if you have a CPU that can take an even more extreme undervolt, proceed to 250 mV)
  • (FIVR) Set a small Offset Voltage value, such as -10 mV
  • (FIVR) Click "Apply"
  • (FIVR) If your system didn't crash, click "OK", and then click "TS Bench" on the main ThrottleStop screen.
  • (FIVR) Use these settings: Normal Priority, Threads <= CPU cores x2, Size 96M, MHz Fixed, and hit "Start". You will notice that the "C0%" column on the main screen of ThrottleStop shows your CPU running at 100%. This test should just take a few seconds (the TS Bench score is how many seconds it took to process the 96M of data). Note that this will make your system seem slow while the test maxes out your CPU!
  • (FIVR) If your system didn't crash, congratulations! Your undervolt is good under load. If you want to test it more rigorously, bump up the Size of the test (the test will run for much longer with larger Sizes; make sure you are OK with your computer being extremely slow while the test runs).
Repeat the process, increasing the undervolt until you hit a point where either (a) the system crashes or (b) the "Limits" screen in Throttlestop shows that you are being throttled due to not enough power (e.g., "EDP1" shows up under "Core").
Example screen: https://imgur.com/DWb0axW

Note that you can have up to four (4) ThrottleStop profiles. This is useful for A/B testing different undervolts, Turbo settings, etc.

Note that you can simply turn off ThrottleStop when not using Live, or select a different TS profile optimized for gaming, watching movies, working on that Excel workbook you should be developing instead of posting lengthy guides on the Ableton forums, etc.

Resources and References:
http://forum.notebookreview.com/threads ... de.531329/
https://thegeekpage.com/fix-cpus-are-no ... indows-10/
https://answers.microsoft.com/en-us/win ... be8?page=1
https://help.ableton.com/hc/en-us/artic ... -for-Audio
https://help.ableton.com/hc/en-us/artic ... o-dropouts
https://help.ableton.com/hc/en-us/artic ... e-CPU-load
https://help.ableton.com/hc/en-us/artic ... ce-latency
[ Live 12 Suite ] [ Push 3 SA ] [ Linnstrument ]
Mech-17GP2 = i9-13900HX | 8TB NVMe | 64GB DDR5 | GTX 4090 | CRG9 | Win11 Pro
iFi Gryphon + MOTU M4 + DCA Aeon X + Focal Alpha 65

[jur]
Site Admin
Posts: 5479
Joined: Mon Jun 01, 2015 3:04 pm
Location: Ableton

Re: Guide: Optimizing Windows 10 Intel laptops/notebooks

Post by [jur] » Wed Dec 23, 2020 11:56 pm

Thanks for this!
I moved it to the Tips & Tricks section, and added it to the Little List of Tips & Tricks thread.
Ableton Forum Moderator

Post Reply