ziu*_*tek 3 hardware arm system scientific-computing numerical-methods
如果我问一些非常明显的事情,我道歉.
假设您正在设计一个浮点计算繁重的软件,您可以购买自己的硬件.假设您出于灵活性和易于代码维护的原因而排除FPGA和GPU.
进一步假设您在软件中具有相当水平的并行性.
很长一段时间,这意味着你被x86困住了.
我正在寻找一个客观的基准测试,可以判断现代ARM CPU是否在同一个球场.也许我找错了,但我发现很难找到一个值得信赖的基准(比如LAPACK或者某些物理模拟).我知道性能显然取决于任务,编译器优化目前可能会更好x86,但在这个阶段我真的想要比较数量级.
此外,我觉得很奇怪,你不能真正购买覆盆子PI的东西,但8-64现代核心可以与连接到单一总线的最新智能手机(如最新的Snapdragons)相媲美.如果我弄错了,请纠正我,但这样的解决方案可能有一天会超越FLOPS/$类别中的GPU而且更灵活.
以下是我通过Linux,Raspberry Pi和Android设备获得PC的Linpack Benchmark结果(我还有更多来自Windows).这些是基于我的C/C++ 1996转换PC,由原作者Jack Dongarra批准,并可通过.
http://www.netlib.no/netlib/benchmark/linpack-pc.c
这是针对100阶的矩阵,双精度.以下结果包括一些单精度.Dongarra对这款和超级计算机品种的历史性成果包括:
http://netlib.org/benchmark/performance.pdf
这只是一个基准,其他人给出了不同的故事.您可以从我的网站获得更多,包括源代码和MP品种,(免费,无广告):
http://www.roylongbottom.org.uk/
Linux 32/64 Bit Results
Double Precision 100x100 compiled at 32 and 64 bits
Opt No opt
CPU MHz MFLOPS MFLOPS
Atom N455 32b Ub 1666 196 94
Atom N455 64b Ub 1666 226 89
Core 2 Mob 32b Ub 1830 983 307
Athlon 64 32b Ub 2211 936 231
Athlon 64 64b Ub 2211 1118 221
Core 2 Duo 32b Ub 2400 1288 404
Core 2 Duo 64b Ub 2400 1577 378
Phenom II 32b Ub 3000 1464 411
Phenom II 64b Ub 3000 1887 411
Phenom II 64b Fe 3000 1872 407
Core i7 930 64b Ub **** 2265 511
Core i7 4820K 32b Ub $$$1 2534 988
Core i7 4820K 64b Ub $$$1 3672 900
Core i7 4820K AVX Ub $$$12 5413 935
Ub = Ubuntu Linux, Fe = Fedora Linux
**** Rated as 2800 MHz but running at up to
3066 MHz using Turbo Boost
$$$1 Rated as 3700 MHz but running at up to
3900 MHz, using Turbo Boost
$$$12 As $$$1, but compiled with GCC 4.8.2 that
produces AVX SIMD insructions.
Run Code Online (Sandbox Code Playgroud)
################################################## ####
Android and Raspberry Pi Versions
Double Precision and Single Precision (SP) 100x100
v7/v5 v5
CPU MHz Android MFLOPS MFLOPS
ARM 926EJ 800 2.2 5.7 5.6
ARM v7-A8 800 2.3.5 80.2
ARM v7-A9 800 2.3.4 101.4 10.6
ARM v7-A9 1300a 4.1.2 151.1 17.1
ARM v7-A9 1500 4.0.3 171.4
ARM v7-A9 1500a 4.0.3 155.5 16.9
ARM v7-A9 1400 4.0.4 184.4 19.9
ARM v7-A9 1600 4.0.3 196.5
ARM v7-A15 2000b 4.2.2 459.2 28.8
v7 SP Java
CPU MHz Android MFLOPS MFLOPS
ARM 926EJ 800 2.2 9.6 2.3
ARM v7-A9 800 2.3.4 129.1 33.3
ARM v7-A9 1300a 4.1.2 201.3 56.4
ARM v7-A9 1500a 4.0.3 204.6 56.9
ARM v7-A9 1400 4.0.4 235.5 57.0
ARM v7-A15 2000b 4.2.2 803.0 143.1
Atom Ax86 1666 2.2.1 15.7
Core 2 Ax86 2400 2.2.1 53.3
Raspberry Pi DP SP
CPU MHz Linux MFLOPS MFLOPS
ARM 1176 700 3.6.11 42 58
ARM 1176 1000 3.6.11 68 88
NEON SP
CPU MHz Android MFLOPS
ARM v7-A9 800 2.3.4 255.8
ARM v7-A9 1300a 4.1.2 376.0
ARM v7-A9 1500a 4.0.3 382.5
ARM v7-A9 1400 4.0.4 454.2
ARM v7-A15 2000b 4.2.2 1334.9
Run Code Online (Sandbox Code Playgroud)