Intel Turbo Boost vs. AMD Turbo Core Explained
An anonymous reader recommends a PC Authority article explaining the whys and wherefores of Intel Turbo Boost and AMD Turbo Core approaches to wringing more apparent performance out of multi-core CPUs. "Gordon Moore has a lot to answer for. His prediction in the now seminal 'Cramming more components onto integrated circuits' article from 1965 evolved into Intel's corporate philosophy and have driven the semiconductor industry forward for 45 years. This prediction was that the number of transistors on a CPU would double every 18 months and has driven CPU design into the realm of multicore. But the thing is, even now there are few applications that take full advantage of multicore processers. What this has led to is the rise of CPU technology designed to speed up single core performance when an application doesn't use the other cores. Intel's version of the technology is called Turbo Boost, while AMD's is called Turbo Core. This article neatly explains how these speed up your PC, and the difference between the two approaches. Interesting reading if you're choosing between Intel and AMD for your next build."
...Turbo switches on our workstations again like back in the day?
That read like the pasting of two press releases together. That did very little to explain what is going on beyond press grade buzz words.
For that matter, can we have one more thing: a way to limit max core usage to, say, 10% (imagine you're playing an old game on a laptop, for example Diablo2; now, many games have the unfortunate habit of consuming all available CPU power...whether they need to or not; taking battery with them)
One that hath name thou can not otter
What's "apparent performance"? It's either faster or it's not.
The article kinda glosses over things. So a more detailed explanation of how Intel's turbo boost works:
As stated, every core has a budget for the maximum heat it can give off, and the maximum power it can use, as well as a max clock speed that it can handle. However, when you look at these things, they aren't all even, one ends up being the limiting factor. So Intel said, ok, we design a chip to always run at a given speed and stay under the thermal and power envelopes. However, if it isn't running at that, we allow for speed increases. It can increase the speed of cores in 133MHz increments. If things go over, it throttles it back down again.
This can be done no matter how many cores are active, but the less that are active the more it is likely to be able to be. On desktop cores, it isn't a big deal since they usually run fairly near their speed limit anyhow. So you pay see only 1 or 2 max 133MHz increments that can happen. For laptop cores, in particular quad cores, it can be a lot more.
The Intel i7-720QM runs at 1.6GHz and has 1/1/6/9 turbo boost multipliers. That means with all 4 cores running, it can clock up at most 1 increment, to 1.73GHz. However with only one running, it can go to 2.8GHz, 9 133MHz clocks up. It allows for a processor that would be too fast to reside in the laptop to go in there with some flexibility. A desktop Core i7-930 is 2.8GHz with 1/1/1/2 turbo mode. That means it'll clock up to 2.93GHz with 2-4 cores active, and 3GHz with 1. Much less flexible, since it is already running near it's rated max clock speed.
Now this is not the same as speed step, which is their technology to down clock the CPUs when they aren't in so much use. Similar idea, but purse based on how hard the CPU is being asked to work, not based on if the system can handle the higher speeds.
As an aside, I'll call BS on the "Little uses multiple cores." Games these days are heavily going at least dual core, some even more. Reason is, if nothing else, the consoles are that way too. The Xbox 360 has 3 cores, 2 threads each. The PS3 has a weak CPU attached to 7 powerful SPUs. On a platform like that, you learn to do parallel or your games don't look as good. Same knowledge translates to the PC.
However there are still single core things, hence the turbo boost thing can be real useful. In laptops this is particularly the case. If the i7 quad was limited to 1.6GHz, few people would want it over one of the duals that can be 2.53GHz or more. Just too much loss in MHz to be worth it. However now, it can be the best of all worlds. A slower quad, a faster dual, whatever the apps call for, it handles.
...for more cache instead of more processors? Think of something with as many transistors as a hex core but with only two cores and the rest used for L1 cache! I'd suggest lots more registers as well, but that would mean giving up on x86.
Warning: this article may contain humor, sarcasm, parody, and perhaps even irony. Read at your own risk.
There are a multitude of aftermarket CPU coolers which are much quieter than the stock ones from Intel or AMD. Some chips can even be run passive with the right heatsink. Take a look at the reviews on http://www.silentpcreview.com/
So they are bringing the Turbo Button back?
Seriously, When I was looking at laptops, 2 laptops that were pretty much the same in specks, one had a "Turbo" CPU the other's CPU was the speed of the "Boosted" one next to it...
The price difference... $20.00!!! I'll pay an extra $20 to have FULL SPEED ALL THE TIME!
Why this compromise? There's a huge need for developers to start thinking in terms of multicore CPUs. Offering them this solution is just postponing the inevitable. We need change now.
Do both.
I bought an Intel i7-860 recently and the supplied HSF is barely able to keep the core temperatures under 95 deg. C with eight threads of Prime95 running. Eek!! I replaced it with a cheap Hyper TX3 cooler (larger coolers won't fit with four DIMMs fitted), and it run at least 20 degrees C cooler under the same conditions. The supplied fan is a little noisy under full load, but for gaming etc. it's not a problem.
Turbo Boost is cute, but I've opted to overclock it at a constant 3.33GHz (up from 2.8GHz) instead for predictable performance, with no temperature or stability issues. YMMV.
> I've also been wondering why, given the new poly-core systems, we
> don't see a mix of CPU types in a system.
How would the OS decide which process to assign to which core?
Warning: this article may contain humor, sarcasm, parody, and perhaps even irony. Read at your own risk.
Just wanted to clarify some of the misconceptions about the Turbo Boost...
The technology is fairly simple. At it's most level, we take the exhaust from the CPU fan and route it back into the intake of the system. If you're using Linux you can see the RPM increase by running 'top' (google Linux RPM for more information).
The turbo itself is a fairly simple technology. As you're aware, we can use pipes to stream the outputs of different applications together. In the case of Linux, we pipe the stdout stream to the stdin (the intake) of the turbo (tr) which increases the speed and feeds it into a different application. For example, we can increase the throughput of dd as follows:
dd if=/dev/zero | tr rpm | tee /proc/cpuinfo
This will increase the CPU speed by feeding output from dd into the turbo (and increasing the rpm) and finally pumping it back into the CPU.
On other platforms there are some proprietary solutions. For example, take the output of Adobe AIR to HyperV to PCSpeedup! then back into the processor.
Hope this helps...
For $300 you can get a brand new Dell - who builds a PC anymore?
Someone who wants something better than a $300 Dell?
predictable performance
Predictable power-drain, you mean, and a predictable shortening of the life of your hardware -- assuming it doesn't just overheat and underclock itself, which I've seen happen a few times.
CPU scaling has been mature for awhile now, and it's implemented in hardware. Can you give me any real examples of it causing a problem? The instant I need that speed (for gaming, etc), it's there. The rest of the time, I'd much rather it coast at 800 mhz all around, especially on a laptop.
with no temperature or stability issues. YMMV.
Understatement of the year.
Overclocking is a bit of a black art, for a number of reasons. First problem: How do you know it's stable? Or rather, when things start to go wrong, how do you know if it's a software or a hardware issue? The last time I did this was a 1.8 ghz machine to 2.7. I ran superpi, 3dmark, and a number of other things, and it seemed stable, but occasionally crashed. Clocked it back to 2.4, it crashed less often, but there were occasionally subtle filesystem corruption issues -- which was much worse, because I had absolutely no indication anything was wrong (over months of use) until I found my data corrupted for no apparent reason. Finally set it back to the factory default (and turned on the scaling) and it's been solid ever since.
Second problem: Even with the same chip, it varies a lot. All that testing I did is nothing compared to how the manufacturer actually tests the chip -- but they only test what they're actually selling. That means if they're selling you a dual-core chip that's really a quad-core chip with two cores disabled, it might just be surplus, the extra cores might be fine, but they haven't tested them. Or maybe they have, and that's why they sold it as a dual-core instead of quad-core.
So even if you follow a guide to the letter, it's not guaranteed.
I'm sure you already know all of the above, but I'm at the point in my life where, even as a starving college student, even as a Linux user on a Dvorak keyboard, it's much saner for me to simply buy a faster CPU, rather than trying to overclock it myself.
Don't thank God, thank a doctor!
How about, every app that runs in the background or as a tray icon by default gets a cheesy core? :-P
When Intel came out with the Pentium Pro, they had a good 32-bit machine, and it ran UNIX and NT, in 32-bit mode, just fine. People bitched about its poor performance on 16-bit code; Intel had assumed that 16-bit code would have been replaced by 1995.
Intel hasn't made that mistake again. They test heavily against obsolete software.
Correct me if i'm wrong, and maybe i'm missing something here, but i think it's possible to simulate this kind of functionality on Linux with a script. Cores 2 to N are taken offline (echo 0 > /sys/devices/system/cpu/cpu/offline), the "performance" governor is used for cpu0 (which causes it to run at full clock), then the script monitors usage of cpu0 and brings the other cores online as load on cpu0 goes up. When load goes down then the other cores can be taken offline again.