ARM与x86在浮点运算方面的比较

4

如果我问了一些显而易见的问题,我很抱歉。

假设您正在设计一个需要大量浮点计算的软件,并且您可以购买自己的硬件。假设出于灵活性和代码维护的原因,您排除了FPGA和GPU。

进一步假设,您的软件具有相当程度的并行性。

长期以来,这意味着您只能使用x86。

我正在寻找一个客观的基准测试,以判断现代ARM CPU是否处于同一水平。也许我搜索错误,但是我发现很难找到一个可信赖的基准测试(例如LAPACK或物理模拟)。我明白性能显然与任务相关,并且编译器优化可能目前在x86上更好,但是在这个阶段,我真的想比较数量级。

此外,我觉得奇怪的是,似乎无法购买类似于树莓派但带有8-64个现代核心的解决方案,这些核心可与最新的智能手机(如最新的Snapdragon)连接到单个总线。如果我错了,请纠正我,但这样的解决方案有望在FLOPS / $类别中超过GPU,并且更加灵活。


这可能会有所帮助:http://www.anandtech.com/show/6971/exploring-the-floating-point-performance-of-modern-arm-processors - fvu
大多数ARM CPU非常注重功耗。 PowerPC已经在网络设备中使用了一段时间。正在开发的ARM系统旨在取代PowerPC。手机指标为FMIPS /瓦特。与PC相比,如果它们具有更好的绝对性能,这并不令人惊讶。话虽如此,新的ARM CPU确实具有更好的聚集性能。我认为网络设备是您寻找更好信息的更好来源。 - artless noise
1
此链接似乎相关。另外,关于最后一点:如果64核心的消费设备存在并需要软件,则会有带有这些消费级64核心SoC的开发板。在此之前,许多多核心开发板已经存在用于许多多核心服务器级别芯片,例如AMD Seattle、APM X-Gene、Cavium ThunderX等。当然,这些都不是低成本的教育设备,但我想你提到的树莓派也不是这个方面的 ;) - Notlikethat
2个回答

6
以下是我在Linux、Raspberry Pi和Android设备上进行的Linpack基准测试结果(我还有更多关于Windows的数据)。这些数据基于我1996年针对PC的C/C++转化,经过原作者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.               

######################################################

      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        

2
关于您的第二个问题,如果您正在寻找一个价格便宜但功能强大的多核ARM平台,可以看看Odroid XU3。否则,如果您只关心性能(不涉及ARM架构),您也可以考虑评估Parallela(芯片是Epiphany)。

Parallela的每美元/瓦性能比非常出色,但我怀疑出于与GPU相同的原因,OP不会考虑它。 - tangrs

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接