読者です 読者をやめる 読者になる 読者になる

チラシの裏の落書き

意識はあまり高くないです

今さらRaspberry Pi 2(Model B)を買ったので、Raspberry Pi 1(Model B)と比べてみた

Raspberry Pi ハードウェア

前々から買おうと思ってましたが、中々発送されなさそうだったので後回しにしていたRaspberry Pi 2(Model B)を買ってきました。用途は考えてません。
ちなみに、普通に近所のパーツ屋さんで売ってました・・・。

今回はケースとmicroSD(32GB)、2AのmicroUSB充電器も合わせて買ったのでほぼフルセットです。
HDMIは最初のセットアップしか使わない(SSH接続する)ので、既存のを一時的に流用しています。

f:id:taiko19xx:20150706233543j:plain

ケースかこいい。

f:id:taiko19xx:20150706233617j:plain

CPUはクアッドコアになったりメモリが1GBになったりしているせいか、「6x FASTER」という文字が書いてあります。

f:id:taiko19xx:20150706233838j:plain

奥が初代Raspberry Pi 1(ModelB)です。普通のSDカードだったためはみ出していたり、無線LANで運用していたため、ドングルが刺さっています。
大きさはほぼ同じですが、細かい所で色々違います。

という訳で、今さらではありますが、Raspberry Pi 1とどれぐらい差があるのか比べてみる事にしました。
実際に自分の目で確かめてみないと何とも言えませんので、どれだけベンチマーク結果が世の中に出回っていようとも気にせず実行します。

ハードウェアスペックはそれぞれこんな感じです。スペックはそこそこ違います。

Raspberry Pi 2(Model B) Raspberry Pi 1(Model B)
SoC Broadcom BCM2835 Broadcom BCM2836
CPU ARM1176JZF-S 700Mhz 1コア ARM Cortex-A7 900Mhz 4コア
GPU Broadcom VideoCore IV 250Mhz
メモリ 256MB*1 1GB
USB 2つ 4つ

(https://ja.wikipedia.org/wiki/Raspberry_Pi より)

OSは共通化されているので、同じ物を入れています。
NOOBS経由で入れたRaspbianで、piのパスワード変更・sshdの有効化・有線IPの固定化とapt-get upgradeによるアップデートを行っています。

それでは、環境を整えた所でベンチマーク・・・を取る前に/proc/cpuinfoと/proc/meminfoをそれぞれの環境で確認してみました。

Pi 2

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

(4コアなので略)
pi@raspberrypi ~ $ cat /proc/meminfo
MemTotal:         949408 kB
MemFree:          889084 kB
MemAvailable:     904044 kB
Buffers:            6788 kB
Cached:            26996 kB
SwapCached:            0 kB
Active:            30552 kB
Inactive:          10236 kB
Active(anon):       7048 kB
Inactive(anon):      208 kB
Active(file):      23504 kB
Inactive(file):    10028 kB
Unevictable:           0 kB
Mlocked:               0 kB
SwapTotal:        102396 kB
SwapFree:         102396 kB
Dirty:                 0 kB
Writeback:             0 kB
AnonPages:          6856 kB
Mapped:             8144 kB
Shmem:               240 kB
Slab:               9104 kB
SReclaimable:       3812 kB
SUnreclaim:         5292 kB
KernelStack:         704 kB
PageTables:          536 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:      577100 kB
Committed_AS:      42548 kB
VmallocTotal:    1105920 kB
VmallocUsed:        1084 kB
VmallocChunk:     884944 kB

Pi 1

pi@raspberrypi ~ $ cat /proc/cpuinfo 
processor   : 0
model name  : ARMv6-compatible processor rev 7 (v6l)
BogoMIPS    : 2.00
Features    : half thumb fastmult vfp edsp java tls 
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x0
CPU part    : 0xb76
CPU revision    : 7
pi@raspberrypi ~ $ cat /proc/meminfo 
MemTotal:         185908 kB
MemFree:          103484 kB
MemAvailable:     142308 kB
Buffers:           10148 kB
Cached:            46812 kB
SwapCached:            0 kB
Active:            49932 kB
Inactive:          14532 kB
Active(anon):       7540 kB
Inactive(anon):      220 kB
Active(file):      42392 kB
Inactive(file):    14312 kB
Unevictable:           0 kB
Mlocked:               0 kB
SwapTotal:        102396 kB
SwapFree:         102396 kB
Dirty:                32 kB
Writeback:             0 kB
AnonPages:          7516 kB
Mapped:             8996 kB
Shmem:               260 kB
Slab:               8768 kB
SReclaimable:       5200 kB
SUnreclaim:         3568 kB
KernelStack:         552 kB
PageTables:          596 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:      195348 kB
Committed_AS:      43080 kB
VmallocTotal:     827392 kB
VmallocUsed:        1244 kB
VmallocChunk:     587904 kB

では、早速ベンチマークを取ってみます。使ったのはUnixbenchです。
結果はこんな感じでした。

Pi 2

複数コアが存在する場合は、1個だけ使った場合と全て使った場合の2パターンのベンチマークが取られるため、2つ掲載しています。

1コアのみ
------------------------------------------------------------------------
Benchmark Run: Sun Jul 05 2015 22:23:29 - 22:51:25
4 CPUs in system; running 1 parallel copy of tests

Dhrystone 2 using register variables        2983375.7 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                      497.9 MWIPS (10.0 s, 7 samples)
Execl Throughput                                368.3 lps   (29.5 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks         70296.0 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks           20112.5 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks        187486.5 KBps  (30.0 s, 2 samples)
Pipe Throughput                              166989.6 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                  33595.5 lps   (10.0 s, 7 samples)
Process Creation                               1289.8 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                   1203.9 lpm   (60.0 s, 2 samples)
Shell Scripts (8 concurrent)                    337.2 lpm   (60.1 s, 2 samples)
System Call Overhead                         403748.1 lps   (10.0 s, 7 samples)

System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0    2983375.7    255.6
Double-Precision Whetstone                       55.0        497.9     90.5
Execl Throughput                                 43.0        368.3     85.6
File Copy 1024 bufsize 2000 maxblocks          3960.0      70296.0    177.5
File Copy 256 bufsize 500 maxblocks            1655.0      20112.5    121.5
File Copy 4096 bufsize 8000 maxblocks          5800.0     187486.5    323.3
Pipe Throughput                               12440.0     166989.6    134.2
Pipe-based Context Switching                   4000.0      33595.5     84.0
Process Creation                                126.0       1289.8    102.4
Shell Scripts (1 concurrent)                     42.4       1203.9    283.9
Shell Scripts (8 concurrent)                      6.0        337.2    562.0
System Call Overhead                          15000.0     403748.1    269.2
                                                                   ========
System Benchmarks Index Score                                         172.3
4コア全て
------------------------------------------------------------------------
Benchmark Run: Sun Jul 05 2015 22:51:25 - 23:19:28
4 CPUs in system; running 4 parallel copies of tests

Dhrystone 2 using register variables       11931142.6 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                     1990.0 MWIPS (9.9 s, 7 samples)
Execl Throughput                               1367.7 lps   (29.9 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks        115173.4 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks           32854.9 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks        313350.9 KBps  (30.0 s, 2 samples)
Pipe Throughput                              664624.0 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                 130097.0 lps   (10.0 s, 7 samples)
Process Creation                               2867.7 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                   2698.0 lpm   (60.1 s, 2 samples)
Shell Scripts (8 concurrent)                    355.9 lpm   (60.4 s, 2 samples)
System Call Overhead                        1557596.0 lps   (10.0 s, 7 samples)

System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0   11931142.6   1022.4
Double-Precision Whetstone                       55.0       1990.0    361.8
Execl Throughput                                 43.0       1367.7    318.1
File Copy 1024 bufsize 2000 maxblocks          3960.0     115173.4    290.8
File Copy 256 bufsize 500 maxblocks            1655.0      32854.9    198.5
File Copy 4096 bufsize 8000 maxblocks          5800.0     313350.9    540.3
Pipe Throughput                               12440.0     664624.0    534.3
Pipe-based Context Switching                   4000.0     130097.0    325.2
Process Creation                                126.0       2867.7    227.6
Shell Scripts (1 concurrent)                     42.4       2698.0    636.3
Shell Scripts (8 concurrent)                      6.0        355.9    593.1
System Call Overhead                          15000.0    1557596.0   1038.4
                                                                   ========
System Benchmarks Index Score                                         442.8

Pi 1

------------------------------------------------------------------------
Benchmark Run: Mon Jul 06 2015 00:10:56 - 00:39:16
1 CPU in system; running 1 parallel copy of tests

Dhrystone 2 using register variables        1678238.8 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                      267.8 MWIPS (10.0 s, 7 samples)
Execl Throughput                                191.9 lps   (29.9 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks         32795.5 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks           10158.0 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks         82736.4 KBps  (30.0 s, 2 samples)
Pipe Throughput                              140958.2 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                  15809.0 lps   (10.0 s, 7 samples)
Process Creation                                484.3 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                    365.2 lpm   (60.1 s, 2 samples)
Shell Scripts (8 concurrent)                     46.6 lpm   (60.6 s, 2 samples)
System Call Overhead                         350787.1 lps   (10.0 s, 7 samples)

System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0    1678238.8    143.8
Double-Precision Whetstone                       55.0        267.8     48.7
Execl Throughput                                 43.0        191.9     44.6
File Copy 1024 bufsize 2000 maxblocks          3960.0      32795.5     82.8
File Copy 256 bufsize 500 maxblocks            1655.0      10158.0     61.4
File Copy 4096 bufsize 8000 maxblocks          5800.0      82736.4    142.6
Pipe Throughput                               12440.0     140958.2    113.3
Pipe-based Context Switching                   4000.0      15809.0     39.5
Process Creation                                126.0        484.3     38.4
Shell Scripts (1 concurrent)                     42.4        365.2     86.1
Shell Scripts (8 concurrent)                      6.0         46.6     77.6
System Call Overhead                          15000.0     350787.1    233.9
                                                                   ========
System Benchmarks Index Score                                          79.2

System Benchmarks Index Score の値で比較すると、1コアだけでも倍以上の差が付いていて、4コア全ての場合だと確かに6倍近く差が出ていました。
確かに、UnixBenchを落としてくるまでにかかった時間やmakeにかかる時間にも違いが現れていましたので、あながち嘘でもなさそうです。

ベンチマーク取っただけで満足してしまった感がありますが、折角なので何かに使わなければなりません。 さて、どう料理しましょうか・・・。

*1:本当は512MBらしいのですが、初期ロットは256MBなのです