This is the area to clarify hardware specification if there's anything unclear from the datasheet. If the specification is software related, please ask in the related software section.
Maximum achievable clock speed
Elie De Brauwer
New Member Posts: 35 ✭
Gents, I have a question, according to Intel Ark of the Z8350 the CPU should be able to boost its speed up to 1.92 GHz. As far as I know I have everything necessary enabled (turbo boost, speedstep, etc).
However when I put some load on all cores (e.g. launch yes > /dev/null & a couple of times), the frequencies seem to be capped at 1.68 Ghz.
Although sysfs reports
Playing with intel_pstate (e.g. playing with the max/min pcft and enable/disable turbo boost):
So it seems to behave fine, but it just doesn't go above 1.68 GHz, anybody knows where the missing 250 MHz is ? Is there a link with possible GPU usage or so ?
However when I put some load on all cores (e.g. launch yes > /dev/null & a couple of times), the frequencies seem to be capped at 1.68 Ghz.
root@c:~# cat /proc/cpuinfo | grep MHz cpu MHz : 1679.962 cpu MHz : 1679.962 cpu MHz : 1679.962 cpu MHz : 1679.962 root@c:~# sensors acpitz-virtual-0 Adapter: Virtual device temp1: +0.0 C (crit = +90.0 C) coretemp-isa-0000 Adapter: ISA adapter Core 0: +51.0 C (high = +90.0 C, crit = +90.0 C) Core 1: +53.0 C (high = +90.0 C, crit = +90.0 C) Core 2: +53.0 C (high = +90.0 C, crit = +90.0 C) Core 3: +51.0 C (high = +90.0 C, crit = +90.0 C)
Although sysfs reports
root@c:/sys/devices/system/cpu/cpu0/cpufreq# for i in scaling*; do echo $i = `cat $i`; done scaling_available_governors = performance powersave scaling_cur_freq = 1679962 scaling_driver = intel_pstate scaling_governor = performance scaling_max_freq = 1920000 scaling_min_freq = 480000 scaling_setspeed = <unsupported>
Playing with intel_pstate (e.g. playing with the max/min pcft and enable/disable turbo boost):
root@c:/sys/devices/system/cpu/intel_pstate# echo 60 > max_perf_pct root@c:/sys/devices/system/cpu/intel_pstate# echo 60 > min_perf_pct root@c:/sys/devices/system/cpu/intel_pstate# cat /proc/cpuinfo | grep -i mhz cpu MHz : 1119.993 cpu MHz : 1119.993 cpu MHz : 1119.993 cpu MHz : 1119.993 root@c:/sys/devices/system/cpu/intel_pstate# echo 100 > min_perf_pct root@c:/sys/devices/system/cpu/intel_pstate# echo 100 > max_perf_pct root@c:/sys/devices/system/cpu/intel_pstate# cat /proc/cpuinfo | grep -i mhz cpu MHz : 1679.962 cpu MHz : 1679.962 cpu MHz : 1679.962 cpu MHz : 1679.962 root@c:/sys/devices/system/cpu/intel_pstate# echo 1 > no_turbo root@c:/sys/devices/system/cpu/intel_pstate# cat /proc/cpuinfo | grep -i mhz cpu MHz : 1440.000 cpu MHz : 1440.000 cpu MHz : 1439.943 cpu MHz : 1440.000 root@c:/sys/devices/system/cpu/intel_pstate# echo 0 > no_turbo root@c:/sys/devices/system/cpu/intel_pstate# cat /proc/cpuinfo | grep -i mhz cpu MHz : 1679.962 cpu MHz : 1679.962 cpu MHz : 1679.962 cpu MHz : 1679.962
So it seems to behave fine, but it just doesn't go above 1.68 GHz, anybody knows where the missing 250 MHz is ? Is there a link with possible GPU usage or so ?
Comments
-
It is possible that the CPU is too hot already, so it will be throttling automatically .
To use complete 1.92Ghz is turbo mode, you may need to purchase a fan . http://up-shop.org/up-peripherals/64-active-cooler-fan-for-the-up-board.html -
Well my temperature measurements are included in my first point. What temperature is required to reach.1.92 GHz ? Even when starting my tests on a freshly booted (cooler) device it isn't going above 1.6 GHz.
Has anybody, even those with active coolers (I actually ordered some a couple of weeks ago ...) seen the system reach 1.9 GHz ? If so at which temperatures ?
And should some form of thermal throttling be applied, I'd expect to see these counters increase:root@camera:/sys/bus/cpu/devices# cat cpu*/thermal_throttle/core_throttle_count 0 0 0 0
-
hi,
I cannot double check now but if I think that 1,92Ghz can be reached only by 2 of the 4 cores while the other 2 will run at 1.44 OR you can have 4 core at 1.68 GHZ.
You should find the info in the datasheet of Intel x5 family.
Cheers -
Thanks for your input Fab, I tried to reproduce what you were stating, that is, only attempting to stress a single core.
After a boot the system looks like:root@c:~# sensors acpitz-virtual-0 Adapter: Virtual device temp1: +0.0 C (crit = +90.0 C) coretemp-isa-0000 Adapter: ISA adapter Core 0: +35.0 C (high = +90.0 C, crit = +90.0 C) Core 1: +35.0 C (high = +90.0 C, crit = +90.0 C) Core 2: +38.0 C (high = +90.0 C, crit = +90.0 C) Core 3: +35.0 C (high = +90.0 C, crit = +90.0 C) root@c:~# cat /proc/cpuinfo | grep -i mhz cpu MHz : 549.731 cpu MHz : 511.256 cpu MHz : 1001.587 cpu MHz : 1345.050
When I only launch a single instance of yes, we get the same result as my previous post, one core is going to the max somehow it also pulls up some neighboring cores (perhaps the yes process is migrating cores). But only one process should keep the system busy, again it's stuck at 1.68 GHz:root@c:~# cat /proc/cpuinfo | grep -i mhz cpu MHz : 1679.962 cpu MHz : 1679.962 cpu MHz : 1479.037 cpu MHz : 906.300 root@c:~# sensors acpitz-virtual-0 Adapter: Virtual device temp1: +0.0 C (crit = +90.0 C) coretemp-isa-0000 Adapter: ISA adapter Core 0: +37.0 C (high = +90.0 C, crit = +90.0 C) Core 1: +38.0 C (high = +90.0 C, crit = +90.0 C) Core 2: +39.0 C (high = +90.0 C, crit = +90.0 C) Core 3: +37.0 C (high = +90.0 C, crit = +90.0 C)
Now let's try to insist a bit more, I am going to:
[ul]
[li]Force my yes instance to bind to core 0[/li]
[li]Limit the upper boundary of cores 1,2,3 [/li]
[/ul]root@camera:/sys/bus/cpu/devices# echo 1010475 > cpu1/cpufreq/scaling_max_freq root@c:/sys/bus/cpu/devices# echo 1010475 > cpu2/cpufreq/scaling_max_freq root@c:/sys/bus/cpu/devices# echo 1010475 > cpu3/cpufreq/scaling_max_freq root@c:/sys/bus/cpu/devices# cat cpu*/cpufreq/scaling_min_freq 480000 480000 480000 480000 root@c:/sys/bus/cpu/devices# cat cpu*/cpufreq/scaling_max_freq 1920000 1010475 1010475 1010475 root@c:/sys/bus/cpu/devices# taskset -c 0 yes > /dev/null & [1] 1064 root@c:/sys/bus/cpu/devices# cat /proc/cpuinfo | grep -i mhz cpu MHz : 959.962 cpu MHz : 960.018 cpu MHz : 479.981 cpu MHz : 479.981
Hence there seems to bee some correlation between cores 0 and 1 and 2 and 3, now let's allow the system to scale cores 0, and 1 up to 1.92 GHz.root@camera:/sys/bus/cpu/devices# echo 1920000 > cpu1/cpufreq/scaling_max_freq root@camera:/sys/bus/cpu/devices# cat cpu*/cpufreq/scaling_max_freq 1920000 1920000 1010475 1010475 root@camera:/sys/bus/cpu/devices# taskset -c 0 yes > /dev/null & [1] 1074 root@camera:/sys/bus/cpu/devices# cat /proc/cpuinfo | grep -i mhz cpu MHz : 1679.962 cpu MHz : 1679.906 cpu MHz : 1420.200 cpu MHz : 1390.668 root@camera:/sys/bus/cpu/devices# sensors acpitz-virtual-0 Adapter: Virtual device temp1: +0.0 C (crit = +90.0 C) coretemp-isa-0000 Adapter: ISA adapter Core 0: +41.0 C (high = +90.0 C, crit = +90.0 C) Core 1: +41.0 C (high = +90.0 C, crit = +90.0 C) Core 2: +42.0 C (high = +90.0 C, crit = +90.0 C) Core 3: +40.0 C (high = +90.0 C, crit = +90.0 C)
Notice that cores 2 and 3 are exceeding the 1 GHz limit (and thus not really obeying).
The tests above were performed with the 'performance' cpu frequency governor, I also tried to put all cores on the 'powersave' governor, but this did not influence the top speed.
Hence conclusion so far, there does seem to be a correlation between the clocks of the cores, it seems like core 0 and core 1 are somehow linked together and so are 2 and 3. I also saw that if one of the cores is forced to a very high state it will also pull some of the other 'up', and vice versa. I have seen a lot of things, but nothing which looks like 1.9 GHz. The only thing which I haven't tried, is to actually 'disable' some of the extra cores. -
Might try one of these to force temps down... Adafruit Solid State CPU Cooler
For the moment let's ignore that the power budget for a single cooler could run a rack shelf of Up boards... -
I am also not able to see more than 1679MHz on all 4 cores.
With the active cooler CPU never goes beyond 48 degree even playing a 4k video