Orange Pi Zero と UnixBench ()
前回書いた Orange Pi PC2 という 64 ビットのシングルボードコンピュータと同時期(2016年11月)に発売された Orange Pi Zero を入手しました。 Orange Pi Zero にはメモリが 256MB ($6.99) と 512MB ($8.99) のバージョンがあります。 今回は Orange Pi Zero(512MB) と 拡張ボード、ケース付きのセットを AliExpress から購入しました。 送料込みで2055円でした。今確認してみると 2030円なので、為替レートで微妙に変化しています。 発注が 2017/02/13、到着が 2017/02/23 でした。 送られてきたセットには次の写真の内容が入っていました。ケースのサイズは幅 52mm x 奥行き 56mm x 高さ 37mm というコンパクトなものです。拡張ボードには USB Type A が2ポート、赤外線受光部、マイク、音声出力が付いています。
Orange Pi Zero は Raspberry Pi Zero より、4 コアの ARM Cortex-A7、有線LANのポート、USB Type A のポートを持つなど、むしろRaspberry Pi 2 Model B に近い機種になっています。
Orange Pi Zero(上) のサイズは、ほぼ 5 センチの正方形で Orange Pi PC2 (下) よりかなり小さい印象です。 ボードの仕様をRaspberry Pi 2、Orange Pi Zero、Orange Pi PC2 で比べてみます。
ボード | Raspberry Pi2 | Orange Pi Zero | Orange Pi PC2 |
---|---|---|---|
チップ名称 | BCM2836 | Allwinner H2 | Allwinner H5 |
アーキテクチャ | ARMv7 | ARMv7 | ARMv8 |
命令セット | AArch32 | AArch32 | AArch32 + AArch64 |
コア名称 | Cortex-A7 | Cortex-A7 | Cortex-A53 |
コア数 | 4 | 4 | 4 |
浮動小数点演算 | VFPv4 + NEON | VFPv4 + NEON | VFPv4 + NEON |
クロック | 900MHz | 1200MHz | 1008MHz |
メモリ | 1GB | 256MB, 512MB | 1GB |
GPU | VideoCore IV | Mali400MP2 | 6-core Mali450 |
microSD slot | 1 | 1 | 1 |
USB 2 | 4 | 1 | 3 |
Ethernet | 100M | 100M | 100M/1000M |
Wifi | - | 802.11n 2.4GHz | - |
Bluetooth | - | - | - |
Passive PoE
Orange Pi Zero は LANケーブル に電源用の電力を供給する PoE (Power over Ethernet) を使うことができるようです。 このページに使い方の簡単な説明があります。 LANケーブルの RJ-45 コネクタの 4/5 ピンに 5V が供給され R29 を経由し、7/8 ピンはグラウンド(0V) で R358 を経由するようです。 R29 のはんだがのる部分 (写真の上) を接続(ショート)し、R358 (写真の下) を接続すると使えるようになるそうです。 PoE 対応のハブを使って、4m 以内ならば電源用のケーブルを接続しないでも、LANケーブル 1 本で使えるようになるらしい。 そのうち試してみよう。
ケース
ケースは小さいため、基板を入れるのに苦労しました。下の写真のように拡張基板を先にビスで固定して、GPIOのピンを挿入するように Orange Pi Zero を固定します。
インターフェイスの位置です。 左の写真の下にマイクロ SD カードが見えますが、出し入れはちょっときついです。ちょっと削った方が良さそうです。
USB 充電器を繋いでみました。 こうやって見ると電源も内蔵して100Vのコンセントに直接挿せると便利そうですが、PSEマークの問題が出てくるので無理ですね。
Armbian (Ubuntu 16.04.1) のインストール
公式のダウンロードページには、Ubuntu、Debian などの OS のイメージがおいてありますが、 今回は活発に開発が進んでいるコミュニティベースの OS である armbian を試してみます。 Orange Pi Zero 用の Armbian (Armbian_5.25_Orangepizero_Ubuntu_xenial_default_3.4.113.7z) をダウンロードしました。
Raspberry Pi と同じようにイメージファイルを解凍して、SDカードに書き込んで、SDカードをセットして電源を入れるだけで Ubuntu が起動します。
いつものようにMacBook Pro で作業しますが、7z 形式の展開には Keka を使いました。
イメージをSDカードに書き込み
$ ls -l Armbian_5.25_Orangepizero_Ubuntu_xenial_default_3.4.113.7z -rw-r--r--@ 1 jun staff 224283048 2 26 00:07 Armbian_5.25_Orangepizero_Ubuntu_xenial_default_3.4.113.7z
解凍すると次のようなファイルができます。 イメージファイルは1.5GB程度のファイルです。
Armbian_5.25_Orangepizero_Ubuntu_xenial_default_3.4.113.img.asc 819 armbian.txt.asc 819 sha256sum.sha 126 Armbian_5.25_Orangepizero_Ubuntu_xenial_default_3.4.113.img 1468006400 armbian.txt 18584
sha256sum.sha の内容と一致するかどうか、shasum コマンドで確認しました。 sha-256 なのでオプションを指定する必要があります。
$ shasum -a 256 Armbian_5.25_Orangepizero_Ubuntu_xenial_default_3.4.113.img 6f5a1852fe44d26c7247bbcd28f2c1c74d0554c0d464c042bfb14f7c550be678 Armbian_5.25_Orangepizero_Ubuntu_xenial_default_3.4.113.img
4GB のSDカードにディスクイメージは収まりますが、アプリケーションを追加してインストールしたり、作業領域に使うことを考えて 16GB のSDカードを使いました。 私の場合、SDカードのデバイスファイルは /dev/disk1 でした。 速いSDカードの効果が出ているようです。
$ diskutil unmount /dev/disk1s1 Volume NO NAME on disk1s1 unmounted $ sudo time dd bs=1m if=Armbian_5.25_Orangepizero_Ubuntu_xenial_default_3.4.113.img of=/dev/rdisk1 1400+0 records in 1400+0 records out 1468006400 bytes transferred in 105.950511 secs (13855586 bytes/sec) 105.95 real 0.00 user 0.68 sys
起動
電源を入れてしばらくすると有線 LAN 経由で ssh を使って接続できるようになります。 最初の起動は、領域の拡張が自動で行われるようで、一度再起動しているようです。 LEDの点滅が落ち着きまで待ちましょう。 Orange Pi Zero に ssh で接続するためには、 Orange Pi Zero の IP アドレスが必要ですが、画面がないので確認できません。 DHCP サーバが、Orange Pi Zero にリースする IP アドレスを、起動前にルータの 管理画面からリース済みのアドレスを確認しておいて、起動後に増えたIPアドレスを 確認しましょう。
ssh で接続すると、次のようなログイン画面となります。 ユーザは「root」、パスワードは「1234」でログインできます。
すぐにパスワードを変更させられます。 必ず初期パスワードから変更しておきましょう。
ユーザ作成
最初に起動したあと、ネットワーク越しにも操作ができるように、最初に root 以外のユーザアカウントを追加します。 以下の例では「user_name」というユーザアカウントを作成しています
# adduser user_name Adding user `user_name' ... Adding new group `user_name' (1000) ... Adding new user `user_name' (1000) with group `user_name' ... Creating home directory `/home/user_name' ... Copying files from `/etc/skel' ... Enter new UNIX password: パスワード入力 Retype new UNIX password: パスワード入力 passwd: password updated successfully Changing the user information for user_name Enter the new value, or press ENTER for the default Full Name []: 以下はリターンキーだけでOK Room Number []: Work Phone []: Home Phone []: Other []: Is the information correct? [Y/n] Y
管理者権限でコマンドが使用できるように作成したユーザを sudo グループに追加します。
# gpasswd -a user_name sudo Adding user user_name to group sudo
以上で別のPCから 「ssh -l user_name IPアドレス」でネットワーク越しに Orange Pi Zero の操作できるようになります。
ベンチマーク
今回は、まず UnixBench で性能を見てみます。 UnixBench の公式サイトは最近 GitHub に移っているので、 git コマンドを使って入手します。
$ git clone https://github.com/kdlucas/byte-unixbench.git Cloning into 'byte-unixbench'... remote: Counting objects: 161, done. remote: Total 161 (delta 0), reused 0 (delta 0), pack-reused 161 Receiving objects: 100% (161/161), 184.53 KiB | 132.00 KiB/s, done. Resolving deltas: 100% (74/74), done. Checking connectivity... done.
あとは入手したディレクトリに移動して ./Run を実行するとコンパイルと実行が始まります。 コンパイルはすぐに終わりますが、 1コアと4コアでベンチマークを実行すると1時間程度かかります。
$ cd byte-unixbench/UnixBench $ ./Run
UnixBench の実行中のCPU温度とCPUクロックはどの機種も以下のコマンドで確認できます。
cat /sys/class/thermal/thermal_zone0/temp cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq
Orange Pi Zero ケース内ヒートシンク無し
ケースに入れて UnixBench を実行しました。温度が70℃に近づくとクロックが 1200MHz から 768MHz まで落ちます。 負荷をかけるときは冷却が必要です。
BYTE UNIX Benchmarks (Version 5.1.3) System: orangepizero: GNU/Linux OS: GNU/Linux -- 3.4.113-sun8i -- #28 SMP PREEMPT Thu Feb 2 02:01:28 CET 2017 Machine: armv7l (armv7l) Language: en_US.utf8 (charmap="UTF-8", collate="UTF-8") 16:03:59 up 2:24, 1 user, load average: 0.10, 0.09, 0.11; runlevel 2017-02-23 ------------------------------------------------------------------------ Benchmark Run: Thu Feb 23 2017 16:03:59 - 16:32:21 4 CPUs in system; running 1 parallel copy of tests Dhrystone 2 using register variables 4483818.9 lps (10.0 s, 7 samples) Double-Precision Whetstone 770.5 MWIPS (10.0 s, 7 samples) Execl Throughput 272.4 lps (29.9 s, 2 samples) File Copy 1024 bufsize 2000 maxblocks 89921.9 KBps (30.0 s, 2 samples) File Copy 256 bufsize 500 maxblocks 27046.8 KBps (30.0 s, 2 samples) File Copy 4096 bufsize 8000 maxblocks 193446.5 KBps (30.0 s, 2 samples) Pipe Throughput 229353.4 lps (10.0 s, 7 samples) Pipe-based Context Switching 24162.6 lps (10.0 s, 7 samples) Process Creation 854.5 lps (30.0 s, 2 samples) Shell Scripts (1 concurrent) 1247.8 lpm (60.1 s, 2 samples) Shell Scripts (8 concurrent) 327.0 lpm (60.1 s, 2 samples) System Call Overhead 654461.7 lps (10.0 s, 7 samples) System Benchmarks Index Values BASELINE RESULT INDEX Dhrystone 2 using register variables 116700.0 4483818.9 384.2 Double-Precision Whetstone 55.0 770.5 140.1 Execl Throughput 43.0 272.4 63.4 File Copy 1024 bufsize 2000 maxblocks 3960.0 89921.9 227.1 File Copy 256 bufsize 500 maxblocks 1655.0 27046.8 163.4 File Copy 4096 bufsize 8000 maxblocks 5800.0 193446.5 333.5 Pipe Throughput 12440.0 229353.4 184.4 Pipe-based Context Switching 4000.0 24162.6 60.4 Process Creation 126.0 854.5 67.8 Shell Scripts (1 concurrent) 42.4 1247.8 294.3 Shell Scripts (8 concurrent) 6.0 327.0 545.0 System Call Overhead 15000.0 654461.7 436.3 ======== System Benchmarks Index Score 190.1 ------------------------------------------------------------------------ Benchmark Run: Thu Feb 23 2017 16:32:21 - 17:01:02 4 CPUs in system; running 4 parallel copies of tests Dhrystone 2 using register variables 11888641.0 lps (10.0 s, 7 samples) Double-Precision Whetstone 2093.6 MWIPS (10.4 s, 7 samples) Execl Throughput 1217.3 lps (29.7 s, 2 samples) File Copy 1024 bufsize 2000 maxblocks 98632.0 KBps (30.0 s, 2 samples) File Copy 256 bufsize 500 maxblocks 33329.3 KBps (30.0 s, 2 samples) File Copy 4096 bufsize 8000 maxblocks 271579.9 KBps (30.0 s, 2 samples) Pipe Throughput 734092.6 lps (10.0 s, 7 samples) Pipe-based Context Switching 94036.3 lps (10.0 s, 7 samples) Process Creation 3726.4 lps (30.0 s, 2 samples) Shell Scripts (1 concurrent) 2644.9 lpm (60.1 s, 2 samples) Shell Scripts (8 concurrent) 341.7 lpm (60.4 s, 2 samples) System Call Overhead 2016541.5 lps (10.0 s, 7 samples) System Benchmarks Index Values BASELINE RESULT INDEX Dhrystone 2 using register variables 116700.0 11888641.0 1018.7 Double-Precision Whetstone 55.0 2093.6 380.7 Execl Throughput 43.0 1217.3 283.1 File Copy 1024 bufsize 2000 maxblocks 3960.0 98632.0 249.1 File Copy 256 bufsize 500 maxblocks 1655.0 33329.3 201.4 File Copy 4096 bufsize 8000 maxblocks 5800.0 271579.9 468.2 Pipe Throughput 12440.0 734092.6 590.1 Pipe-based Context Switching 4000.0 94036.3 235.1 Process Creation 126.0 3726.4 295.7 Shell Scripts (1 concurrent) 42.4 2644.9 623.8 Shell Scripts (8 concurrent) 6.0 341.7 569.5 System Call Overhead 15000.0 2016541.5 1344.4 ======== System Benchmarks Index Score 438.5
Orange Pi Zero ケース無しヒートシンク有り
下の写真のようにヒートシンクを付けて室温22℃ほどの部屋で UnixBench を実行しました。 高負荷のときでもほぼ60℃以内になりました。クロックは、ほぼ MAXの 1200MHz で安定していました。
BYTE UNIX Benchmarks (Version 5.1.3) System: orangepizero: GNU/Linux OS: GNU/Linux -- 3.4.113-sun8i -- #28 SMP PREEMPT Thu Feb 2 02:01:28 CET 2017 Machine: armv7l (armv7l) Language: en_US.utf8 (charmap="UTF-8", collate="UTF-8") 12:05:47 up 3:22, 2 users, load average: 0.03, 0.55, 2.66; runlevel 2017-02-24 ------------------------------------------------------------------------ Benchmark Run: Fri Feb 24 2017 12:05:47 - 12:34:07 4 CPUs in system; running 1 parallel copy of tests Dhrystone 2 using register variables 4484171.6 lps (10.0 s, 7 samples) Double-Precision Whetstone 771.0 MWIPS (10.0 s, 7 samples) Execl Throughput 295.6 lps (29.7 s, 2 samples) File Copy 1024 bufsize 2000 maxblocks 91843.9 KBps (30.0 s, 2 samples) File Copy 256 bufsize 500 maxblocks 28824.8 KBps (30.0 s, 2 samples) File Copy 4096 bufsize 8000 maxblocks 208219.8 KBps (30.0 s, 2 samples) Pipe Throughput 242546.4 lps (10.0 s, 7 samples) Pipe-based Context Switching 25333.2 lps (10.0 s, 7 samples) Process Creation 532.2 lps (30.0 s, 2 samples) Shell Scripts (1 concurrent) 1295.6 lpm (60.1 s, 2 samples) Shell Scripts (8 concurrent) 392.9 lpm (60.2 s, 2 samples) System Call Overhead 678904.3 lps (10.0 s, 7 samples) System Benchmarks Index Values BASELINE RESULT INDEX Dhrystone 2 using register variables 116700.0 4484171.6 384.2 Double-Precision Whetstone 55.0 771.0 140.2 Execl Throughput 43.0 295.6 68.7 File Copy 1024 bufsize 2000 maxblocks 3960.0 91843.9 231.9 File Copy 256 bufsize 500 maxblocks 1655.0 28824.8 174.2 File Copy 4096 bufsize 8000 maxblocks 5800.0 208219.8 359.0 Pipe Throughput 12440.0 242546.4 195.0 Pipe-based Context Switching 4000.0 25333.2 63.3 Process Creation 126.0 532.2 42.2 Shell Scripts (1 concurrent) 42.4 1295.6 305.6 Shell Scripts (8 concurrent) 6.0 392.9 654.8 System Call Overhead 15000.0 678904.3 452.6 ======== System Benchmarks Index Score 192.2 ------------------------------------------------------------------------ Benchmark Run: Fri Feb 24 2017 12:34:07 - 13:02:42 4 CPUs in system; running 4 parallel copies of tests Dhrystone 2 using register variables 17781257.7 lps (10.0 s, 7 samples) Double-Precision Whetstone 2958.9 MWIPS (10.4 s, 7 samples) Execl Throughput 1456.9 lps (29.9 s, 2 samples) File Copy 1024 bufsize 2000 maxblocks 146400.9 KBps (30.1 s, 2 samples) File Copy 256 bufsize 500 maxblocks 42769.5 KBps (30.0 s, 2 samples) File Copy 4096 bufsize 8000 maxblocks 316030.5 KBps (30.2 s, 2 samples) Pipe Throughput 973136.6 lps (10.0 s, 7 samples) Pipe-based Context Switching 122452.1 lps (10.0 s, 7 samples) Process Creation 4180.8 lps (30.0 s, 2 samples) Shell Scripts (1 concurrent) 3139.0 lpm (60.1 s, 2 samples) Shell Scripts (8 concurrent) 415.1 lpm (60.3 s, 2 samples) System Call Overhead 2602653.7 lps (10.0 s, 7 samples) System Benchmarks Index Values BASELINE RESULT INDEX Dhrystone 2 using register variables 116700.0 17781257.7 1523.7 Double-Precision Whetstone 55.0 2958.9 538.0 Execl Throughput 43.0 1456.9 338.8 File Copy 1024 bufsize 2000 maxblocks 3960.0 146400.9 369.7 File Copy 256 bufsize 500 maxblocks 1655.0 42769.5 258.4 File Copy 4096 bufsize 8000 maxblocks 5800.0 316030.5 544.9 Pipe Throughput 12440.0 973136.6 782.3 Pipe-based Context Switching 4000.0 122452.1 306.1 Process Creation 126.0 4180.8 331.8 Shell Scripts (1 concurrent) 42.4 3139.0 740.3 Shell Scripts (8 concurrent) 6.0 415.1 691.8 System Call Overhead 15000.0 2602653.7 1735.1 ======== System Benchmarks Index Score 563.3
Orange Pi PC2 ケース内ヒートシンク無し
ケースに入れてヒートシンク無しの Orange Pi PC2 では、高負荷のときは 80 - 90℃ くらいまで温度が上がりました。 クロックは、ほぼ 1080MHz をMAXで安定していました。 負荷をかけるときは冷却が必要ですね。
BYTE UNIX Benchmarks (Version 5.1.3) System: Orangepi: GNU/Linux OS: GNU/Linux -- 3.10.65 -- #55 SMP PREEMPT Fri Nov 18 16:17:28 CST 2016 Machine: aarch64 (aarch64) Language: en_US.utf8 (charmap="UTF-8", collate="UTF-8") 12:00:51 up 3:17, 2 users, load average: 1.12, 4.15, 6.06; runlevel 2017-02-23 ------------------------------------------------------------------------ Benchmark Run: Fri Feb 24 2017 12:00:51 - 12:29:13 4 CPUs in system; running 1 parallel copy of tests Dhrystone 2 using register variables 5341904.8 lps (10.0 s, 7 samples) Double-Precision Whetstone 935.7 MWIPS (10.0 s, 7 samples) Execl Throughput 416.5 lps (29.9 s, 2 samples) File Copy 1024 bufsize 2000 maxblocks 102828.9 KBps (30.0 s, 2 samples) File Copy 256 bufsize 500 maxblocks 29877.5 KBps (30.0 s, 2 samples) File Copy 4096 bufsize 8000 maxblocks 274191.0 KBps (30.0 s, 2 samples) Pipe Throughput 239668.7 lps (10.0 s, 7 samples) Pipe-based Context Switching 49610.6 lps (10.0 s, 7 samples) Process Creation 1307.9 lps (30.0 s, 2 samples) Shell Scripts (1 concurrent) 1565.5 lpm (60.0 s, 2 samples) Shell Scripts (8 concurrent) 566.5 lpm (60.1 s, 2 samples) System Call Overhead 620748.6 lps (10.0 s, 7 samples) System Benchmarks Index Values BASELINE RESULT INDEX Dhrystone 2 using register variables 116700.0 5341904.8 457.7 Double-Precision Whetstone 55.0 935.7 170.1 Execl Throughput 43.0 416.5 96.8 File Copy 1024 bufsize 2000 maxblocks 3960.0 102828.9 259.7 File Copy 256 bufsize 500 maxblocks 1655.0 29877.5 180.5 File Copy 4096 bufsize 8000 maxblocks 5800.0 274191.0 472.7 Pipe Throughput 12440.0 239668.7 192.7 Pipe-based Context Switching 4000.0 49610.6 124.0 Process Creation 126.0 1307.9 103.8 Shell Scripts (1 concurrent) 42.4 1565.5 369.2 Shell Scripts (8 concurrent) 6.0 566.5 944.1 System Call Overhead 15000.0 620748.6 413.8 ======== System Benchmarks Index Score 250.1 ------------------------------------------------------------------------ Benchmark Run: Fri Feb 24 2017 12:29:13 - 12:58:02 4 CPUs in system; running 4 parallel copies of tests Dhrystone 2 using register variables 21343945.1 lps (10.0 s, 7 samples) Double-Precision Whetstone 3736.7 MWIPS (10.0 s, 7 samples) Execl Throughput 2320.1 lps (29.9 s, 2 samples) File Copy 1024 bufsize 2000 maxblocks 153683.0 KBps (30.0 s, 2 samples) File Copy 256 bufsize 500 maxblocks 37758.4 KBps (30.0 s, 2 samples) File Copy 4096 bufsize 8000 maxblocks 481532.7 KBps (30.0 s, 2 samples) Pipe Throughput 955142.8 lps (10.0 s, 7 samples) Pipe-based Context Switching 195669.3 lps (10.0 s, 7 samples) Process Creation 6980.6 lps (30.0 s, 2 samples) Shell Scripts (1 concurrent) 4580.1 lpm (60.5 s, 2 samples) Shell Scripts (8 concurrent) 610.1 lpm (60.3 s, 2 samples) System Call Overhead 2368475.3 lps (10.0 s, 7 samples) System Benchmarks Index Values BASELINE RESULT INDEX Dhrystone 2 using register variables 116700.0 21343945.1 1829.0 Double-Precision Whetstone 55.0 3736.7 679.4 Execl Throughput 43.0 2320.1 539.6 File Copy 1024 bufsize 2000 maxblocks 3960.0 153683.0 388.1 File Copy 256 bufsize 500 maxblocks 1655.0 37758.4 228.1 File Copy 4096 bufsize 8000 maxblocks 5800.0 481532.7 830.2 Pipe Throughput 12440.0 955142.8 767.8 Pipe-based Context Switching 4000.0 195669.3 489.2 Process Creation 126.0 6980.6 554.0 Shell Scripts (1 concurrent) 42.4 4580.1 1080.2 Shell Scripts (8 concurrent) 6.0 610.1 1016.9 System Call Overhead 15000.0 2368475.3 1579.0 ======== System Benchmarks Index Score 714.8
Raspberry Pi 2 model B ケース内ヒートシンク有り
オーバークロックしていないノーマルのRaspberry Pi 2は温度が40度ほどで安定しています。 クロックは、ほぼ 900MHz で安定しています。
BYTE UNIX Benchmarks (Version 5.1.3) System: raspi_jessie: GNU/Linux OS: GNU/Linux -- 4.1.18-v7+ -- #846 SMP Thu Feb 25 14:22:53 GMT 2016 Machine: armv7l (unknown) Language: en_US.utf8 (charmap="UTF-8", collate="UTF-8") CPU 0: ARMv7 Processor rev 5 (v7l) (0.0 bogomips) CPU 1: ARMv7 Processor rev 5 (v7l) (0.0 bogomips) CPU 2: ARMv7 Processor rev 5 (v7l) (0.0 bogomips) CPU 3: ARMv7 Processor rev 5 (v7l) (0.0 bogomips) 00:57:32 up 4 min, 4 users, load average: 0.44, 0.33, 0.17; runlevel 2017-02-25 ------------------------------------------------------------------------ Benchmark Run: Sat Feb 25 2017 00:57:32 - 01:26:06 4 CPUs in system; running 1 parallel copy of tests Dhrystone 2 using register variables 2051913.2 lps (10.0 s, 7 samples) Double-Precision Whetstone 304.4 MWIPS (10.0 s, 7 samples) Execl Throughput 338.5 lps (29.7 s, 2 samples) File Copy 1024 bufsize 2000 maxblocks 55011.2 KBps (30.1 s, 2 samples) File Copy 256 bufsize 500 maxblocks 15190.7 KBps (30.0 s, 2 samples) File Copy 4096 bufsize 8000 maxblocks 144856.4 KBps (30.0 s, 2 samples) Pipe Throughput 142249.4 lps (10.0 s, 7 samples) Pipe-based Context Switching 26104.3 lps (10.0 s, 7 samples) Process Creation 900.4 lps (30.0 s, 2 samples) Shell Scripts (1 concurrent) 792.1 lpm (60.1 s, 2 samples) Shell Scripts (8 concurrent) 225.7 lpm (60.1 s, 2 samples) System Call Overhead 315398.1 lps (10.0 s, 7 samples) System Benchmarks Index Values BASELINE RESULT INDEX Dhrystone 2 using register variables 116700.0 2051913.2 175.8 Double-Precision Whetstone 55.0 304.4 55.3 Execl Throughput 43.0 338.5 78.7 File Copy 1024 bufsize 2000 maxblocks 3960.0 55011.2 138.9 File Copy 256 bufsize 500 maxblocks 1655.0 15190.7 91.8 File Copy 4096 bufsize 8000 maxblocks 5800.0 144856.4 249.8 Pipe Throughput 12440.0 142249.4 114.3 Pipe-based Context Switching 4000.0 26104.3 65.3 Process Creation 126.0 900.4 71.5 Shell Scripts (1 concurrent) 42.4 792.1 186.8 Shell Scripts (8 concurrent) 6.0 225.7 376.1 System Call Overhead 15000.0 315398.1 210.3 ======== System Benchmarks Index Score 127.9 ------------------------------------------------------------------------ Benchmark Run: Sat Feb 25 2017 01:26:06 - 01:54:51 4 CPUs in system; running 4 parallel copies of tests Dhrystone 2 using register variables 8210975.3 lps (10.0 s, 7 samples) Double-Precision Whetstone 1217.3 MWIPS (10.0 s, 7 samples) Execl Throughput 893.1 lps (29.7 s, 2 samples) File Copy 1024 bufsize 2000 maxblocks 82569.4 KBps (30.0 s, 2 samples) File Copy 256 bufsize 500 maxblocks 23143.4 KBps (30.0 s, 2 samples) File Copy 4096 bufsize 8000 maxblocks 223030.0 KBps (30.0 s, 2 samples) Pipe Throughput 528901.6 lps (10.0 s, 7 samples) Pipe-based Context Switching 88406.9 lps (10.0 s, 7 samples) Process Creation 1965.7 lps (30.0 s, 2 samples) Shell Scripts (1 concurrent) 1785.2 lpm (60.1 s, 2 samples) Shell Scripts (8 concurrent) 235.9 lpm (60.7 s, 2 samples) System Call Overhead 1111615.0 lps (10.0 s, 7 samples) System Benchmarks Index Values BASELINE RESULT INDEX Dhrystone 2 using register variables 116700.0 8210975.3 703.6 Double-Precision Whetstone 55.0 1217.3 221.3 Execl Throughput 43.0 893.1 207.7 File Copy 1024 bufsize 2000 maxblocks 3960.0 82569.4 208.5 File Copy 256 bufsize 500 maxblocks 1655.0 23143.4 139.8 File Copy 4096 bufsize 8000 maxblocks 5800.0 223030.0 384.5 Pipe Throughput 12440.0 528901.6 425.2 Pipe-based Context Switching 4000.0 88406.9 221.0 Process Creation 126.0 1965.7 156.0 Shell Scripts (1 concurrent) 42.4 1785.2 421.0 Shell Scripts (8 concurrent) 6.0 235.9 393.1 System Call Overhead 15000.0 1111615.0 741.1 ======== System Benchmarks Index Score 305.2
UnixBench まとめ
Board | Orange Pi Zero | Raspberry Pi2 | Orange Pi PC2 | |||||
---|---|---|---|---|---|---|---|---|
in case | HeatSink | |||||||
number of cores | 1 core | 4 core | 1 core | 4 core | 1 core | 4 core | 1 core | 4 core |
Dhrystone 2 using register variables | 384.2 | 1018.7 | 384.2 | 1523.7 | 175.8 | 703.6 | 457.7 | 1829.0 |
Double-Precision Whetstone | 140.1 | 380.7 | 140.2 | 538.0 | 55.3 | 221.3 | 170.1 | 679.4 |
Execl Throughput | 63.4 | 283.1 | 68.7 | 338.8 | 78.7 | 207.7 | 96.8 | 539.6 |
File Copy 1024 bufsize 2000 maxblocks | 227.1 | 249.1 | 231.9 | 369.7 | 138.9 | 208.5 | 259.7 | 388.1 |
File Copy 256 bufsize 500 maxblocks | 163.4 | 201.4 | 174.2 | 258.4 | 91.8 | 139.8 | 180.5 | 228.1 |
File Copy 4096 bufsize 8000 maxblocks | 333.5 | 468.2 | 359.0 | 544.9 | 249.8 | 384.5 | 472.7 | 830.2 |
Pipe Throughput | 184.4 | 590.1 | 195.0 | 782.3 | 114.3 | 425.2 | 192.7 | 767.8 |
Pipe-based Context Switching | 60.4 | 235.1 | 63.3 | 306.1 | 65.3 | 221.0 | 124.0 | 489.2 |
Process Creation | 67.8 | 295.7 | 42.2 | 331.8 | 71.5 | 156.0 | 103.8 | 554.0 |
Shell Scripts (1 concurrent) | 294.3 | 623.8 | 305.6 | 740.3 | 186.8 | 421.0 | 369.2 | 1080.2 |
Shell Scripts (8 concurrent) | 545.0 | 569.5 | 654.8 | 691.8 | 376.1 | 393.1 | 944.1 | 1016.9 |
System Call Overhead | 436.3 | 1344.4 | 452.6 | 1735.1 | 210.3 | 741.1 | 413.8 | 1579.0 |
System Benchmarks Index Score | 190.1 | 438.5 | 192.2 | 563.3 | 127.9 | 305.2 | 250.1 | 714.8 |
Orange Pi Zero はクロックが 1.2GHz と Raspberry Pi2 の 900MHz に対して 1.33 倍ですが、それ以上のスコアになりました。 Raspberry Pi の gcc のバージョンが「gcc (Raspbian 4.9.2-10) 4.9.2」、Orange Pi Zero が「gcc (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.4) 5.4.0 20160609」なので、その影響かもしれません。
そこで、コンパイラの影響がでないように、アセンブラで 4x4行列の乗算を100万回計算するコードを実行する時間を測定しました。単位は秒です。
Board | C | C loop | NEON ASM | NEON optimized |
---|---|---|---|---|
Orange Pi Zero | 0.268984 | 0.551743 | 0.116869 | 0.100196 |
Raspberry Pi2 | 0.429726 | 1.105500 | 0.234210 | 0.200525 |
同じCortex-A7 というアーキテクチャですが、Orange Pi Zero はクロック差以上に速いですね。 自宅で使うサーバが 1000円でできるなんて想定外です。