cortex-a9的运算性能测试

我最近买了一个国产的arm开发板,我想比较一下它和我的台式机的性能差别。最后我觉得,家里自建服务器还是用intel的方案吧,比如DN2800MT之类。ARM只适合移动设备。

测试环境:

机器1:

硬件:mac mini 2012, CPU是i5-3210M CPU @ 2.50GHz,1个物理CPU,双核,超线程,所以在操作系统里看起来是4个CPU。
软件:Ubuntu 13.10 x86_64。 kernel是3.11.0-18-generic。

机器2:

硬件:radxa开发板。Soc是瑞芯微rk3188,CPU 是4核的cortex-A9@1.6GHz,内存2GB DDR3 @ 800Mhz. 其它详细的硬件信息见这里:http://radxa.com/specification/
软件:Linaro 13.09。

C++容器测试:

PC的软件环境:

编译器: gcc 4.8.1
编译参数:--std=c++11 -mtune=native -march=native -fno-strict-aliasing -O3 -DNDEBUG

ARM的软件环境:

编译器: gcc 4.7.3
编译参数:--std=c++0x -mcpu=cortex-a9 -mfpu=neon-fp16 -mfloat-abi=hard -D__ARM_ARCH=7 -fno-strict-aliasing -O3 -DNDEBUG

用一段简单的C++程序,单线程顺序插入1024个整数到std::vector<int>或std::list<int>中,计算耗时。

耗费的时间来自getrusage函数。把user mode和kernel mode的总时间加起来。

结果:

  PC ARM
vector插入 1.4亿条每秒 3000万条每秒
list插入 3000万条每秒 500万条每秒

由于我的程序是单线程,所以这里比较的是单核的性能。大概有5、6倍的差距。

OpenSSL的RSA性能测试:

PC的软件环境:

OpenSSL 1.0.1e 11 Feb 2013

ARM的软件环境:

OpenSSL 1.0.1c 10 May 2012

测试内容:测试每秒能进行多少次RSA 4096签名或验证RSA 4096签名。

这里用的是预编译的包,所以没有针对特定CPU进行优化。

结果:

  PC ARM
4线程签名/秒 216 27
4线程验证/秒 13583 1660
单线程签名/秒 101 7
单线程验证/秒 6440 418

单核相差了约15倍。PC是双核,ARM是4核,所以在4线程下,差距有所缩小。

其它测试我有空再做吧。

此博客中的热门博文

在windows下使用llvm+clang

少写代码,多读别人写的代码

tensorflow distributed runtime初窥