前々から買おうと思ってましたが、中々発送されなさそうだったので後回しにしていたRaspberry Pi 2(Model B)を買ってきました。用途は考えてません。
ちなみに、普通に近所のパーツ屋さんで売ってました・・・。
今回はケースとmicroSD(32GB)、2AのmicroUSB充電器も合わせて買ったのでほぼフルセットです。
HDMIは最初のセットアップしか使わない(SSH接続する)ので、既存のを一時的に流用しています。
ケースかこいい。
CPUはクアッドコアになったりメモリが1GBになったりしているせいか、「6x FASTER」という文字が書いてあります。
奥が初代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なのです