そういえば,ZynqのARMコアの性能ってどんなものだろう,と気になったのではかってみました.ついでに,手元にあった,互角っぽいものと比較してみることに.
登場選手は
- RaspberryPi
- ThinkPad 240 (Celeron 366MHz)
- Zedboard
です.はかってみた,なので,結論は特にありません.
あ,大事なことですが,私がはかってみた環境では,なので,他のところでは違うとか,もっとチューニングすれば結果が変わる,という可能性は十分ありますので,あらかじめ,ご了承いただければ,と.
まずは,UnixBenchではかった結果がこちら.
縦軸はインデックス値です.対数軸なことに注意.
Zedboadの結果は,シングルコアでの実行結果をのせています.
ZedBoardのARM速いですね!!
本題はZynqのARMコアの性能比較なのですが,個人的に興味深いのは,WhetstoneでThinkPad240(Celeron 366MHz)がRaspberryPi(ARM)に勝っているところ.
LinpackとOpenSSLを使って,浮動小数点数演算性能と整数演算性能をもう少し詳しくみてみた結果は次のとおり.
Linpackスコア(http://www.netlib.org/benchmark/linpackc.new, array size = 200)
RaspberryPi | ThinkPad240 | Zedboard | |
Linpackスコア(FLOPS) | 42,537.608 | 106,323.418 | 107,432.646 |
* いずれもgcc -O3でコンパイルしたものを実行
OpenSSLベンチ(openssl speedの結果)
RaspberryPi | ThinkPad240 | Zedboard | ||
sign | rsa 512 bits | 463.4 | 214.2 | 343.6 |
rsa 1024 bits | 89.8 | 45.1 | 64.2 | |
rsa 2048 bits | 13.8 | 7.9 | 10.8 | |
rsa 4096 bits | 1.9 | 1.2 | 1.6 | |
dsa 512 bits | 456.9 | 256.7 | 382.3 | |
dsa 1024 bits | 162.0 | 95.2 | 132.5 | |
dsa 2048 bits | 45.8 | 29.7 | 40.3 | |
verify | rsa 512 bits | 4779.0 | 2600.4 | 3940.1 |
rsa 1024 bits | 1599.6 | 949.2 | 1324.2 | |
rsa 2048 bits | 446.0 | 291.8 | 398.6 | |
rsa 4096 bits | 116.5 | 84.9 | 116.3 | |
dsa 512 bits | 438.6 | 228.6 | 346.1 | |
dsa 1024 bits | 142.3 | 80.9 | 114.3 | |
dsa 2048 bits | 38.6 | 25.0 | 34.2 |
OpenSSLは,
- RaspberryPi: OpenSSL 1.0.1e 11 Feb 2013
- ThinkPad240: OpenSSL 0.9.8q 2 Dec 2010
- Zedboard: OepnSSL 1.0.1 14 Mar 2012
この結果だと,DhrystoneほどにZedboardのARMが速くないというか,RasbperryPiのが速いですね.周波数が低いのが,そのまま見えている感じ.
メモリバンド幅をSTREAM2(http://www.cs.virginia.edu/stream/)ではかってみました.
RaspberryPi | ThinkPad 240 | Zedboard | |
Copy(MBps) | 256.5 | 167.9 | 666.9 |
Scale(MBps) | 208.8 | 130.1 | 599.0 |
Add(MBps) | 197.3 | 141.0 | 735.3 |
Triad(MBps) | 192.3 | 127.1 | 707.3 |
ここで,RaspberryPiとThinkPadでは
- Array size = 4194304 (elements), Offset = 0 (elements)
- Memory per array = 32.0 MiB (= 0.0 GiB).
- Total memory required = 96.0 MiB (= 0.1 GiB)
Zedboardでは,
- Array size = 10000000 (elements), Offset = 0 (elements)
- Memory per array = 76.3 MiB (= 0.1 GiB).
- Total memory required = 228.9 MiB (= 0.2 GiB).
で測定しています.
最後に,ですが,登場選手のスペックは,こんな感じでした.
RaspberryPi
- CPU: BCM2835/ARM1176JZFS 700MHz
- メモリ: 448MB (dmesgの結果より)
- ストレージ: ADATA SDHC 8GB CLASS10
- OS: Linux 2.10.25+ (Debian 7.2)
- gcc: 4.6.3 (Debian 4.6.3-14+rpi1)
ThinkPad 240
- CPU: Celeron 366MHz (686-class CPU)
- メモリ: 192MB
- ストレージ: HTS541080G9AT00, UDMA33
- OS: FreeBSD 8.3-RELEASE
- gcc: 4.2.2
Zedboard
- CPU: ARMv7 Processor 667MHz
- メモリ: 512MB
- ストレージ: Transcend SD 2GB (クラスは不明)
- OS: Linux 3.12.0 (Debian wheezy/sid)
- gcc: 4.6.4(Ubuntu/Linaro 3.6.3-1ubuntu5)
コメント