I just found that the openSUSE installed in my Lenovo Yoga 13 (with Intel® Core™ i5-3317U Processor) does not utilize Turbo Boost technology. Whatever I do, the CPU clock does not go up more than 1.7 GHz, where in Windows it goes up to 2.6 GHz.
On 03/30/2013 06:56 PM, joonro wrote:
>
> Hi,
>
> I just found that the openSUSE installed in my Lenovo Yoga 13 (with
> Intel® Core™ i5-3317U Processor) does not utilize Turbo Boost
> technology. Whatever I do, the CPU clock does not go up more than 1.7
> GHz, where in Windows it goes up to 2.6 GHz.
>
> Best,
> Joon
Well… I’m not sure. But I believed that Turbo Boost was not designed to be the
top “normal” clock rate. So I don’t know the mystery algorithm by which the
extra clocking comes into play. In other words, it’s not like a normal variable
clock speed CPU, where under load you get the highest clock. Turbo Boost is
something different.
Quoting from Intel’s website:
Intel Turbo Boost Technology 2.0 is activated when the Operating System (OS)
requests the highest processor performance state (P0).
The maximum frequency of Intel Turbo Boost Technology 2.0 is dependent on the
number of active cores. The amount of time the processor spends in the Intel
Turbo Boost Technology 2.0 state depends on the workload and operating environment.
Any of the following can set the upper limit of Intel Turbo Boost Technology 2.0
on a given workload:
Number of active cores
Estimated current consumption
Estimated power consumption
Processor temperature
When the processor is operating below these limits and the user’s workload
demands additional performance, the processor frequency will dynamically
increase until the upper limit of frequency is reached. Intel Turbo Boost
Technology 2.0 has multiple algorithms operating in parallel to manage current,
power, and temperature to maximize performance and energy efficiency. Note:
Intel Turbo Boost Technology 2.0 allows the processor to operate at a power
level that is higher than its rated upper power limit (TDP) for short durations
to maximize performance.
Well, I do not know how it works, but openSUSE is definitely not hitting the highest clock. The same Ptyhon + Cython code runs more than 2 times faster in Windows than in openSUSE.
cjcox;2542931 Wrote:
> In other words, it’s not like a normal variable
> clock speed CPU, where under load you get the highest clock. Turbo
> Boost is
> something different.
>
Well, I do not know how it works, but openSUSE is definitely not
hitting the highest clock. The same Ptyhon + Cython code runs more than
2 times faster in Windows than in openSUSE.
-Joon
Hi
I packaged up i7z which on this i5 shows it (turbo boost)
available and working when needed…
Cpu speed from cpuinfo 2394.00Mhz
cpuinfo might be wrong if cpufreq is enabled. To guess correctly try estimating via tsc Linux's inbuilt cpu_khz code emulated now
True Frequency (without accounting Turbo) 2393 MHz
CPU Multiplier 18x || Bus clock frequency (BCLK) 132.94 MHz
Socket [0] - [physical cores=2, logical cores=4, max online cores ever=2]
TURBO ENABLED on 2 Cores, Hyper Threading ON
Max Frequency without considering Turbo 2525.94 MHz (132.94 x [19])
Max TURBO Multiplier (if Enabled) with 1/2/3/4 Cores is 22x/20x/0x/0x
Real Current Frequency 1544.95 MHz [132.94 x 11.62] (Max of below)
Cpu speed from cpuinfo 1695.00Mhz
cpuinfo might be wrong if cpufreq is enabled. To guess correctly try estimating via tsc
Linux's inbuilt cpu_khz code emulated now
True Frequency (without accounting Turbo) 1696 MHz
CPU Multiplier 17x || Bus clock frequency (BCLK) 99.76 MHz
Socket [0] - [physical cores=2, logical cores=4, max online cores ever=2]
TURBO ENABLED on 2 Cores, Hyper Threading ON
Max Frequency without considering Turbo 1795.76 MHz (99.76 x [18])
Max TURBO Multiplier (if Enabled) with 1/2/3/4 Cores is 26x/24x/24x/24x
Real Current Frequency 1397.27 MHz [99.76 x 14.01] (Max of below)
Core [core-id] :Actual Freq (Mult.) C0% Halt(C1)% C3 % C6 % C7 % Temp
Core 1 [0]: 871.42 (8.73x) 9.52 9.06 1.14 0 84.9 45
Core 2 [2]: 1397.27 (14.01x) 14 13.7 4.15 1 69.6 45
I do not know why the same code is more than two times slower than Windows.
Please let me know if I’m missing something.
malcolmlewis;2542960 Wrote:
> Hi
> I packaged up i7z which on this i5 shows it (turbo boost)
> available and working when needed…
>
Thanks. It seems it is detected correctly:
Code:
Cpu speed from cpuinfo 1695.00Mhz
cpuinfo might be wrong if cpufreq is enabled. To guess correctly try
estimating via tsc Linux’s inbuilt cpu_khz code emulated now
True Frequency (without accounting Turbo) 1696 MHz
CPU Multiplier 17x || Bus clock frequency (BCLK) 99.76 MHz
Socket [0] - [physical cores=2, logical cores=4, max online cores
ever=2] TURBO ENABLED on 2 Cores, Hyper Threading ON
Max Frequency without considering Turbo 1795.76 MHz (99.76 x [18])
Max TURBO Multiplier (if Enabled) with 1/2/3/4 Cores is
26x/24x/24x/24x Real Current Frequency 1397.27 MHz [99.76 x 14.01] (Max
of below) Core [core-id] :Actual Freq (Mult.) C0% Halt(C1)% C3
% C6 % C7 % Temp Core 1 [0]: 871.42 (8.73x) 9.52
9.06 1.14 0 84.9 45 Core 2 [2]: 1397.27
(14.01x) 14 13.7 4.15 1 69.6 45
I do not know why the same code is more than two times slower than
Windows.
Please let me know if I’m missing something.
-Joon
Hi
When you run your code, monitor via i7z, does the cpu(s) speed change?
Have you checked the system also via cpupower;
zypper in cpupower
cpupower frequency-info
–
Cheers Malcolm °¿° (Linux Counter #276890)
openSUSE 12.3 (x86_64) Kernel 3.7.10-1.1-desktop
up 5:51, 3 users, load average: 0.06, 0.05, 0.05
CPU Intel® i5 CPU M520@2.40GHz | GPU Intel® Ironlake Mobile
Sorry for the late reply. I haven’t boot into openSUSE for a while since I had to run the code. Anyway, I just checked this, and I’ve got:
$ cpupower frequency-info
analyzing CPU 0:
driver: acpi-cpufreq
CPUs which run at the same hardware frequency: 0 1 2 3
CPUs which need to have their frequency coordinated by software: 0
maximum transition latency: 10.0 us.
hardware limits: 782 MHz - 1.70 GHz
available frequency steps: 1.70 GHz, 1.70 GHz, 1.60 GHz, 1.50 GHz, 1.40 GHz, 1.30 GHz, 1.20 GHz, 1.10 GHz, 1000 MHz, 900 MHz, 800 MHz, 782 MHz
available cpufreq governors: conservative, userspace, powersave, ondemand, performance
current policy: frequency should be within 782 MHz and 1.70 GHz.
The governor "ondemand" may decide which speed to use
within this range.
current CPU frequency is 1.70 GHz.
boost state support:
Supported: yes
Active: yes
Which looks like it is only using 1.70 GHz. I haven’t had chance to check i7z output while I’m running my code since I am installing a missing dependency right now, but I will post the results as soon as I get them.
So I tried to run the code with i7z open in the terminal. In Actual Freq part, it actually hit about 2396 for Core 1 and Core 2 when I run the code. (By the way, is there a way to grab the output of i7z?) Again, the same code which takes about 0.5 seconds in Windows takes about
1.1 seconds in openSUSE.
malcolmlewis;2543207 Wrote:
> Hi
> When you run your code, monitor via i7z, does the cpu(s) speed change?
>
So I tried to run the code with i7z open in the terminal. In Actual
Freq part, it actually hit about 2396 for Core 1 and Core 2 when I run
the code. (By the way, is there a way to grab the output of i7z?) Again,
the same code which takes about 0.5 seconds in Windows takes about
1.1 seconds in openSUSE.
Indeed. I’m still reading the thread but it looks to be the same problem. At first I thought it was Python/Cython problem, and then CPU freq problem, but I guess I have been wrong. Thank you!!
Hmm … I just tried to use libm 2.15 from openSUSE 12.2, and it did make the code run faster, but it is still about 2 times slower than Windows. I will make some more tests and report.
It is possible to compile your own kernel and change the default governor used in the kernel. If interested, I could dig out the exact instructions to make the change.