中文 英语
狗万2017
的意见

了解处理器IP核的性能

PPA数字听起来不错,但一个单一的基准可能不能说明全部情况。

受欢迎程度

查看任何处理器IP,你会发现他们的供应商都强调PPA(性能、功率和面积)数字。理论上,它们应该为比较不同的处理器IP核提供一个公平的竞争环境,但实际上,情况要复杂得多。让我们考虑性能。

首先要考虑的是你关心性能的哪个方面。您更关心您想要的绝对吞吐量(每秒性能),还是每MHz的性能?在像机器视觉这样持续运行并需要使用复杂算法的应用程序中,您可能会关心绝对吞吐量。但是,如果您有一个占空比低的无线传感器节点,当节点唤醒时,您将希望它在尽可能少的时钟周期内处于活动状态。这意味着您将关心每MHz实现多少计算量。

大约40年前,计算机是在MIPS(每秒数百万条指令)的基础上进行比较的,但问题是——指令是什么?指令在复杂性和架构上有很大的不同,因此在CISC处理器中,一个操作通常比RISC处理器需要更少的周期。MIPS只在比较具有相似架构的产品时有用,被一些人称为“毫无意义的性能指标”!

另一件需要考虑的事情是您最关心的计算类型。它是整数运算吗?如果是,是哪些?还是浮点计算?在过去,MFLOPS(每秒百万次浮点运算)是一种流行的度量。但是,什么是“操作”?

今天,合成基准测试普遍用于处理器IP核。它们具有以下特点:

  1. 它们相对较小,便于携带,
  2. 它们代表了常用的相关应用,
  3. 它们是可复制和透明的,
  4. 它们可以公平地应用于一系列处理器,
  5. 它们将基准测试结果表示为单个数字。

在过去36年里一直流行的一个基准是Dhrystone基准。它的名字是一个文字游戏,将其与曾经流行的Whetstone基准进行比较。Whetstone专注于浮点运算,Dhrystone则专注于整数和字符串运算。Dhrystone基准测试结果通常引用为DMIPS (Dhrystone分数除以名义上为1 MIPS的机器的分数)。基准测试一直受到批评,因为现代编译器可以优化掉部分工作,这意味着它部分测试编译器而不是处理器性能。

对于浮点,目前很少使用Whetstone,更可能使用LINPACK。LINPACK涉及使用浮点数对矩阵进行LU分解。结果用MFLOPS表示。

嵌入式应用程序的另一个流行的合成基准是EEMBCCoreMark,其目的是执行代表嵌入式整数处理需求的操作。其中包括列表处理、矩阵运算、有限状态机和CRC。

正如您所看到的,有各种基准测试系统,每种系统都适用于测量略有不同的性能类型。那么,在为项目选择处理器IP时如何评估性能呢?如果您的嵌入式软件具有与合成基准测试相似的操作,那么该基准测试可以快速而简单地为您提供有用的初始指导。但是,通常这样的基准测试是按MHz引用的,例如CoreMark/MHz。对于低功耗应用程序,每MHz数字通常是一个很好的指示,您正在寻找每个周期的良好结果。然而,如果您正在寻找高的绝对性能,这可能是误导。相反,您应该考虑在目标时钟频率下可以实现的coremark。

如果您的主要问题是浮点性能,请记住DMIPS和CoreMark是整数基准测试。您最好基于浮点基准测试(如LINPACK)来比较内核。

最终,花时间在处理器内核上运行真实的软件,以评估该内核是否能提供所需的性能,总是有意义的。如果你正在研究RISC-V,那么分析你的软件以了解计算瓶颈在哪里,也可以评估添加自定义指令是否可以提高性能。



1评论

罗伊·隆巴顿 说:

作为Whetstone基准的设计权威,我应该指出,它可能是唯一一个在早期的大型机、小型机和pc上都有结果的基准,然后是Android设备和树莓派。也有多核版本。谷歌为罗伊隆巴顿磨刀石,Dhrystone, Linpack, ARM, Pi,

留下回复


(注:此名称将公开显示)

Baidu