衝撃価格7500円でゲットしたRedmi Note 9SにLinux入れてUnixBenchを計測

いやー、もう8月も終わりに近づてきましたね〜!
皆さんはどっか行きましたか? 自分はお盆休みもバイクをモリワキカラーに塗っていましたよ。どこにも行ってないので、そろそろプチ旅行したいです。バイクに乗りたいですね。

さて、今回はOCNモバイルONEの乗り換えキャンペーンで激安7500円で新品本体をゲットしましたRedmi Note 9S にUnixBechを走らせてみたいと思います。
AndroidスマホなのにLinux上で走るUnixBenchをどうやって動かすってことですが、これは、TermuxというAndroidターミナルエミュレーター+Linux環境構築アプリがあります。この環境で、UnixBenchをビルドしてスコアを計測してみました。antutuは28万くらいらしいのですが、UnixBenchはどのくらい出るでしょうか。ちなみに、UmidigiF2は、前回

シングルCPU・・・スコア406.2
8CPU・・・・・・スコア1312.3

のスコアが出ました。
まだシステムのアップデートする前なんで、少しkernelバージョンは変わるかもしれませんが、計測時のスマホの状態を貼っておきます。Redmi Note 9Sは、CPUがUmidigiF2よりも速いので、1500くらいのスコアが出るかもなーと思っていますが、さてどのくらいになるでしょうか?

貼り付けた画像_2020_08_28_22_39

まぁ、前置きが長かったのですが、やってることは大したことはないです。まずはGoogleStoreから、以下のアプリを入れておきます。これなんて読むんですかね? たーむゆーえっくす とか、たーむっくす とかかな?

Termux_-_Google_Play_のアプリ

openssh を入れてリモートから作業します。スマホ画面では、最低限以下を入れて起動しておきます。

pkg install openssh -y && sshd

WiFi アドレスを確認しておきます。

ip a | more
または、
ip a | grep inet | grep wlan
もっとズバリIPだけ取り出したい場合は、
ip -4 a | grep inet | grep wlan0 | grep -oP ‘[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+(?=\/)’

鍵作るなり、パスワード設定するなりしてリモートからログインします。今回は、passwd してパスワード認証でリモートログイン。

ssh 192.168.xxx.xxx -p 8022

デフォルトsshポートは、8022 です。では、UnixBenchのビルドに必要なツールを入れましょう。

pkg install vim wget clang make perl git pkg-config -y

あとは前回と同様、Makefileを少し修正して ./Run です。

git clone https://github.com/kdlucas/byte-unixbench
cd byte-unixbench/UnixBench
cp -p Makefile Makefile.org
vi Makefile
※以下部分を削除してね。(-march=native)

$ diff -u Makefile.org Makefile
--- Makefile.org	2020-08-28 23:39:45.550203419 +0900
+++ Makefile	2020-08-28 23:40:56.800203392 +0900
@@ -95,7 +95,7 @@
     #   - Supported    : x86, x86_64, ARM, AARCH64, etc..
     #   - Not Supported: RISC-V, IBM Power, etc...
     ifneq ($(ARCH),$(filter $(ARCH),ppc64 ppc64le))
-        OPTON += -march=native -mtune=native
+        OPTON += -mtune=native
     else
         OPTON += -mcpu=native -mtune=native
     endif

./Run
::

金曜の夜は眠いです、、、寝そうになりましたがベンチマークが終わったので貼り付け。

CPU:Qualcomm Snapdragon 720G
Hardware : Qualcomm Technologies, Inc SM7125

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

   System: localhost: Android
   OS: Android -- 4.14.117-perf-g2d34faf -- #1 SMP PREEMPT Wed May 13 01:02:15 CST 2020
   Machine: aarch64 (unknown)
   Language: en_US.utf8 (charmap=, collate=)
   23:41:17 up 12:11,  load average: 0.00, 0.00, 0.00; runlevel 

------------------------------------------------------------------------
Benchmark Run: Fri Aug 28 2020 23:41:17 - 00:09:22
8 CPUs in system; running 1 parallel copy of tests

Dhrystone 2 using register variables       32061907.1 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                     6143.9 MWIPS (10.0 s, 7 samples)
Execl Throughput                                267.0 lps   (29.9 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks        630326.5 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks          205587.3 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks       1214283.1 KBps  (30.0 s, 2 samples)
Pipe Throughput                             1227952.4 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                 105358.2 lps   (10.0 s, 7 samples)
Process Creation                                594.4 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                   1306.7 lpm   (60.0 s, 2 samples)
Shell Scripts (8 concurrent)                    311.0 lpm   (60.1 s, 2 samples)
System Call Overhead                        1131049.8 lps   (10.0 s, 7 samples)

System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0   32061907.1   2747.4
Double-Precision Whetstone                       55.0       6143.9   1117.1
Execl Throughput                                 43.0        267.0     62.1
File Copy 1024 bufsize 2000 maxblocks          3960.0     630326.5   1591.7
File Copy 256 bufsize 500 maxblocks            1655.0     205587.3   1242.2
File Copy 4096 bufsize 8000 maxblocks          5800.0    1214283.1   2093.6
Pipe Throughput                               12440.0    1227952.4    987.1
Pipe-based Context Switching                   4000.0     105358.2    263.4
Process Creation                                126.0        594.4     47.2
Shell Scripts (1 concurrent)                     42.4       1306.7    308.2
Shell Scripts (8 concurrent)                      6.0        311.0    518.3
System Call Overhead                          15000.0    1131049.8    754.0
                                                                   ========
System Benchmarks Index Score                                         569.6

------------------------------------------------------------------------
Benchmark Run: Sat Aug 29 2020 00:09:22 - 00:37:59
8 CPUs in system; running 8 parallel copies of tests

Dhrystone 2 using register variables      120620219.0 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                    26336.2 MWIPS (9.5 s, 7 samples)
Execl Throughput                               1110.7 lps   (29.9 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks        588338.4 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks          181982.1 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks       1457866.0 KBps  (30.0 s, 2 samples)
Pipe Throughput                             4512922.8 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                 160612.9 lps   (10.0 s, 7 samples)
Process Creation                                947.0 lps   (30.1 s, 2 samples)
Shell Scripts (1 concurrent)                   2990.6 lpm   (60.1 s, 2 samples)
Shell Scripts (8 concurrent)                    399.8 lpm   (60.5 s, 2 samples)
System Call Overhead                        3946715.9 lps   (10.0 s, 7 samples)

System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0  120620219.0  10335.9
Double-Precision Whetstone                       55.0      26336.2   4788.4
Execl Throughput                                 43.0       1110.7    258.3
File Copy 1024 bufsize 2000 maxblocks          3960.0     588338.4   1485.7
File Copy 256 bufsize 500 maxblocks            1655.0     181982.1   1099.6
File Copy 4096 bufsize 8000 maxblocks          5800.0    1457866.0   2513.6
Pipe Throughput                               12440.0    4512922.8   3627.8
Pipe-based Context Switching                   4000.0     160612.9    401.5
Process Creation                                126.0        947.0     75.2
Shell Scripts (1 concurrent)                     42.4       2990.6    705.3
Shell Scripts (8 concurrent)                      6.0        399.8    666.3
System Call Overhead                          15000.0    3946715.9   2631.1
                                                                   ========
System Benchmarks Index Score                                        1177.5

シングル性能では、UmidigiF2より上ですが、マルチCPUは下ですね。

シングルCPU・・・スコア569.6
8CPU・・・・・・スコア1177.5

特に、プロセスのフォーク処理(Process Creation)とか、シェル関連とか、パイプ処理(Pipe-based Context Switching)が半分くらい遅いですね。なんでこんなに遅いのでしょうか? システムバージョンアップして、また計測してみます。

貼り付けた画像_2020_08_29_0_57

再起動後の情報です。

貼り付けた画像_2020_08_29_1_06

Kernelの末尾の番号だけ微妙に変わっていますが、メジャー・マイナー・メンテナンスの番号は変わらずですね。4.14.117です。UmidigiF2は、4.14.141+で新しいですね。

結果が出たら貼り付けておきます。今日はもうねるー! UmidigiF2 のCPU、MediaTek Helio P70もなかなか良いのかもね。

追記。翌日ベンチマークが終わっていたので貼り付けておきます。誤差の範囲でほぼ同じ結果でした。今回もやはり、プロセスのフォーク処理(Process Creation)とか、シェル関連とか、パイプ処理(Pipe-based Context Switching)がUmidigiF2と比べて半分くらい遅い結果となりました。何かKernelかOS設定で制限があるのかもですね。ファイルコピーなんかは倍くらいRedmeNote9sが速いですが。

CPUやストレージが速ければ全部のスコアが上がるというわけはないということですね。

シングルCPU・・・スコア571.9
8CPU・・・・・・スコア1127.1

ちなみに、UnixBenchのパイプ処理に使うバイナリのヘッダ情報も乗せておきます。ちゃんと64bitでビルドされていますね。Termux、なかなかいいんじゃないでしょうか。

$ readelf -h ./spawn
ELF Header:
Magic: 7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00
Class: ELF64
Data: 2’s complement, little endian
Version: 1 (current)
OS/ABI: UNIX – System V
ABI Version: 0
Type: DYN (Shared object file)
Machine: AArch64
Version: 0x1
Entry point address: 0x760
Start of program headers: 64 (bytes into file)
Start of section headers: 7184 (bytes into file)
Flags: 0x0
Size of this header: 64 (bytes)
Size of program headers: 56 (bytes)
Number of program headers: 8
Size of section headers: 64 (bytes)
Number of section headers: 24
Section header string table index: 23

ということで、次回はUmidigiF2にWordPressが動く環境を作ってテストしてみたいですね。

   BYTE UNIX Benchmarks (Version 5.1.3)

   System: localhost: Android
   OS: Android -- 4.14.117-perf-g638d6a0 -- #1 SMP PREEMPT Fri Jun 19 01:24:32 CST 2020
   Machine: aarch64 (unknown)
   Language: en_US.utf8 (charmap=, collate=)
   01:18:25 up 17 min,  load average: 0.55, 1.10, 1.44; runlevel 

------------------------------------------------------------------------
Benchmark Run: Sat Aug 29 2020 01:18:25 - 01:46:30
8 CPUs in system; running 1 parallel copy of tests

Dhrystone 2 using register variables       32007008.4 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                     6140.3 MWIPS (10.0 s, 7 samples)
Execl Throughput                                261.7 lps   (29.9 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks        628988.7 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks          207751.6 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks       1478525.0 KBps  (30.0 s, 2 samples)
Pipe Throughput                             1164727.3 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                  99925.0 lps   (10.0 s, 7 samples)
Process Creation                                587.5 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                   1284.4 lpm   (60.0 s, 2 samples)
Shell Scripts (8 concurrent)                    312.1 lpm   (60.2 s, 2 samples)
System Call Overhead                        1127699.3 lps   (10.0 s, 7 samples)

System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0   32007008.4   2742.7
Double-Precision Whetstone                       55.0       6140.3   1116.4
Execl Throughput                                 43.0        261.7     60.9
File Copy 1024 bufsize 2000 maxblocks          3960.0     628988.7   1588.4
File Copy 256 bufsize 500 maxblocks            1655.0     207751.6   1255.3
File Copy 4096 bufsize 8000 maxblocks          5800.0    1478525.0   2549.2
Pipe Throughput                               12440.0    1164727.3    936.3
Pipe-based Context Switching                   4000.0      99925.0    249.8
Process Creation                                126.0        587.5     46.6
Shell Scripts (1 concurrent)                     42.4       1284.4    302.9
Shell Scripts (8 concurrent)                      6.0        312.1    520.1
System Call Overhead                          15000.0    1127699.3    751.8
                                                                   ========
System Benchmarks Index Score                                         571.9

------------------------------------------------------------------------
Benchmark Run: Sat Aug 29 2020 01:46:30 - 02:15:04
8 CPUs in system; running 8 parallel copies of tests

Dhrystone 2 using register variables      122466899.1 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                    26082.3 MWIPS (9.9 s, 7 samples)
Execl Throughput                               1100.0 lps   (29.7 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks        509969.0 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks          147009.9 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks       1308075.6 KBps  (30.0 s, 2 samples)
Pipe Throughput                             4401030.7 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                 163599.9 lps   (10.0 s, 7 samples)
Process Creation                               1059.8 lps   (30.1 s, 2 samples)
Shell Scripts (1 concurrent)                   2761.2 lpm   (60.1 s, 2 samples)
Shell Scripts (8 concurrent)                    366.4 lpm   (60.8 s, 2 samples)
System Call Overhead                        3964160.3 lps   (10.0 s, 7 samples)

System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0  122466899.1  10494.2
Double-Precision Whetstone                       55.0      26082.3   4742.2
Execl Throughput                                 43.0       1100.0    255.8
File Copy 1024 bufsize 2000 maxblocks          3960.0     509969.0   1287.8
File Copy 256 bufsize 500 maxblocks            1655.0     147009.9    888.3
File Copy 4096 bufsize 8000 maxblocks          5800.0    1308075.6   2255.3
Pipe Throughput                               12440.0    4401030.7   3537.8
Pipe-based Context Switching                   4000.0     163599.9    409.0
Process Creation                                126.0       1059.8     84.1
Shell Scripts (1 concurrent)                     42.4       2761.2    651.2
Shell Scripts (8 concurrent)                      6.0        366.4    610.7
System Call Overhead                          15000.0    3964160.3   2642.8
                                                                   ========
System Benchmarks Index Score                                        1127.1