LINUX.ORG.RU

Как заставить процессор работать на максимальной частоте?

 , ,


0

3

Имею следующий процессор:

sudo cat /proc/cpuinfo | grep 'model name' | uniq
model name	: Intel(R) Core(TM) i5-3570K CPU @ 3.40GHz

sudo cpufreq-info -l
1600000 3401000
В BIOS выставлено, что он может разгоняться до 4400 MHz. Под Windows при нагрузке он так и делает, а в Linux его максимальная частота ограничена штатными 3400 MHz. Как его заставить работать на 4400 MHz?


Ответ на: комментарий от YAR
sudo cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq

показывает частоту не выше 3400 MHz и программы-числодробилки работают заметно медленнее, чем под оффтопиком.

vasin
() автор топика
Ответ на: комментарий от YAR

sudo cpufreq-aperf

Error reading /dev/cpu/0/msr, load/enable msr.ko

У тебя однопоточные числодробилки?

Нет, openmp на всех четырех ядрах молотит.

vasin
() автор топика
Ответ на: комментарий от vasin

Error reading /dev/cpu/0/msr, load/enable msr.ko

Перевести?

Нет, openmp на всех четырех ядрах молотит.

Тогда о каком Turbo Core (или как там оно у Intel'а) речь? Он работает только пока проц укладывается в тепловой пакет - при загрузке одного-двух ядер.

Или что значит «может разгоняться»?

YAR ★★★★★
()
Последнее исправление: YAR (всего исправлений: 1)
Ответ на: комментарий от YAR

Перевести я сам умею, меня бы научить как этот msr.ko load или enable.

Под оффтопиком у процессора работают все 4 ядра на 4400 MHz. От номинального значения теплового пакета частота вроде никак не зависит.

vasin
() автор топика
Ответ на: комментарий от vasin

меня бы научить как этот msr.ko load или enable.

sudo modprobe msr

От номинального значения теплового пакета частота вроде никак не зависит.

Т.е., это просто разгон за счет коэффициента или частоты шины? Он не обязательно будет отображаться в системе. В таком случае просто протестируй скорость на штатной частоте и в режиме разгона. Возможно причина медленной работы числодробилки в линуксе в чем-то другом.

YAR ★★★★★
()
Ответ на: комментарий от YAR

При нагрузке на все 4 ядра:

sudo cpufreq-aperf
CPU	Average freq(KHz)	Time in C0	Time in Cx	C0 percentage
000	3060900			00 sec 999 ms	00 sec 000 ms	99
001	3060900			00 sec 999 ms	00 sec 000 ms	99
002	3060900			00 sec 999 ms	00 sec 000 ms	99
003	3060900			00 sec 999 ms	00 sec 000 ms	99

000	3060900			00 sec 998 ms	00 sec 001 ms	99
001	3060900			00 sec 998 ms	00 sec 001 ms	99
002	3060900			00 sec 998 ms	00 sec 001 ms	99
003	3060900			00 sec 996 ms	00 sec 003 ms	99

000	3026890			00 sec 998 ms	00 sec 001 ms	99
001	3026890			00 sec 998 ms	00 sec 001 ms	99
002	3026890			00 sec 998 ms	00 sec 001 ms	99
003	3026890			00 sec 998 ms	00 sec 001 ms	99

000	3060900			00 sec 998 ms	00 sec 001 ms	99
001	3060900			00 sec 998 ms	00 sec 001 ms	99
002	3060900			00 sec 998 ms	00 sec 001 ms	99
003	3060900			00 sec 998 ms	00 sec 001 ms	99

000	3060900			00 sec 998 ms	00 sec 001 ms	99
001	3060900			00 sec 998 ms	00 sec 001 ms	99
002	3060900			00 sec 998 ms	00 sec 001 ms	99
003	3060900			00 sec 998 ms	00 sec 001 ms	99

000	3026890			00 sec 999 ms	00 sec 000 ms	99
001	3026890			00 sec 999 ms	00 sec 000 ms	99
002	3026890			00 sec 999 ms	00 sec 000 ms	99
003	3026890			00 sec 999 ms	00 sec 000 ms	99
Разгон за счет динамического увеличения коэффициента умножения. На штатной частоте протестировать могу, а в разгон под линуксом порцесор не входит - он сам должен коэффициент умножения под нагрузкой задрать до 44.

Я сравнивал ассемблерные листинги, которые выдает интеловский компилятор под Linux и оффтопиком. Они идентичны.

vasin
() автор топика

Что показывают команды ниже?

$ ls /sys/devices/system/cpu/intel_pstate/* | while read name; do echo $name: $(cat $name); done
$ cpufreq-info | grep drive

Какие частоты показывает i7z?

# i7z
i-rinat ★★★★★
()
Ответ на: комментарий от YAR
sudo grep . /sys/devices/system/cpu/intel_pstate/*
grep: /sys/devices/system/cpu/intel_pstate/*: Нет такого файла или каталога

sudo ls /sys/devices/system/cpu/intel_pstate/* | while read name; do echo $name: $(cat $name); done
ls: невозможно получить доступ к /sys/devices/system/cpu/intel_pstate/*: Нет такого файла или каталога
vasin
() автор топика

sudo cpufreq-info -l

сейчас модно sudo cpupower info

anTaRes ★★★★
()
Ответ на: комментарий от i-rinat
sudo cpufreq-info | grep drive
  driver: acpi-cpufreq
  driver: acpi-cpufreq
  driver: acpi-cpufreq
  driver: acpi-cpufreq

sudo ./i7z
i7z DEBUG: i7z version: svn-r77-(20-Nov-2011)
i7z DEBUG: Found Intel Processor
i7z DEBUG:    Stepping 9
i7z DEBUG:    Model a
i7z DEBUG:    Family 6
i7z DEBUG:    Processor Type 0
i7z DEBUG:    Extended Model 3
i7z DEBUG: msr = Model Specific Register
i7z DEBUG: Detected an ivy bridege processor
i7z DEBUG: msr device files exist /dev/cpu/*/msr
i7z DEBUG: You have write permissions to msr device files

------------------------------
--[core id]--- Other information
-------------------------------------
--[0] Processor number 0
--[0] Socket number/Hyperthreaded Sibling number  0,-1
--[0] Core id number 0
--[0] Display core in i7z Tool: Yes

--[1] Processor number 1
--[1] Socket number/Hyperthreaded Sibling number  0,-1
--[1] Core id number 1
--[1] Display core in i7z Tool: Yes

--[2] Processor number 2
--[2] Socket number/Hyperthreaded Sibling number  0,-1
--[2] Core id number 2
--[2] Display core in i7z Tool: Yes

--[3] Processor number 3
--[3] Socket number/Hyperthreaded Sibling number  0,-1
--[3] Core id number 3
--[3] Display core in i7z Tool: Yes

Socket-0 [num of cpus 4 physical 4 logical 4] 0,1,2,3,
Socket-1 [num of cpus 0 physical 0 logical 0] 
GUI has been Turned ON
Logging is OFF
i7z DEBUG: Single Socket Detected
i7z DEBUG: In i7z Single_Socket()
i7z DEBUG: guessing Sandy Bridge


True Frequency (without accounting Turbo) 3399 MHz
Cpu speed from cpuinfo 3399.00Mhz
cpuinfo might be wrong if cpufreq is enabled. To guess correctly try estimating via tsc
Linux's inbuilt cpu_khz code emulated now

  CPU Multiplier 34x || Bus clock frequency (BCLK) 99.97 MHz

Socket [0] - [physical cores=4, logical cores=4, max online cores ever=4]
  TURBO ENABLED on 4 Cores, Hyper Threading OFF
  Max Frequency without considering Turbo 3498.97 MHz (99.97 x [35])
  Max TURBO Multiplier (if Enabled) with 1/2/3/4 Cores is  43x/43x/43x/43x
  Real Current Frequency 1646.66 MHz [99.97 x 16.47] (Max of below)
vasin
() автор топика
Ответ на: комментарий от i-rinat

Ядро должно быть собрано с CONFIG_X86_INTEL_PSTATE=y. Он вроде как нужен, чтобы TurboBoost включался.

ОК. Завтра попробую перекомпилить ядро.

vasin
() автор топика

Интересное поведение. Без нагрузки множитель прыгает от 29...34. Как только запускаю linpack и загрузка становится 100% на всех ядрах, множитель становится ровно 32 на всех ядрах. С чем может ыбть связано такое поведение?

int13h ★★★★★
()
Ответ на: комментарий от i-rinat

Поставил Debian 8.1 с ядром 3.16 и все мои проблемы закончились. Частота динамически поднимается до максимума. Спасибо за подсказку.

vasin
() автор топика
Ответ на: комментарий от int13h

С чем может ыбть связано такое поведение?

тепловой пакет

unanimous ★★★★★
()
Ответ на: комментарий от int13h

если занято одно ядро — его можно оверклокнуть, если все — нахрен всё расплавится если их оверклокать

anonymous
()
Ответ на: комментарий от vasin

потому что ты потом проснулся

anonymous
()
Ответ на: комментарий от vasin

разогнал

this

технология компании Intel для автоматического увеличения тактовой частоты процессора свыше номинальной, если при этом не превышаются ограничения мощности, температуры и тока в составе расчетной мощности (TDP). Это приводит к увеличению производительности однопоточных и многопоточных приложений.
int13h ★★★★★
()
Ответ на: комментарий от int13h

Если я правильно понимаю, проц не будет использовать буст при макисмальной нагрузке - т.е. в данном случае он будет на номинальных нагрузках, но при полной загрузке

int13h ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.