关于嵌入式基准测试的11点误解

翻译自:
11 Myths About Embedded Benchmarking


嵌入式基准测试的目标可能包括:性能、能耗、内存使用,也可能包括可靠性、互操作能力、温度稳定性。

历史上嵌入式基准测试主要评估处理器或微控制器(MCU)。随着SoC的兴起,后来主要评估系统。而现在,“嵌入式”的概念也包括了许多垂直应用,涵盖了从极低功耗的物联网(IoT)设备到高性能的扩展服务器等诸多领域。

跟其他所有形式的基准测试一样,嵌入式基准测试既是科学也是艺术。其科学性体现在,必须开发一种方法论,来产生一致的、可重复的测试结果。其艺术性体现在,基准的开发者必须考虑到用户使用该基准的所有场景,其中一些场景可能会严重违背设计基准时的意图。

1 一个基准(benchmark)并不仅仅是一个工作负载(workload)程序。

一个基准应该是一个工具,能够让用户作公平、平等的比较。因此,该基准应该是跨平台、可重复、需要一致性地构建及对应的运行时参数。换言之,一个基准应该包括:工作负载、参数、运行规则。对于基准开发者来说,有时候选择最优的参数集比构建工作负载本身更困难。

2 最好的基准并不就是用户的真实应用代码。

一方面,好的基准应该能代表典型的真实应用;另一方面,基准必须定义一个参考框架,这样可以在同样的条件下比较不同的设备,而这又需要一个人工合成的应用。换言之,真正具有广泛代表性的应用,通常不是真实的、特定的一个应用。因此,有效的基准的核心是妥协。一方面,尽量减少基准的规模,以降低成本;另一方面,在这个规模下尽可能地代表典型的应用任务。(类似于软件测试中测试集合的选择?)

比如,穿戴设备的主要特点包括电池驱动、无线连接、数据加密和模拟感知,能耗是关键的性能指标。因此,一个合适的穿戴设备的基准会测量模数转换、加密、无线传输过程中的能耗。其结果并不是一个真实应用的能耗,但是一个良好的基准得分意味着任何具有同样特点的应用都有好的性能指标。

3 针对一个基准的编译器优化,并不能总能改善真实应用的性能指标。

诚然,基准是真实应用的典型代表,如果针对这些典型任务进行编译优化,优化的效果也能在真实应用中得到体现。但是,如果通过研究基准的非典型部分的特点进行优化,虽然基准得分会提升,但是不一定改善真实应用。

此外需要注意的是,在考虑基准的测量结果时,需要同时考虑性能、内存尺寸和能耗,因为真实的应用场景通常会有内存和能量的限制。许多编译器厂商为了获得更高的CoreMark得分,利用了基准的非典型特点,然后使用过度的内联、循环展开、函数特殊化等技巧来改善性能,但是导致了巨大的代码膨胀和消耗更多的能量。

4 嵌入式基准并不只关心执行速度。

早期计算机的发展主要目标是提升执行速度,因此,比较CPU性能是主要关注点。包括EEMBC组织的CoreMark, FPMark(浮点性能), MultiBench(多核可扩展性能),以及系统级基准ANDEBench-Pro(安卓系统)和BxBench(浏览器体验)。

但是,近年来随着移动设备和IoT的发展,以及人类对于能源和资源的日益敏感,处理速度不再是唯一的性能指标。能效日益重要。EEMBC的ULPBench和IoT-Connect基准就是为了评估能耗而开发的。(为什么为了不同的性能指标,需要不同的基准?)

5 CPU指令数不能用作性能指标。

同一个指令,在不同实现上可能使用不同的时钟数。此外,因为指令的功能和逻辑不一样,不同指令的能耗也相差很大。并且,绝大部分嵌入式系统使用外围电路,比如ADC、UART、SPI等。通常访问外围电路的指令会消耗更多的能量。嵌入式基准需要处理这些情况,以比较不同的系统实现。

6 系统性能并不跟CPU时钟频率线性相关。

在嵌入式系统中,外围电路的访问延时限制(比如flash存储的访问频率低于30 MHz)通常成为整个系统的瓶颈,这时,提高CPU频率也改善不了性能,而只会降低单位频率的CoreMark得分。嵌入式系统会利用cache等机制改善这些性能。

7 对于处理器核心的评分,不一定适用于基于该核心的SoC。

IP核厂商通常会提供核心的评分,这些评分基於单核心的验证获得(包括时钟精度仿真器、RTL仿真器和FPGA仿真器),比较合理。但是,在真实的SoC中,会引入二级、三级存储,以及总线或者互联结果,这些竞争和延时会导致核心的评分不能适用于SoC。

8 在基准测试能效时,CPU休眠时功耗不再是最重要的事情。

在现代计算系统中,当CPU休眠或执行别的任务时,很多复杂的功能都可以由其他部件完成,包括自动感知、外围电路之间的数据传输,以及无线网中自动网络包的加密、封装、解密、解码和地址解析。

9 IoT领域的基准并不是大公司才能玩的领域。

IoT几乎涵盖了我们日常生活的所有领域。许多大公司在IoT领域投入了大量资金,但是由于生态系统的不成熟,以及智能设备与云之间的不连续性,IoT市场发展很慢。由于IoT领域的特点,小公司有很多机会在自己熟悉的领域构建创新的商业模型和敏捷的解决方案。

由于云计算是IoT的必要组成部分,对于IoT的基准测试跟传统的嵌入式CPU的基准测试有很大区别。

10 对IoT应用的安全性作基准测试是可能的。

IoT的安全是一个非常复杂的问题,涉及到软件和硬件、算法和协议、生命期和过程挑战。IoT应用受攻击的范围也包括了整个互联网。

虽然不大可能用一个基准来测试所有的安全问题,但是仍然有一些标准用来评估安全性(比如Common Criteria standard),也有一些实验室提供独立的安全性评估。

此外,安全都是有成本的,所以安全性的评估也需要考虑安全的成本,或者说需要考虑安全措施的性价比。对于低成本IoT市场,有一些有效的安全方案,包括SecureShield,TrustZone和OmniShield。问题是如何平衡安全性能和成本,以便进行选择。

11 基准测试时,只考虑端节点而不考虑网络或服务器,是不够的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章