了解处理器IP内核的性能评测

2020-11-25 11:31:12 EETOP
查看任何处理器IP时,你会发现供应商都会强调PPA(性能、功率和面积)数据。从理论上讲,它们应该提供一个公平的竞争环境来比较不同的处理器IP内核,但实际上情况更为复杂,我们需要考虑更多的性能比较。 

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

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

另一个考虑的是你最关心的是哪种计算类型。是整数运算还是浮点计算?过去,MFLOPS(每秒百万浮点操作)是一个流行的衡量标准。但同样,这里的 "操作"又具体指的是什么?

如今,综合基准已经普遍用于处理器IP内核。它们具有以下特征:

1.    相对较小
2.    代表了常用的相关应用程序,
3.    是可复制且透明的
4.    可以公平地应用于各种处理器

5.    可将基准测试结果表示为一个数字

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

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

另一个流行的嵌入式应用合成基准是EEMBC的CoreMark®,其目标是进行代表嵌入式整数处理需求的操作。它们包括列表处理、矩阵操作、有限状态机和CRC。

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

如果你的主要问题是浮点性能,请记住DMIPS和CoreMark是整数基准。您最好在浮点基准(例如LINPACK)的基础上比较内核。

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

原文:

https://codasip.com/2020/08/20/understanding-the-performance-of-processor-ip-cores/

关键词: 处理器 PPA Dhrystone Whetstone LINPACK MFLOPS DMIPS

  • EETOP 官方微信

  • 创芯大讲堂 在线教育

  • 创芯老字号 半导体快讯

全部评论