Dynamically change core assignment based on CPU workload

Started by fragfeaster777, May 28, 2025, 12:33:46 PM

Previous topic - Next topic

fragfeaster777

I have an Intel 14700KF, with it's P-cores overclocked as follows: P1-3: 5.8Ghz, P4-5: 6.2Ghxz, P6-8: 5.6Ghz.

For a particular program, is there any way to set Process Lasso so that it can first utilize the fastest P4-5 cores, and only if these cores are maxed out, then use the next fastest P1-3 cores, and then only if these cores are also maxed out, then use the slowest P6-8 cores?

I think another way of asking this question is: Can Process Lasso dynamically change core assignment, based on overall CPU workload?. If the E-cores are off and hyperthreading is on, then each logical core would represent 6.25% of the workload, and so Process Lasso would set the following rules:

* If workload <= 25%, use the fastest P4-5 cores (6.25% * 2 * 2 HT)
* If workload > 25% and <= 62.5%, use P4-5 and the next fastest P1-3 cores.
* If workload > 62.5%, use all cores.

I was thinking some regular expressions could maybe achieve this, but wasn't sure how to dynamically change core assignment.

This would be very useful so that a particular game would always be using the fastest cores first.

Finally, if this is possible in Process Lasso, could there be a latency penalty (that may affect FPS) when performing the calculation of when to switch from one set of cores to the next set of cores?

Thank you very much!

stevelesage

QuoteI have an Intel 14700KF, with it's P-cores overclocked as follows: P1-3: 5.8Ghz, P4-5: 6.2Ghxz, P6-8: 5.6Ghz.

For a particular program, is there any way to set Process Lasso so that it can first utilize the fastest P4-5 cores, and only if these cores are maxed out, then use the next fastest P1-3 cores, and then only if these cores are also maxed out, then use the slowest P6-8 cores?

I think another way of asking this question is: Can Process Lasso dynamically change core assignment, based on overall CPU workload?. If the E-cores are off and hyperthreading is on, then each logical core would represent 6.25% of the workload, and so Process Lasso would set the following rules:

* If workload <= 25%, use the fastest P4-5 cores (6.25% * 2 * 2 HT)
* If workload > 25% and <= 62.5%, use P4-5 and the next fastest P1-3 cores.
* If workload > 62.5%, use all cores.

I was thinking some regular expressions could maybe achieve this, but wasn't sure how to dynamically change core assignment. brawl stars online

This would be very useful so that a particular game would always be using the fastest cores first.

Finally, if this is possible in Process Lasso, could there be a latency penalty (that may affect FPS) when performing the calculation of when to switch from one set of cores to the next set of cores?

Thank you very much!
No, Process Lasso cannot dynamically adjust core usage based on CPU load thresholds or core speeds. You can set affinity to use the fastest cores first — but switching affinity dynamically requires external scripting. Such dynamic switching could cause latency or performance spikes.