關於嵌入式基準測試的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 基準測試時,只考慮端節點而不考慮網絡或服務器,是不夠的。

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