I recently upgraded from an i5-2500k to ryzen 3900x. The old overclocking versus new overclocking is interesting. It used to be, the only limit was stability. I ran the 3.3 ghz stock 2500k at 4.9 on water and it worked close to a decade. The limit was not thermals it was just stability because of frequency.
Modern cpu’s have so many cores, that the limit is now thermals and cooling. The cooling solution can only remove so much heat. Or, in other words, as you push the cores harder to consume more power, their temperature rises to push more heat into the water. For simplification purposes consider the change from idle to full load. Consider the inlet temperature of the water to the waterblock as fixed, as it will take time for the hot output water to loop through the radiator, reservoir, and pump. As your TDP or PPT (Watts) increases to full load, the outlet temperature of the block rises while the inlet stays the same. Equilibrium is reached where heat produced by the cpu is equal to heat removed by the waterblock.
Nowadays, there are so many cores on a cpu that you will be able to hit Tjmax or whatever you call your thermal limit easily. Performance per watt should guide your overclocking goals. I’d rather have 16 cores consume 200W than 12 cores at 200W for instance. In my case, I think my cooling solution can handle just under 200W where I approach 100C, but I rather run my 3900x at 145W or so at max load.
I like to think like this. First, load one cpu and it’ll run at it’s maximum frequency. You could optimize for this by increasing it’s frequency; you will hit stability due to frequency. Now, keep loading cpu’s each at frequency stability. Eventually, you’ll reach PPT limit and then increasing core count will cause a frequency drop of all cores to reduce the average core power to stay within PPT limit.
So if I wanted to ‘overclock’ more, what could I do? If the common case is gaming or the like with a few fully utilized cores, I hit stability limits caused by frequency way before thermal limits.
If I want my cpu to do as much work as possible, then I need an appropriate workload and the best thermals as possible. In my case, the total cpu power (145W) is the limit. I could increase the PPT limit to get more work done. I’d need to measure carefully the work done versus power to find efficiency that I’m happy with. I’d reach the ~200W limit of my cooling solution where my cores reach Tjmax.
Then I’d be looking at increasing pump speeds, increasing the thermal conductivity of the heat transfer materials (copper or aluminum), and decreasing their thickness and increasing surface areas.
Some material I’ve read at a pc radiator testing website had data which indicated increasing pump speed is not very effective. This is intuitively true because doubling pump speed would halve the delta(Tout - Tin). But deltaTwater (5-20?) is small compared to the hot cpu temp (100C) versus the average coolant temperature (30C).
In my personal situation, a better waterblock would probably be helpful, with more surface area. Especially because I re-used my i5-2500k waterblock and built an adapter
How could I tell if a workload is limited by power? If I see 145W being used and core clocks are below what I normally see. A light all core load at 145W runs at 4.3 ghz. A heavy all core load I’ve seen less than 4ghz at 145W. In that case, increasing my PPT limit to 180W or more could get more work done by letting the cores run back closer to 4.3 ghz.
Part of the difficulty is even knowing what data you can rely on. You need good benchmarks which I’m not fully versed on. You need to be careful what you read or listen to. Undervolting could be a deceptive practice. To rapidly respond to load change, you want idle voltage higher, I haven’t read this but I suspect it’s a sort of energy storage mechanism which allows transients to be handled with less droop.
Anyway, I’m no debauer or anything and I just felt like rambling a bit. In summary, I overclock by increasing PPT, optimizing my cooling solution, and running my ram at 3600 mhz to match the cpu fabric/uncore clocks. I had previously overclocked the uncore to 1866 and run the ram at 3733. I don’t do it anymore. I enjoyed the hours of ram timing fun and optimizing Aida64 latency results but I added 2x16GB and haven’t re-timed and also am more concerned with stability. I was just happy to still be able to run 4 sticks at 3600 mhz.