手持ちのシングルボードコンピュータでUbuntu benchmark toolsを動かしてみました。
CPUの動作クロックや、大まかな演算性能、ストレージ性能等を知ることができます。
今後の比較のために記録しておこうと思います。
目次
シングルボードコンピュータのUbuntu Benchmark
Ubuntu benchmark toolsの準備
Ubuntu系のディストリビューションにて、下記のコマンドでツールをインストールしました。
sudo apt-get install ubuntu-benchmark-tools
測定条件
次の条件で測定してみました。
- X Window Systemは起動せずに、CUI・マルチユーザー・モードで起動(init 3相当)
- データベースやhttpd等のデーモンは一切インストールせずに、Linuxインストール直後のプレーンな状態で測定。
- コンソールにのみ1名ログインした状態でベンチマークを実施。
- HDMI出力はFullHD解像度で統一。
Rock64
- OS: Armbian Bionic
- Kernel: Kernel Linux 4.4.152-rockchip64 (aarch64)
- C Library: GNU C Library / (Ubuntu GLIBC 2.27-3ubuntu1) 2.27
- Distribution: Ubuntu 18.04.1 LTS
NanoPi M4
- OS: Armbian Bionic
- Kernel: Kernel Linux 4.4.156-rk3399 (aarch64)
- C Library: GNU C Library / (Ubuntu GLIBC 2.27-3ubuntu1) 2.27
- Distribution: Ubuntu 18.04.1 LTS
hardinfo実行結果
同じ機種でも実行環境により結果は異なります。下記の実行結果を保証するものではありません、あくまで参考値として御覧ください。
hardinfo
Rock64
Rock64のCPUはCortex-A53のクアッドコアのようです。1390MHzで動作していました。
SOC/Package Information
ARM Cortex-A53 r0p4 (AArch64) 1390.00 MHz
ARM Cortex-A53 r0p4 (AArch64) 1390.00 MHz
ARM Cortex-A53 r0p4 (AArch64) 1390.00 MHz
ARM Cortex-A53 r0p4 (AArch64) 1390.00 MHz
[CPU Blowfish]9.84
[CPU CryptoHash]103.14
[CPU Fibonacci]3.74
[CPU N-Queens]7.63
[CPU Zlib]0.11
[FPU FFT]11.20
[FPU Raytracing]6.16(測定5回の平均値)
NanoPi M4
NanoPi M4のCPUはCortex-A53 x4+Coretex-A72 x2の6コアのようです。それぞれ1416MHz、1800MHzで動作していました。
SOC/Package Information
ARM Cortex-A53 r0p4 (AArch64) 1416.00 MHz
ARM Cortex-A53 r0p4 (AArch64) 1416.00 MHz
ARM Cortex-A53 r0p4 (AArch64) 1416.00 MHz
ARM Cortex-A53 r0p4 (AArch64) 1416.00 MHz
ARM Cortex-A72 r0p2 (AArch64) 1800.00 MHz
ARM Cortex-A72 r0p2 (AArch64) 1800.00 MHz
[CPU Blowfish]5.31
[CPU CryptoHash]249.27
[CPU Fibonacci]1.66
[CPU N-Queens]10.00
[CPU Zlib]0.40
[FPU FFT]4.09
[FPU Raytracing]4.81(測定5回の平均値)
sysbench CPU実行結果
シングルスレッドの乱数計算時間(10000回)を測定してみました。
sysbench --test=cpu run
events per second: 値が大きければ1秒あたりの処理回数が多い。
latency(ms): 小さければ処理の遅延が小さい。
Rock64
- events per second: 642.35
- latency(ms):
- min:1.55
- avg:1.55
- max:1.60
- 95th percentile: 1.55
- sum:9983.22
NanoPi M4
- events per second: 1962.97
- latency(ms):
- min:0.50
- avg:0.51
- max:1.12
- 95th percentile: 0.51
- sum:9980.12
sysbench threads
4スレッドの乱数計算回数を測定してみます。
sysbench --test=threads --num-threads=4 run
total number of events: 大きければ処理回数が多い。
Rock64
- total time: 10.0002s
- total number of events: 43790
- Latency(ms)
- min: 0.88
- avg: 0.91
- max: 8.03
- 95th percentile: 0.94
- sum: 39908.51
NanoPi M4
- total time: 10.0005s
- total number of events: 51847
- Latency(ms)
- min: 0.60
- avg: 0.77
- max: 15.01
- 95th percentile: 1.10
- sum: 39902.71
sysbench seqrd(シーケンシャルリード)
microSDカードのアクセス速度を測定してみました。シーケンシャルリードから。
sysbench --test=fileio --file-total-size=4G prepare(テスト前に1回実行)
sysbench --test=fileio --file-total-size=4G --file-test-mode=seqrd run
sysbench --test=fileio --file-total-size=4G cleanup(テスト後に実行)
read|write, MiB/s: 一秒間の書き込み|読み込み量。メビバイト=2^20バイトになります。
Rock64
microSDカード(UHS-I U1 32GB)
- read, MiB/s: 21.07
NanoPi M4
microSDカード(UHS-I U1 64GB)
- read, MiB/s: 20.73
使用したmicroSDカードはUHS-I U1対応のものですが、アクセス速度はおよそ20MiB/sということで、Rock64、NanoPi M4のカードリーダーはUHS非対応のようです。
sysbench seqrd(シーケンシャルライト)
microSDカードのアクセス速度を測定してみました。シーケンシャルリードから。
sysbench --test=fileio --file-total-size=4G --file-test-mode=seqwr run
Rock64
microSDカード(UHS-I U1 32GB)
- written, MiB/s: 6.89
NanoPi M4
microSDカード(UHS-I U1 64GB)
- written, MiB/s: 12.09
sysbench rndrd(ランダムリード)
sysbench --test=fileio --file-total-size=4G --file-test-mode=rndrd run
ランダムリード性能は、うまく測定できませんでした。実行方法が間違っていたのでしょうか。後で調べてみようと思います。
sysbench rndwr(ランダムライト)
sysbench --test=fileio --file-total-size=4G --file-test-mode=rmdwr run
Rock64
microSDカード(UHS-I U1 32GB)
- written, MiB/s: 0.93
NanoPi M4
microSDカード(UHS-I U1 64GB)
- written, MiB/s: 0.78
hardinfoから、ヘキサコアのNanoPi M4の動作クロックは1.8GHzであることがわかりました。
大型ヒートシンクを取り付けていますが、温度は50℃を超えることもあります。
シングルボードコンピュータとはいえ、パワフルなSOCを搭載している場合、冷却をそれなりに考える必要があるようです。
microSDカードへののアクセス速度はどの機種も最大20MiB/s程度で、UHS非対応であることがわかりました。
パフォーマンスを引き出すには、よりアクセス速度が早いと思われる、eMMCやUSB 3.0接続のSSD、HDDを使用したほうが良いのかもしれませんね。