Raspberry Pi Zero Wベンチマーク

Raspberry Pi Zero W (以下RPi0W)はBroadcom BCM2835というSoCを搭載していて、 ARM1176JZF-S (ARMv6系ARM11) というシングルコアのCPUが1GHzで動くらしい。無線無しモデルのRaspberry Pi Zeroも同じ。

RaspbianでCPU情報を見る

pi@raspberrypi:~ $ lscpu
Architecture:          armv6l
Byte Order:            Little Endian
CPU(s):                1
On-line CPU(s) list:   0
Thread(s) per core:    1
Core(s) per socket:    1
Socket(s):             1
Model:                 7
Model name:            ARMv6-compatible processor rev 7 (v6l)
CPU max MHz:           1000.0000
CPU min MHz:           700.0000
BogoMIPS:              697.95
Flags:                 half thumb fastmult vfp edsp java tls

CPUの最大周波数が1000.0000になってるけどARM1176JZF-Sって990MHzじゃなかったかしら。数値丸めてる?

UnixBenchで計測

pi@raspberrypi:~ $ ./UnixBench/Run -c 1 -c 2 -c 4 
make all
make[1]: Entering directory '/home/pi/UnixBench'
Checking distribution of files
./pgms  exists
./src  exists
./testdir  exists
./tmp  exists
./results  exists
make[1]: Leaving directory '/home/pi/UnixBench'
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
sh: 1: 3dinfo: not found

   #    #  #    #  #  #    #          #####   ######  #    #   ####   #    #
   #    #  ##   #  #   #  #           #    #  #       ##   #  #    #  #    #
   #    #  # #  #  #    ##            #####   #####   # #  #  #       ######
   #    #  #  # #  #    ##            #    #  #       #  # #  #       #    #
   #    #  #   ##  #   #  #           #    #  #       #   ##  #    #  #    #
    ####   #    #  #  #    #          #####   ######  #    #   ####   #    #

   Version 5.1.3                      Based on the Byte Magazine Unix Benchmark

   Multi-CPU version                  Version 5 revisions by Ian Smith,
                                      Sunnyvale, CA, USA
   January 13, 2011                   johantheghost at yahoo period com

Wide character in print at ./Run line 1511.
Wide character in printf at ./Run line 1542.
Use of uninitialized value in printf at ./Run line 1379.
Use of uninitialized value in printf at ./Run line 1380.
Use of uninitialized value in printf at ./Run line 1589.
Use of uninitialized value in printf at ./Run line 1590.

1 x Dhrystone 2 using register variables  1 2 3 4 5 6 7 8 9 10

1 x Double-Precision Whetstone  1 2 3 4 5 6 7 8 9 10

1 x Execl Throughput  1 2 3

1 x File Copy 1024 bufsize 2000 maxblocks  1 2 3

1 x File Copy 256 bufsize 500 maxblocks  1 2 3

1 x File Copy 4096 bufsize 8000 maxblocks  1 2 3

1 x Pipe Throughput  1 2 3 4 5 6 7 8 9 10

1 x Pipe-based Context Switching  1 2 3 4 5 6 7 8 9 10

1 x Process Creation  1 2 3

1 x System Call Overhead  1 2 3 4 5 6 7 8 9 10

1 x Shell Scripts (1 concurrent)  1 2 3

1 x Shell Scripts (8 concurrent)  1 2 3
Wide character in printf at ./Run line 1484.

2 x Dhrystone 2 using register variables  1 2 3 4 5 6 7 8 9 10

2 x Double-Precision Whetstone  1 2 3 4 5 6 7 8 9 10

2 x Execl Throughput  1 2 3

2 x File Copy 1024 bufsize 2000 maxblocks  1 2 3

2 x File Copy 256 bufsize 500 maxblocks  1 2 3

2 x File Copy 4096 bufsize 8000 maxblocks  1 2 3

2 x Pipe Throughput  1 2 3 4 5 6 7 8 9 10

2 x Pipe-based Context Switching  1 2 3 4 5 6 7 8 9 10

2 x Process Creation  1 2 3

2 x System Call Overhead  1 2 3 4 5 6 7 8 9 10

2 x Shell Scripts (1 concurrent)  1 2 3

2 x Shell Scripts (8 concurrent)  1 2 3
Wide character in printf at ./Run line 1484.

4 x Dhrystone 2 using register variables  1 2 3 4 5 6 7 8 9 10

4 x Double-Precision Whetstone  1 2 3 4 5 6 7 8 9 10

4 x Execl Throughput  1 2 3

4 x File Copy 1024 bufsize 2000 maxblocks  1 2 3

4 x File Copy 256 bufsize 500 maxblocks  1 2 3

4 x File Copy 4096 bufsize 8000 maxblocks  1 2 3

4 x Pipe Throughput  1 2 3 4 5 6 7 8 9 10

4 x Pipe-based Context Switching  1 2 3 4 5 6 7 8 9 10

4 x Process Creation  1 2 3

4 x System Call Overhead  1 2 3 4 5 6 7 8 9 10

4 x Shell Scripts (1 concurrent)  1 2 3

4 x Shell Scripts (8 concurrent)  1 2 3
Wide character in printf at ./Run line 1484.

========================================================================
   BYTE UNIX Benchmarks (Version 5.1.3)

   System: raspberrypi: GNU/Linux
   OS: GNU/Linux -- 4.9.41+ -- #1023 Tue Aug 8 15:47:12 BST 2017
   Machine: armv6l (unknown)
   Language: en_US.utf8 (charmap="ANSI_X3.4-1968", collate="ANSI_X3.4-1968")
   CPU 0: ARMv6-compatible processor rev 7 (v6l) (0.0 bogomips)
          
   15:40:32 up 3 min,  3 users,  load average: 0.90, 0.85, 0.38; runlevel 5

------------------------------------------------------------------------
Benchmark Run: 日  9月 03 2017 15:40:32 - 16:10:03
1 CPU in system; running 1 parallel copy of tests

Dhrystone 2 using register variables        2279562.3 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                      462.4 MWIPS (10.0 s, 7 samples)
Execl Throughput                                236.2 lps   (29.9 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks         45718.5 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks           14660.5 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks        119375.5 KBps  (30.0 s, 2 samples)
Pipe Throughput                              186043.5 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                  27950.5 lps   (10.0 s, 7 samples)
Process Creation                                628.8 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                    542.7 lpm   (60.1 s, 2 samples)
Shell Scripts (8 concurrent)                     69.8 lpm   (60.2 s, 2 samples)
System Call Overhead                         469639.0 lps   (10.0 s, 7 samples)

System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0    2279562.3    195.3
Double-Precision Whetstone                       55.0        462.4     84.1
Execl Throughput                                 43.0        236.2     54.9
File Copy 1024 bufsize 2000 maxblocks          3960.0      45718.5    115.5
File Copy 256 bufsize 500 maxblocks            1655.0      14660.5     88.6
File Copy 4096 bufsize 8000 maxblocks          5800.0     119375.5    205.8
Pipe Throughput                               12440.0     186043.5    149.6
Pipe-based Context Switching                   4000.0      27950.5     69.9
Process Creation                                126.0        628.8     49.9
Shell Scripts (1 concurrent)                     42.4        542.7    128.0
Shell Scripts (8 concurrent)                      6.0         69.8    116.3
System Call Overhead                          15000.0     469639.0    313.1
                                                                   ========
System Benchmarks Index Score                                         113.6

------------------------------------------------------------------------
Benchmark Run: 日  9月 03 2017 16:10:03 - 16:41:23
1 CPU in system; running 2 parallel copies of tests

Dhrystone 2 using register variables        2377183.7 lps   (10.1 s, 7 samples)
Double-Precision Whetstone                      913.7 MWIPS (9.9 s, 7 samples)
Execl Throughput                                247.5 lps   (29.8 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks         45899.5 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks           14610.9 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks        119704.5 KBps  (30.0 s, 2 samples)
Pipe Throughput                              180469.6 lps   (10.1 s, 7 samples)
Pipe-based Context Switching                  25944.8 lps   (10.0 s, 7 samples)
Process Creation                                608.2 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                    536.9 lpm   (60.1 s, 2 samples)
Shell Scripts (8 concurrent)                     68.7 lpm   (61.2 s, 2 samples)
System Call Overhead                         476431.6 lps   (10.1 s, 7 samples)

System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0    2377183.7    203.7
Double-Precision Whetstone                       55.0        913.7    166.1
Execl Throughput                                 43.0        247.5     57.5
File Copy 1024 bufsize 2000 maxblocks          3960.0      45899.5    115.9
File Copy 256 bufsize 500 maxblocks            1655.0      14610.9     88.3
File Copy 4096 bufsize 8000 maxblocks          5800.0     119704.5    206.4
Pipe Throughput                               12440.0     180469.6    145.1
Pipe-based Context Switching                   4000.0      25944.8     64.9
Process Creation                                126.0        608.2     48.3
Shell Scripts (1 concurrent)                     42.4        536.9    126.6
Shell Scripts (8 concurrent)                      6.0         68.7    114.5
System Call Overhead                          15000.0     476431.6    317.6
                                                                   ========
System Benchmarks Index Score                                         119.6

------------------------------------------------------------------------
Benchmark Run: 日  9月 03 2017 16:41:23 - 17:17:00
1 CPU in system; running 4 parallel copies of tests

Dhrystone 2 using register variables        2365565.8 lps   (10.1 s, 7 samples)
Double-Precision Whetstone                     1836.2 MWIPS (10.0 s, 7 samples)
Execl Throughput                                247.9 lps   (29.3 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks         42586.5 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks           13446.9 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks        113641.8 KBps  (30.0 s, 2 samples)
Pipe Throughput                              178788.4 lps   (10.1 s, 7 samples)
Pipe-based Context Switching                  23390.6 lps   (10.1 s, 7 samples)
Process Creation                                609.8 lps   (30.1 s, 2 samples)
Shell Scripts (1 concurrent)                    531.9 lpm   (60.3 s, 2 samples)
Shell Scripts (8 concurrent)                     66.4 lpm   (61.4 s, 2 samples)
System Call Overhead                         472401.4 lps   (10.1 s, 7 samples)

System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0    2365565.8    202.7
Double-Precision Whetstone                       55.0       1836.2    333.9
Execl Throughput                                 43.0        247.9     57.7
File Copy 1024 bufsize 2000 maxblocks          3960.0      42586.5    107.5
File Copy 256 bufsize 500 maxblocks            1655.0      13446.9     81.3
File Copy 4096 bufsize 8000 maxblocks          5800.0     113641.8    195.9
Pipe Throughput                               12440.0     178788.4    143.7
Pipe-based Context Switching                   4000.0      23390.6     58.5
Process Creation                                126.0        609.8     48.4
Shell Scripts (1 concurrent)                     42.4        531.9    125.4
Shell Scripts (8 concurrent)                      6.0         66.4    110.7
System Call Overhead                          15000.0     472401.4    314.9
                                                                   ========
System Benchmarks Index Score                                         122.9

ということで、インデックススコアはシングルで113.6、4パラレルで122.9ということだった。僅かな差だけど4スレッドの方が数値良いんだ・・・

UnixBench結果を比較

UnixBench比較
せっかくなので過去に計測したNanoPi NEO, NEO2とも比較してみた。

NanoPi NEO(1.2GHz時)はシングルで197.4、4パラレルで536.4だったので、インデックススコアの数値で比較するとRPi0WはそれぞれNanoPi NEO(無印)の58%と 23%という結果。

NanoPi NEO2ではシングルで298.9、4パラレルで771.2ということで、インデックススコアの数値で比較するとRPi0WはそれぞれNanoPi NEO2の38%と16%というとても寂しい結果となった。

RPi0Wはシングルコア・シングルスレッドなCPUなので4パラレルでは数値が上がらずかなり非力に見える。
でも、発熱少ないから冷却はあまり意識しなくて良さそう。それに用途さえ間違えなければ性能としては十分。

関連記事:


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です