0

While staring at a terminal waiting for my code to compile, I started to wonder whether Intel's Turbo Boost was actually working.

I have an i7-4770K which is rated at 3.5GHz, with Turbo Boost up to 3.9GHz. Doing some reading I discovered that Turbo Boost is only really used when one core is doing more work than the others, so as compiling in parallel uses all the processor cores, Turbo Boost won't activate for me - so much for that.

However while I was investigating this, I noticed that my processor was reporting its maximum speed as 3.2GHz, and while all four cores (eight threads) were compiling, the maximum speed reported by i7z is only 2.992GHz. Why would this be, when the base speed is supposed to be 3.5GHz?

Socket [0] - [physical cores=4, logical cores=8, max online cores ever=4]
  TURBO ENABLED on 4 Cores, Hyper Threading ON
  Max Frequency without considering Turbo 3091.73 MHz (99.73 x [31])
  Max TURBO Multiplier (if Enabled) with 1/2/3/4 Cores is  32x/32x/31x/30x
  Real Current Frequency 2992.01 MHz [99.73 x 30.00] (Max of below)
        Core [core-id]  :Actual Freq (Mult.)      C0%   Halt(C1)%  C3 %   C6 %   C7 %  Temp      VCore
        Core 1 [0]:       2992.01 (30.00x)       100       1       0       0       0    54      0.9540
        Core 2 [1]:       2992.00 (30.00x)       100       1       0       0       0    59      0.9515
        Core 3 [2]:       2992.00 (30.00x)       100       1       0       0       0    57      0.9517
        Core 4 [3]:       2992.00 (30.00x)       100       1       0       0       0    56      0.9540

$ cat /proc/cpuinfo
model name      : Intel(R) Core(TM) i7-4770K CPU @ 3.50GHz
cpu MHz         : 3000.351

$ cat /sys/bus/cpu/devices/cpu0/cpufreq/cpuinfo_max_freq
3200000

I tried changing the cpufreq governor from powersave to performance but still the maximum speed is reported at only 3.2GHz, and i7z only reports the processors running at 2992MHz at full load. (They do go just above 3.1GHz while mostly idle though.)

Are there any configuration options I can adjust to get the processor up to 3.5GHz? Are there any other reasons why the CPU might be slowing down? Idle temperatures are just below 50 degrees and I've never seen it go above 65, even when compiling for a long time, so temperature shouldn't be a problem.

  • On a 4770K your multipliers should be 39x/38x/37x/37x, and you should be able to get 3.7GHz with all four cores running. What does your UEFI or BIOS setup say about the CPU? – Stephen Kitt Jun 8 '15 at 7:57
  • The BIOS was showing the expected figures, but it wasn't until after resetting the BIOS to defaults that the CPU actually reflected those settings! – Malvineous Aug 11 '15 at 22:30
2

Turns out the problem was that the BIOS hadn't detected the CPU properly when it was first installed, and resetting the BIOS settings to the default fixed the problem.

This was suggested by Intel support, and surprisingly enough it worked. So it looks like the fantastic VisualBIOS is as buggy, if not more so, than the traditional BIOS setup!

After the reset i7z then showed the multipliers for 1/2/3/4 cores as 39x/38x/37x/37x as sort of expected, although I didn't realise until now that Intel's turbo boost maximum speed only applies when a single core is active.

I tried adjusting the turbo boost multipliers in the BIOS setup (hint: use the keyboard navigation, you can get to settings that you can't select with the mouse) and setting this to 45 made i7z report the turbo boost multipliers as 45x/45x/45x/45x. However the multiplier still won't go above 37x when four cores are active, so it looks like this setting can only be reduced, not increased. Shame!

  • The main limiting factor in CPU clock speed is heat production; the chip shouldn't produce heat faster than the cooling system can remove it. The idea behind Turbo Boost is that it's OK to let one core produce a bit more heat when the others are producing less. Boosting all the cores when they're all busy would lead to overheating. – Wyzard Aug 12 '15 at 2:37
  • I thought the point of Turbo Boost was to allow the production of too much heat, but only for short periods. You could boost for 20 seconds say, which would be enough to make a program compile faster, and maybe the temperature goes from 30 degrees to 50 degrees, but then after the compile has finished there is plenty of time for the cooling system to return the CPU back to 30 degrees. – Malvineous Aug 12 '15 at 2:50
  • Maybe so, but boosting four cores would overheat four times as fast. – Wyzard Aug 12 '15 at 3:06
  • That's fine, because the operation would complete four times quicker than with a single core ;-) – Malvineous Aug 12 '15 at 5:50

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.