FreeBSD
MIPS

MIPS SOCのパフォーマンス

AtherosとMediaTek(旧Ralink)は共にMIPSベースのSOCを作っていますが、AtherosのSOCがmrubyで極端にパフォーマンスが悪いのでunixbench 4.1で性能比較をしてみました。

ZRouterでunixbenchをビルドできるようにして、unixbenchのindexの中のfile関係を除いた数字を見てみました。

# unixbench dhry2reg whetstone-double shell execl pipe context1 spawn syscall
  • AR9310の結果
                     INDEX VALUES            
TEST                                        BASELINE     RESULT      INDEX

Dhrystone 2 using register variables        116700.0   492487.4       42.2
Double-Precision Whetstone                      55.0        5.0        0.9
Execl Throughput                                43.0       38.2        8.9
Pipe Throughput                              12440.0    80802.4       65.0
Pipe-based Context Switching                  4000.0    27217.2       68.0
Process Creation                               126.0      280.8       22.3
Shell Scripts (8 concurrent)                     6.0       14.0       23.3
System Call Overhead                         15000.0    63838.0       42.6
                                                                 =========
     FINAL SCORE                                                      20.7
  • MT7620の結果
                     INDEX VALUES            
TEST                                        BASELINE     RESULT      INDEX

Dhrystone 2 using register variables        116700.0   724551.6       62.1
Double-Precision Whetstone                      55.0        7.6        1.4
Execl Throughput                                43.0       75.8       17.6
Pipe Throughput                              12440.0   115928.7       93.2
Pipe-based Context Switching                  4000.0    35735.6       89.3
Process Creation                               126.0      438.2       34.8
Shell Scripts (8 concurrent)                     6.0       26.0       43.3
System Call Overhead                         15000.0   113341.8       75.6
                                                                 =========
     FINAL SCORE                                                      33.1

MT7620のクロックは580MHzでAR9310は400MHzです。ほぼほぼクロックの差に近い数字のように見えます。

ところがこのSOCでfib(32)をawkやmrubyを実行するとかなり違いが出てしまいます。

SOC awk mruby
MT7620 44sec 14sec
AR9310 106sec 71sec

最初エンディアンがらみのmrubyを疑って、次にメモりコントローラーを疑ったのですが、どうも両方とも外れているような気がします。

amd64でawkとmrubyを比べるとawkの方が早かったりします。もうなんだかよくわかりません。何が原因なんでしょうか。。。