Raspberry pi を Overclock で動かす
Raspbian で raspi-config を起動したら「Overclock
」という設定がある事に気がついた。
なんだこれ?
このタイトルの通り、CPUをオーバークロックで動かして高速化できるのだろうか。
30年くらい前、ずんべ は NEC PC-6001MKⅡ を持っていたのだが、同時期に販売されていた PC-8001 シリーズや、PC-8901 シリーズと比べると、とても非力なPCだった。
ずんべ は、この PC-6001MKⅡ の水晶振動子を高クロックなものに換装して、むりやりマシンパワーを上げた事がある。
もちろん、オーバークロックすると、PC自体は不安定になる場合があるので、元々取り付けられていた水晶振動子にスイッチで切り替えられるようにしていた。
昔のPCは、そんな事もできたけれど、Raspberry pi の Raspbian では、動作クロックをソフトウェア的にコントロールできるらしい。
すごい、すごい。
実際、オーバークロックによって、どのくらい速度が変わるのだろう。
UnixBench を使って、動作速度を計測してみようと思う。
オーバークロックを設定しようとすると、警告が表示される。
訳すと…
オーバークロックすると、動作が不安定になるかもしれない。
オーバークロックを無効にするには、シフトキーを押しながらブートしてください。
という感じだろうか。
要するに自己責任でやれって事だ。
これをやって、Raspberry pi が壊れてしまっても数千円だ。やってみよう。
オーバークロックの選択肢は6個ある。
このうち、以下の3つの設定で動作速度を計測してみる事にする。
None(デフォルト)
Medium
Turbo
結果は…
■None
Dhrystone 2 using register variables 1677505.4 lps (10.0 s, 7 samples) Double-Precision Whetstone 239.1 MWIPS (10.0 s, 7 samples) Execl Throughput 169.2 lps (29.9 s, 2 samples) File Copy 1024 bufsize 2000 maxblocks 28763.1 KBps (30.0 s, 2 samples) File Copy 256 bufsize 500 maxblocks 9142.5 KBps (30.2 s, 2 samples) File Copy 4096 bufsize 8000 maxblocks 77165.4 KBps (30.0 s, 2 samples) Pipe Throughput 130202.8 lps (10.0 s, 7 samples) Pipe-based Context Switching 14739.9 lps (10.0 s, 7 samples) Process Creation 443.0 lps (30.0 s, 2 samples) Shell Scripts (1 concurrent) 364.5 lpm (60.2 s, 2 samples) Shell Scripts (8 concurrent) 46.5 lpm (60.6 s, 2 samples) System Call Overhead 327900.7 lps (10.0 s, 7 samples) System Benchmarks Index Values BASELINE RESULT INDEX Dhrystone 2 using register variables 116700.0 1677505.4 143.7 Double-Precision Whetstone 55.0 239.1 43.5 Execl Throughput 43.0 169.2 39.3 File Copy 1024 bufsize 2000 maxblocks 3960.0 28763.1 72.6 File Copy 256 bufsize 500 maxblocks 1655.0 9142.5 55.2 File Copy 4096 bufsize 8000 maxblocks 5800.0 77165.4 133.0 Pipe Throughput 12440.0 130202.8 104.7 Pipe-based Context Switching 4000.0 14739.9 36.8 Process Creation 126.0 443.0 35.2 Shell Scripts (1 concurrent) 42.4 364.5 86.0 Shell Scripts (8 concurrent) 6.0 46.5 77.5 System Call Overhead 15000.0 327900.7 218.6 ======== System Benchmarks Index Score 73.8
■Medium
Dhrystone 2 using register variables 2171985.2 lps (10.0 s, 7 samples) Double-Precision Whetstone 310.1 MWIPS (10.0 s, 7 samples) Execl Throughput 189.9 lps (29.9 s, 2 samples) File Copy 1024 bufsize 2000 maxblocks 33122.7 KBps (30.0 s, 2 samples) File Copy 256 bufsize 500 maxblocks 10475.4 KBps (30.1 s, 2 samples) File Copy 4096 bufsize 8000 maxblocks 86263.4 KBps (30.0 s, 2 samples) Pipe Throughput 159753.6 lps (10.0 s, 7 samples) Pipe-based Context Switching 16159.4 lps (10.0 s, 7 samples) Process Creation 472.9 lps (30.0 s, 2 samples) Shell Scripts (1 concurrent) 406.3 lpm (60.1 s, 2 samples) Shell Scripts (8 concurrent) 53.2 lpm (60.9 s, 2 samples) System Call Overhead 430825.0 lps (10.0 s, 7 samples) System Benchmarks Index Values BASELINE RESULT INDEX Dhrystone 2 using register variables 116700.0 2171985.2 186.1 Double-Precision Whetstone 55.0 310.1 56.4 Execl Throughput 43.0 189.9 44.2 File Copy 1024 bufsize 2000 maxblocks 3960.0 33122.7 83.6 File Copy 256 bufsize 500 maxblocks 1655.0 10475.4 63.3 File Copy 4096 bufsize 8000 maxblocks 5800.0 86263.4 148.7 Pipe Throughput 12440.0 159753.6 128.4 Pipe-based Context Switching 4000.0 16159.4 40.4 Process Creation 126.0 472.9 37.5 Shell Scripts (1 concurrent) 42.4 406.3 95.8 Shell Scripts (8 concurrent) 6.0 53.2 88.7 System Call Overhead 15000.0 430825.0 287.2 ======== System Benchmarks Index Score 86.4
■Turbo
Dhrystone 2 using register variables 2431707.5 lps (10.0 s, 7 samples) Double-Precision Whetstone 347.7 MWIPS (9.9 s, 7 samples) Execl Throughput 282.6 lps (29.6 s, 2 samples) File Copy 1024 bufsize 2000 maxblocks 48943.3 KBps (30.0 s, 2 samples) File Copy 256 bufsize 500 maxblocks 15322.5 KBps (30.1 s, 2 samples) File Copy 4096 bufsize 8000 maxblocks 129841.4 KBps (30.0 s, 2 samples) Pipe Throughput 200511.2 lps (10.0 s, 7 samples) Pipe-based Context Switching 25045.2 lps (10.0 s, 7 samples) Process Creation 725.8 lps (30.0 s, 2 samples) Shell Scripts (1 concurrent) 590.4 lpm (60.1 s, 2 samples) Shell Scripts (8 concurrent) 75.7 lpm (60.3 s, 2 samples) System Call Overhead 467398.3 lps (10.0 s, 7 samples) System Benchmarks Index Values BASELINE RESULT INDEX Dhrystone 2 using register variables 116700.0 2431707.5 208.4 Double-Precision Whetstone 55.0 347.7 63.2 Execl Throughput 43.0 282.6 65.7 File Copy 1024 bufsize 2000 maxblocks 3960.0 48943.3 123.6 File Copy 256 bufsize 500 maxblocks 1655.0 15322.5 92.6 File Copy 4096 bufsize 8000 maxblocks 5800.0 129841.4 223.9 Pipe Throughput 12440.0 200511.2 161.2 Pipe-based Context Switching 4000.0 25045.2 62.6 Process Creation 126.0 725.8 57.6 Shell Scripts (1 concurrent) 42.4 590.4 139.2 Shell Scripts (8 concurrent) 6.0 75.7 126.1 System Call Overhead 15000.0 467398.3 311.6 ======== System Benchmarks Index Score 117.7
おぉ、すごい。
高いクロックを選択して動かすと、確かに速くなる。
「None」に比べて、「Medium」では約1.1倍、「Turbo」では約1.5倍で動作している。
警告画面に表示されていた通り、オーバークロックで動かすとハードウェアの寿命を縮めてしまう可能性があるのだろうけど、1.5倍は捨てがたい。
壊れて元々で「Turbo」で運用してみようと思う。