12900k overclocking
Embargo is lifted now, I've seen some oc results of the 12900k which wasn't spectacular. What boggles my mind is why everyone is trying to oc P-cores without pushing E-cores first. I suspect we should get more nice perfomance uplift without going into scary power numbers if we try to tweak just E-cores. Of course this will not be beneficial for all the benchmarks, but for ALU-bound ones like rendering it should be fine. For gaming decreasing difference in performance between core types should bump low 1% fps.
Let me know what do you think, or post your results if you have access to the ADL platforms.
Posted Nov 4, 2021, 9:50 PM UTC · edited
39
Why would gaming use e cores unless it was a necessity? Maybe on win 10 currently but I'd imagine with the win 11 scheduler and future updates to it games would be running on performance cores and background tasks on e cores.
That is suboptimal. Games can use more threads than the number of threads of the CPU. Some of which will be responsible for handling data from network, disk, others will be dedicated to AI logic, and some will be doing rendering and feeding GPU with data. The problem is that existing games do not support heterogenous CPUs so they just read number of available threads of the CPU and use as many threads for tasks which game expects to be parallelized. Lets say a game has to generate 1000 trees to create a map. It looks how many virtual CPUs (threads of the CPU) are available, spawns that many threads and while there are still trees to generate each thread generates one tree. One point of having two types of the cores is to be able to run less "important" stuff on them. But you still have to be able to use full potential of the CPU and all of its cores when needed.
That would require a lot of additional game coding and I'm just guessing here but theres probably not a single PC game currently that is optimized in that way.
So again i have to ask why would you overclock e cores as a priority over p cores for gaming as it stands?
Win 11 scheduler will most likely push gaming all to the p cores as priority, and the e cores only if necessary. Doing it any other way would just lower performance surely the way games are coded right now.
Optimized in what way?
With OpenMP adding a single line of code before a loop which can be executed in parallel can be executed in parallel on all available vCPUs.
https://docs.microsoft.com/pl-pl/cpp/parallel/openmp/reference/openmp-directives?view=msvc-160
Future games will be able to decide whether they want to use P-cores, E-cores only or both. Existing games have no idea that such things exists and treat all vCPUs exually (at best they distinguish thread sibilings belonding to the same core).
That's why Intel released ADL programming guide, to teach developers how to use hybrid arch, how to distinguish cores etc.
If you want max fps you oc P-cores and your power usage is through the roof. But what I am asking is how does throwing additional 20-30W on E-cores affects performance.
The main problem is that a program running on Windows (or Linux) can't choose which hardware core it will run on, it also can't choose which hardware core it's child processes and threads will run on, the scheduler does that
But that doesn't matter, because only processes/ threads doing CPU light work (i.e disk IO, as long as the data read isn't heavipy compressed and that data isn't decompressed on the GPU) will realistically be offloaded onto a E-Core
Meaning, anything that's really FPS/ performance important will not be offloaded onto a E-Core, meaning that games (neither now nor in the future) will realistically benefit from higher clocked E-Cores
That is, of course, assuming that the game is the only CPU intensive task running, Microsoft themselves have said that things like the Windows Defender check (notorious for eating CPU resources) will run on the E-Cores while gaming
Simply put, no. Shut off the e cores so cache can dedicated to P cores not shared. More gaming benefits.
The grand majority of background tasks and windows functions will be offloaded to the E cores on the CPU. With that in mind, much critical firmware interaction is done via the Windows NT kernel, as I'd expect someone on this sub to know, but even if you didn't (and that's perfectly fine, we all have to learn it somewhere), you do now. Overclocking the E cores has been an easier task for me than P cores and, in my own testing, has been more productive when it comes to results. The E cores also generate less heat than the P cores, so it's easier on the cooler, AIR/air/liquid or otherwise. I was able to get the P cores to an allcore 5400mhz, but it wasn't stable.
I was able to successfully OC the E cores on a 12900KF to 4300mhz without much issue at all. The P cores I've only managed to get to 5300mhz. I've gotten the ring to 3200mhz. Even then, Cinebench fails at those speeds while all other applications seem to have no issues whatsoever. The voltage required to get there was 1.395v. My cooler has not had any issues keeping it cool. Something to keep in mind with this is that I'm using a really shitty MSI DDR4 board as a temp until I can get DDR5 RAM for my Asus Rampage Extreme z690 board....fucking scalpers...subhuman shit. That board is certainly limiting my OC ability. For example, my Rampage Extreme Encore x299 board ran the same ram at 4000mhz C14. This one struggles with C15 3400mhz on what is otherwise 3200mhz C14 ram sticks with samsung B-dies.
The biggest gains from OC for me are my rather large data loads. Gaming is not seeing much benefit as it's already hitting my 120hz v-sync.
My GPU is an EVGA RTX 3090 FTW3 also on full front and back waterblocks. I used to have a good one, but it somehow started sending 120v to my TV from the HDMI port and I had to RMA it. The replacement is a pretty shitty overclocker, which is very irritating to me as an overclocking enthusiast.