How to turn off Turbo Boost temporarily?
In our application we have many versions of the same routine optimized for different kind of 开发者_如何转开发processor architectures. During install we run performance tests and select the best version of routine.
Latest processors can boost their frequencies if few cores are in use, so sometimes our tests peeking wrong version of routine. Is there some way to temporarily turn off Turbo Boost?
I don't know the opcode for enabling/disabling turbo boost directly, but apparently it's possible because TMonitor - which is a Windows application - can do it at runtime.
There are MSR registers (https://en.wikipedia.org/wiki/Model-specific_register) in Intel CPUs to disable/enable per-core turbo boost. In linux, there are msr-tools
package which allow root to read/write to MSR registers. There are two posts about Turbo Boost disabling/enabling in Linux:
https://askubuntu.com/questions/619875/disabling-intel-turbo-boost-in-ubuntu "Disabling Intel Turbo Boost in ubuntu", answer by Maythux from 2015
http://luisjdominguezp.tumblr.com/post/19610447111/disabling-turbo-boost-in-linux Disabling Turbo Boost in Linux, Luis J. Dominguez P, 2012-2013; Sandy Bridge - "38th bit of the 0x1a0 register."
http://notepad2.blogspot.com/2014/11/a-script-to-turn-off-intel-cpu-turbo.html
And there is kext for OSX to do the same: Disable Turbo Boost on Core i7 Mac?
In windows OS you can add the following reg key.
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\54533251-82be-4824-96c1-47b60b740d00\be337238-0d82-4146-a960-4f3749d470c7]
"Attributes"=dword:00000002
Then in advanced power settings you will get new option that allows you turning off turbo boost.
精彩评论