電子計算記

個人的な検証を

俺のラズパイ2がこんなに遅いわけがない

Scalewayとの比較にあたり、同じARMということでRaspberry Pi 2 Model Bとベンチマーク
俺のラズパイ2でUnixBenchを実行すると、自分が計測したスコアと、他のサイトに載ってるスコアが違う。

こちらのスコアは、1並列で約120、4並列で約300。 Link
他のサイトのスコアは、1並列で約170、4並列で約440。

誤差の範囲ではなさそうということで調べてみたときの流れ。


1) OSの差を確認
UnixBenchはOSによってもスコアが変わってきます。
可能ならOSもバージョンも揃えたい。

他のサイトを見ると、具体的に何のOS使ってるか明示されてなかったりもするけど
UnixBenchの結果に載ってる情報だと、Linuxカーネルのバージョンは
3.18.6-v7+
3.18.7-v7+
3.18.8-v7+
とあり、Raspbian 7 (wheezy)あたりでしょう。
エントリの日時見ても8 (jessie)ではなさそう。

ちなみにこちらは、

pi@raspberrypi ~ $ cat /etc/os-release
PRETTY_NAME="Raspbian GNU/Linux 7 (wheezy)"
NAME="Raspbian GNU/Linux"
VERSION_ID="7"
VERSION="7 (wheezy)"
ID=raspbian
ID_LIKE=debian
ANSI_COLOR="1;31"
HOME_URL="http://www.raspbian.org/"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"
pi@raspberrypi ~ $ uname -a
Linux raspberrypi 3.18.11-v7+ #781 SMP PREEMPT Tue Apr 21 18:07:59 BST 2015 armv7l GNU/Linux

Raspbian7の3.18.11-v7+、
メンテナンスバージョンが多少違いますが、このくらいであればスコアには影響でなさそう。
次へ。


2) オーバークロック/クロックダウンを確認
Raspberry Piでは、CPUの動作クロックを変更することができます。
知らず知らずのウチに定格から落としていたのなと。
次のように変更できます。

pi@raspberrypi ~ $ sudo raspi-config

でコンフィグを開き、
「7 Overclock」
を選択し、定格の
「Medium 900MHz ARM, 250MHz core, 450MHz SDRAM, 2 overvolt」
を選択し、再起動。

結果、遅いまま変わらず。
クロックアップ
「Pi2 1000MHz ARM, 500MHz core, 500MHz SDRAM, 2 overvolt」
して実行、それでもスコアは遅いまま変わらず。
クロックが影響しないとなるとアレですね。


3) 電源不足を確認
クロック変えてもスコアが変わらないとなると電源の問題だなあと。
USB電流&電圧チェッカー使って確認。

f:id:fujish:20151215225700j:plain

問題なさそう。
給電には、Owltech OWL-ACUS4を使ってましたが、
故障を疑ってGen Andru USB Chargerに変更。
それでも結果変わらず。


4) ラズパイの故障を確認
これはもうRaspberry Pi自体が故障しているのではないかと。
久しぶりに起動してるし、結構初期の頃に買ったものだし。
なので、もう1枚買ってきた。

・・・結果変わらず。



5) OSの中身の問題
ハードウェア周りが問題ないとなるとOSの中の方の問題というわけで。
まずは、動作クロックを疑ってみた。

pi@raspberrypi ~ $ lscpu
Architecture:          armv7l
Byte Order:            Little Endian
CPU(s):                4
On-line CPU(s) list:   0-3
Thread(s) per core:    1
Core(s) per socket:    4
Socket(s):             1
pi@raspberrypi ~ $ cat /proc/cpuinfo 
processor	: 0
model name	: ARMv7 Processor rev 5 (v7l)
BogoMIPS	: 57.60
Features	: half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm 
CPU implementer	: 0x41
CPU architecture: 7
CPU variant	: 0x0
CPU part	: 0xc07
CPU revision	: 5

processor	: 1
model name	: ARMv7 Processor rev 5 (v7l)
BogoMIPS	: 57.60
Features	: half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm 
CPU implementer	: 0x41
CPU architecture: 7
CPU variant	: 0x0
CPU part	: 0xc07
CPU revision	: 5

processor	: 2
model name	: ARMv7 Processor rev 5 (v7l)
BogoMIPS	: 57.60
Features	: half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm 
CPU implementer	: 0x41
CPU architecture: 7
CPU variant	: 0x0
CPU part	: 0xc07
CPU revision	: 5

processor	: 3
model name	: ARMv7 Processor rev 5 (v7l)
BogoMIPS	: 57.60
Features	: half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm 
CPU implementer	: 0x41
CPU architecture: 7
CPU variant	: 0x0
CPU part	: 0xc07
CPU revision	: 5

Hardware	: BCM2709
Revision	: a01041
Serial		: 00000000ae0b8681

クロックは出てこないようなので別方法で。

pi@raspberrypi ~ $ sudo cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq 
600000

なんと600 MHz!定格は900 MHzのはず。
つまり、CPUの省電力機能が動いているわけで。

pi@raspberrypi ~ $ sudo cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor 
powersave
pi@raspberrypi ~ $ sudo cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors 
conservative ondemand userspace powersave performance 

やっぱり、powersaveになってる。performanceに変えてやろう。

pi@raspberrypi ~ $ sudo apt-get install cpufrequtils -y
pi@raspberrypi ~ $ sudo cpufreq-set -g performance
pi@raspberrypi ~ $ cpufreq-info

cpufreq-infoで、current policyがperformanceになっていて、
current CPU frequencyが900 MHzになっていれば成功。

この状態で実行。
本来のスコアが出たよ! Link

知らなかった、Raspberry Pi 2のCPUからは、クロック可変だったの。
ARMとARM Linuxも進んでますねー。