What Does Unparking Cores Mean and What Do They do???

Status
Not open for further replies.

Iver Hicarte

Distinguished
May 7, 2016
414
18
18,795
So whenever I search something in google or youtube about "increase fps in games", they always recommend unparking your cores, they say that it will increase your fps in games it works but, what does unparking cores mean???, can unparking cores damage your cpu?? or will it just increase performance in games and other apsects of the system???
 
Solution


Core parking is one of those things that enthusiasts consistently fail to understand. However, most are too proud to admit as much, and proceed to make up a bunch of mumbo jumbo.

Core parking is, at its simplest, a power saving mechanism. First, a bit of history.

Consumer CPUs have long had low-power sleep states. For a while, these low power states required the entire CPU to halt...


Core parking is one of those things that enthusiasts consistently fail to understand. However, most are too proud to admit as much, and proceed to make up a bunch of mumbo jumbo.

Core parking is, at its simplest, a power saving mechanism. First, a bit of history.

Consumer CPUs have long had low-power sleep states. For a while, these low power states required the entire CPU to halt execution; other components could often be powered off as well. When multi-core CPUs were developed circa 2005, these low power states required each core to halt collectively. Independent speed stepping allowed each core to operate at an independent clock multiplier and VID, allowing fairly effective power management, but execution was still a global binary. This means that cores that were as "idle" as design permitted still accessed L2/L3 cache and still drew power.

Core parking allows an operating system to completely shut off a core such that it no longer performs any function and draws little to no power. When it becomes desirable to do so, the operating system can then wake up the core(s) and speed step them to its heart's content.

The devil, at least as far as real time gaming performance is concerned, is in the details. Specifically, when it becomes desirable to either park or unpark a core. All modern consumer operating systems use some variant of a preemptive multi-level priority queue scheduling algorithm to perform thread scheduling.

In the general case, each thread (there may be thousands globally) is either ready and waiting to be scheduled on a logical processor, or is waiting for a system call to complete (the time may be indeterminant, such as when a process sleeps while waiting for an interrupt). Higher priority threads will always be scheduled first and will displace lower priority threads when they go from waiting->ready. Following this logic, low priority threads will only be scheduled if no higher priority threads are ready.

An audit of the system's ready threads will reveal how long each has been outstanding (waiting to be scheduled) and this information can be used inconjuction with power management policies to make intelligent decisions about processor power states.

High priority threads, such as those that handle user IO are usually not computationally intensive, but they are time sensitive. They need to be scheduled quickly otherwise the system will appear sluggish.

Low priority threads, such as those that handle the heavy math involved in compression/decompression, encoding/decoding/transcoding, and simulation will gobble up CPU time, but unless they're feeding a real time application such as a media player it's not critical that they be scheduled within a certain time window. Prime95 number crunching threads have no business clobbering sound processing threads.

If too many high-priority threads end up waiting too long, parked cores can be woken up to improve performance, or unparked cores can be stepped up. If most scheduling is low-priority or idle-priority, cores can be stepped down or parked to save power.

The trouble with some video games is that interlocking threads of differing priorities combined with poor application-level tuning can confuse the operating system into thinking that it's making intelligent power management decisions when it really isn't. It may think that it's servicing threads fast enough because it has no insight otherwise; or it may take the time to unpark a core only to park it again shortly. This is a tuning issue that's hard to nail down perfectly.

All that these "core unparkers" do is tweak a few power management settings so that the operating system (usually Windows) will never park cores. It will continue to step them up and down, but since speed stepping is much more responsive than parking, it tends to result in a net increase in system responsiveness at the expense of power consumption
 
Solution

Iver Hicarte

Distinguished
May 7, 2016
414
18
18,795

learned a little bit of history in your answer! and this gave me lot of knowledge about CPU's also. Thank you so much for this info! AND YOU ALSO SOLVED MY PROBLEM!

 

Ajanni

Commendable
Nov 5, 2016
1
0
1,510
I've got an 7th gen Amd a10 9600p apu. when I disable core parking, my multi threaded performance increases but my single threaded performance decreases based on benchmarks e.g. in geekbench 4 my single core performance is reduced by 100points on average, but when I only disable core parking for 2 of the 4 cores, my single threaded performance goes back up to normal but the multi threaded performance increases at the same time. But some how in f1 2014 my fps seems to be better by only having core parking for 2 cores disabled and as a result my laptop was 5 degrees cooler in comparison. Maybe it's because it still uses a dual module design I'm not sure, I haven't tested other games yet
Would you recommend I disable core parking for all cores or just for two so that one module always remains powered on. Also does disabling core parking draw power away from the gpu resulting is slightly worse performance compared to only disabling core parking for 2 of the 4 cores on apu only configuration?
 
Status
Not open for further replies.