ポエム:REALFORCEと私
私がREALFORCEを手にしたのは12年と半年前、2009年11月のことだ。以前から知ってはいたものの、その価格と「他にもいいキーボードはあるハズ」という冒険心から、長らく購入を見送っていた。その間に使ってきたキーボードは次のとおりである。
pacman -S base-devel pacman -S mingw-w64-x86_64-toolchain pacman -S cmake
/mingw64/bin/cmake .. -G“MSYS Makefiles” -DPA_USE_WMME=1 -DPA_USE_WASAPI=1 -DPA_USE_DS=1 -DPA_USE_WDMKS=1 -DMINGW=1 -DCMAKE_INSTALL_PREFIX=/mingw64 make -j8 make install
pacman -S mingw-w64-x86_64-qt5
mingw-w64-x86_64-qt5 の提案パッケージ
mingw-w64-x86_64-clang mingw-w64-x86_64-libmariadbclient mingw-w64-x86_64-firebird2 mingw-w64-x86_64-postgresql
pacman -S mingw-w64-x86_64-qt-creator
mingw-w64-x86_64-qt-creator の提案パッケージ
mingw-w64-x86_64-gdb: for the debugger mingw-w64-x86_64-cmake: for cmake project support mingw-w64-x86_64-clang: for clang code model
pacman -S git
git clone https://github.com/zaps166/QMPlay2.git git submodule update –init
$ /mingw64/bin/cmake .. -DCMAKE_INSTALL_PREFIX=../install -G“MSYS Makefiles” – Checking for module 'portaudio-2.0' – Found portaudio-2.0, version 19 – Enabled features: * Updates, Build with software updates * OpenGL, Build with OpenGL support * Vulkan, Build with Vulkan support * Freedesktop notifications, Use Freedesktop notifications * D-Bus suspend, Use D-Bus suspend * libass, Build with libass support * Inputs, Build with Inputs module * Modplug, Build with Modplug module * Extensions, Build with Extensions module * MediaBrowser, Build with MediaBrowser support * LastFM, Build with LastFM support * Lyrics, Build with lyrics support * Radio, Build with Radio Browser support * YouTube, Build with YouTube support * MPRIS2, Build Extensions with MPRIS2 support * Visualizations, Build with Visualizations module * AudioFilters, Build with AudioFilters module * VideoFilters, Build with VideoFilters module * PortAudio, Build with PortAudio module * CUVID, Build with CUVID module * Notifications, Build additional notifications module * Git version, Append Git HEAD to QMPlay2 version
– Disabled features: * PCH, Use precompiled headers * GLSLC, Compile Vulkan shaders * TagLib, Build with tags editor * VAAPI, Build VAAPI acceleration into FFmpeg * VDPAU, Build VDPAU acceleration into FFmpeg * libavdevice, Build FFmpeg with libavdevice suport * AudioCD, Build with AudioCD module * ALSA, Build with ALSA module * Chiptune GME, Build Chiptune with GME support * Chiptune SIDPLAY, Build Chiptune with SIDPLAY support * PulseAudio, Build with PulseAudio module * PipeWire, Build with PipeWire module * XVideo, Build with XVideo module * Link Time Optimization, Enable link time optimization for release builds * Address Sanitizer, Use Address Sanitizer * Undefined Behavior Sanitizer, Use Undefined Behavior Sanitizer * SolidActions, Install Solid actions
– Build type: Release – Configuring done – Generating done – Build files have been written to: /home/Decomo/proj/QMPlay2/build
x86_energy_perf_policy - x86モデル固有レジスタを通じたエネルギー対性能ポリシーの管理
x86_energy_perf_policy [オプション] [スコープ] [フィールド値] スコープ: –cpu cpu-list | –pkg pkg-list cpu-list, pkg-list: # | #,# | #-# | all フィールド: –all | –epb | –hwp-epp | –hwp-min | –hwp-max | –hwp-desired その他: (–force | –hwp-enable | –turbo-enable) 値) 値: # | default | performance | balance-performance | balance-power | power
x86_energy_perf_policyはIntelアーキテクチャプロセッサ固有のエネルギー性能ポリシー設定の表示と更新を行います。Linuxのcpufreqサブシステムの有効・無効を問わず、設定はモデル固有レジスタ(MSR)の更新を通して読み書きされます。
MSR_IA32_ENERGY_PERF_BIAS (EPB)のポリシーは、ハードウェアがどれくらい積極的にCPU待機ステート(C-State)とプロセッサ性能ステート(P-State)を行き来するかといった、広範なハードウェア裁定に影響する可能性があります。このポリシーヒントはOSの明確なC-State, P-Stateの選択を置き換えません。正確に言えば、ヒントはこれら選択の実行をどの程度積極的に行うかをハードウェアに伝えます。加えて、EPBはOSに対し、日和見的なTurbo Mode Pステート範囲といった、ソフトウェア上のインタフェースが存在しないエネルギー性能のトレードオフの伝達を許可します。留意点としてMSR_IA32_ENERGY_PERF_BIASはCPU毎に定義されますが、いくつかの実装は1つのMSRを各プロセッサパッケージ内の全CPU間で共有します。こうしたシステムでは、1プロセッサのEPBに対する書き込みがあると、それは同一プロセッサパッケージの全CPUに影響を及ぼすでしょう。
Hardware P-States (HWP)は、ハードウェアPステート制御を日和見的なTurbo Mode Pステート範囲から利用可能なPステートの全範囲を含むよう拡張したもので、事実上のPステート制御を行います。Broadwell XeonのHWPの初期実装では、EPBがHWPに作用します。この作用は後続世代では削除され、2つの専用MSR、MSR_IA32_HWP_REQUESTとMSR_IA32_HWP_REQUEST_PKG内のEnergy_Performance_Preference (EPP)フィールドに移されました。
EPPはHWPモードの最も一般的な制御弁ですが、MSR_IA32_HWP_REQUESTはQoSのための最小周波数の指定、および消費電力上限のための最大周波数の指定をユーザーに許可します。 MSR_IA32_HWP_REQUESTはCPU毎に定義されます。
MSR_IA32_HWP_REQUEST_PKGはMSR_IA32_HWP_REQUESTと同一の能力を持ちますが、パッケージ内の全CPUに対しデフォルトポリシーを同時に設定可能です。 CPU毎のMSR_IA32_HWP_REQUEST内のビットは、MSR_IA32_HWP_REQUEST_PKGによって上書きされたのか、あるいは除外されるのかどうかを示します。
MSR_HWP_CAPABILITIESはMSR_IA32_HWP_REQUESTフィールドのデフォルト値を示します。 It is displayed when no values are being written.
スコープオプション
-p, –pkg Operate on the MSR_IA32_HWP_REQUEST_PKG for each package in the package-list. The list is a string of individual package numbers separated by commas, and or ranges of package numbers separated by a dash, or the string “all”. For example '–pkg 1,3' or '–pkg all'
値オプション
下表は上記設定値と実際のMSRの値の対応表です。このマッピングはLinuxカーネルのヘッダmsr-index.hで定義されています。
設定値 | EPB | EPP |
---|---|---|
performance | 0 | 0 |
balance-performance | 4 | 128 |
normal, default | 6 | 128 |
balance-power | 8 | 192 |
power | 15 | 255 |
MSR_IA32_HWP_REQUEST性能フィールド(–hwp-min, –hwp-max, –hwp-desired)について、その値の単位は100MHzとなり、例えば12は1200MHzを示します。
フィールドオプション
その他オプション
ポリシー変更を伴わないリクエストが行われた場合、デフォルト能力を含むシステムの状態の読み取りと表示を行います。
WARNING
本ユーティリティはモデル固有レジスタを直接書き換えます。 There is no locking or coordination should this utility be used to modify HWP limit fields at the same time
that intel_pstate's sysfs attributes access the same MSRs. intel_pstateのsysfs属性が同じMSRSにアクセスする
–hwp-desiredと–hwp-windowは実験的扱いと見なされる点に留意してください。将来のバージョンのLinuxは、これらフィールドに内部的にアクセスする権利を有し、ユーザースペースからのアクセスと潜在的に競合するかもしれません。
EXAMPLE
# sudo x86_energy_perf_policy cpu0: EPB 6 cpu0: HWP_REQ: min 6 max 35 des 0 epp 128 window 0x0 (0*10^0us) use_pkg 0 cpu0: HWP_CAP: low 1 eff 8 guar 27 high 35 cpu1: EPB 6 cpu1: HWP_REQ: min 6 max 35 des 0 epp 128 window 0x0 (0*10^0us) use_pkg 0 cpu1: HWP_CAP: low 1 eff 8 guar 27 high 35 cpu2: EPB 6 cpu2: HWP_REQ: min 6 max 35 des 0 epp 128 window 0x0 (0*10^0us) use_pkg 0 cpu2: HWP_CAP: low 1 eff 8 guar 27 high 35 cpu3: EPB 6 cpu3: HWP_REQ: min 6 max 35 des 0 epp 128 window 0x0 (0*10^0us) use_pkg 0 cpu3: HWP_CAP: low 1 eff 8 guar 27 high 35
NOTES
x86_energy_perf_policyはroot権限でのみ実行できます。
FILES
/dev/cpu/*/msr
SEE ALSO
msr(4) Intel(R) 64 and IA-32 Architectures Software Developer's Manual
AUTHORS
Len Brown