漢なら Linux でも amdgpu-pro ドライバで AMD GPU をアンダークロックし, 電力効率の良い計算したいですね!
やりましょう!
以前はできなかったのですが, amdgpu-pro 17.40 あたりからできるようになっているようです.
環境
Ubuntu 16.04.3 LTS(Kernel 4.10.0-37)
セットアップ
amdgpu-pro 17.40 beta ドライバを --compute
でインストールしておきます.
ROCM-smi をクローンしておきます.
制御する
rocm-smi では NVIDIA の nvidia-smi
とは異なり, パワーリミットを設定することができず, コアクロックか GPU クロックの調整のみ可能です.
(OC 用に OverDrive レベルを設定できるが, これは負の値を取れないのでアンダークロックには使えない)
また, クロックは MHz やパーセンテージ指定ではなく, レベルを指定します.
$ rocm-smi --setsclk N
==================== ROCm System Management Interface ====================
================================================================================
GPU DID Temp AvgPwr SCLK MCLK Fan Perf OverDrive ECC
3 67df 70.0c 69.73W 1145Mhz 2000Mhz 33.73% manual 0% N/A
...
================================================================================
==================== End of ROCm SMI Log ====================
XMR(モネロ)マイニングプログラムでは, RX 480 で hashrate 620 H/s -> 610 H/s と少しの低下に抑えつつ, AvgPwr が 90W -> 70W 程度に下がりました.
(rocm-smi での表示なので, 実際の消費電力はもう少し大きい可能性があります)
R9 Nano などは GPU クロックはレベルが一つしかないので変更できません(Windows ではできるが...)
TODO
rocmi-smi
は単なるスクリプトなので, /sys
あたりを直接叩けばより詳細なアンダークロック制御ができるかもしれません.
アンダーボルティングはサポートされません( https://github.com/RadeonOpenCompute/ROCm/issues/216 )が, 昔はできていたのでカーネルをハックすればいけるかも?