web-dev-qa-db-ja.com

インテルターボブーストを選択的に有効にしますか?

ラップトップでは、Intelの「ターボブースト」テクノロジーにより、CPU温度が望ましくないほど高くなり、ファンノイズが発生する可能性があります。モデルによっては、最大クロックレートを使用しているときに、コイルが一定ではなく聞こえる場合もあります。特にウェブブラウジングは、頻繁なクロックレートの急上昇をもたらす傾向があり、広告ブロッカーは症状を緩和しますが、除去しません。特にWebブラウジングは、実際にはそのすべてのパフォーマンスを必要としない場合でも、望ましくないCPU温度の急上昇をもたらします。

Windowsの高度な電源プラン設定で最大CPU速度を99%に設定すると、ターボブーストを効果的に無効にしてこの問題を回避できます。

悲しいことに、それはスレッジギャマーからナッツを割るソリューションです。排出量の削減は、継続的に実行されるプログラム(Webbrowser、Officeなど)に関連しますが、処理速度への重大な影響は、ユーザーとしての私が特定の短期間のタスク(コンパイル、データ分析など)には望ましくありません。実行するタイミングと期間を制御します。実行中に待機時間が発生することがよくあります。

プログラムがデフォルトでTurboBoostの使用を禁止されているが、実行可能ファイルがCPUパフォーマンス全体へのアクセスを選択的に許可できるという中間点を見つけることはどういうわけか可能ですか?

2
kdb

私が質問で尋ねたように、ターボブーストを選択的に有効にすることはおそらく不可能です。ただし、「次善の策」として、短期間のコマンドの実行の前後に電源プランを変更するラッパーを使用するだけで十分な場合があります。私はそれを https://github.com/kbauer/with-high-performance として投稿しました

スクリプトの作成時点では、次の形式になっています。

:: -- with-high-performance.cmd
@echo off
if "%~1"=="" (
   echo.
   echo    Usage: %0 COMMAND ...
   echo.
   echo    Execute COMMAND with HighPerformance powerplan.
   echo    Once COMMAND is finished, switch back to Balanced.
   echo.
   echo    For the time being, doesn't support detecting if another
   echo    process is being executed in this panner.
   echo.
   echo    If you need other power plans than the "balanced"
   echo    and "high performance" plans, change the UIDs in the 
   echo    script to a value as obtained by running
   echo.
   echo    ^ ^ ^ ^ POWERCFG /LIST
   echo.
   exit /b 1
)

setlocal
set high=8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c
set balanced=381b4222-f694-41f0-9685-ff5bb260df2e
echo %0^> %* >&2
call powercfg.exe -setactive %high%
call %*
set command_errorlevel=%errorlevel%
call powercfg.exe -setactive %balanced%
endlocal
exit /b %command_errorlevel%

ただし、スクリプトは電源プランを正しく切り替えますが、これまでのところ、pdflatex/latexmkを使用した場合のスピードアップは見られませんでした。

0
kdb