基準測試能在您分析和比較各個系統(tǒng)時為您節(jié)省時間。但是,基準測試的真正價值常常意味著對每個評分的意義“進行逆向工程”并且將那些見解應(yīng)用到您的實際環(huán)境中。
要點
● 基準試圖將復(fù)雜系統(tǒng)進行抽象和簡化以便您能更好地進行蘋果對蘋果比較。
● 基準必須附帶完整的測試詳情才有意義。
● 您有責任分析基準測試詳情以判斷一個給定評分是否與實際情況相關(guān)。
● 基準應(yīng)該只作為整個決策過程的一個數(shù)據(jù)點,諸如供應(yīng)商開發(fā)支持和平臺靈活性等其他定性因素可能比基準測試高評分更重要。
基準是一個您能用以對兩個或更多相似選擇對象的價值和質(zhì)量進行一致的測量、量化和比較的參考點,這些選擇對象包括商業(yè)過程、工具和嵌入式處理器等。對于嵌入式處理器來說,基準通常是一組在候選處理器上運行的一致性軟件代碼,因此您可以將候選處理器的性能與其他可供選用的處理器進行比較。處理器基準并不局限于測量處理器體系結(jié)構(gòu)效率;它們還能表明編譯器相對于人工優(yōu)化編碼的效率。
理想的基準對一個系統(tǒng)的重要性能度量進行提取和合并,形成一個在特定上下文中,能對不同系統(tǒng)選擇進行有意義的“蘋果對蘋果”比較的簡化表示 或評分。但是,使用理想的基準如果不能比不太精確的比較工作更多地節(jié)省時間、降低成本或者減小風(fēng)險,那是不切實際的。
對于具有某一清晰目標的系統(tǒng)或任務(wù)來說,您常常會找到一個性能度量,用以精確獲取系統(tǒng)行為,并在您將該系統(tǒng)與其他選擇對象比較時具有良好的相關(guān)性。比較兩個處理器的時鐘速率就是獲得相對性能的一個流行的基準度量,但是它的適用環(huán)境很窄,只有當這兩個處理器除了時鐘速率之外大致相同時,這種比較才有用。盡管比較基準測試評分的簡單性如何吸引人,但正確解釋這些相互關(guān)聯(lián)的評分則需要您了解基準測量的基本細節(jié)及其與您應(yīng)用系統(tǒng)的相關(guān)性。對于嵌入式設(shè)計來說,您比較的處理器體系結(jié)構(gòu)可能大不相同,因此使用時鐘速率作為基準度量也許是不適宜的。
通常,嵌入式設(shè)計必須同時平衡并滿足許多目標,例如提供正確的功能既要快速、經(jīng)濟實惠,又要具有低功耗、高質(zhì)量和靈活性。就這幾類情況而言,性能是多方面的,因此將系統(tǒng)性能精確地描述為一個簡化的評分,用以與其他選擇對象進行有意義的比較,可能是困難而又代價高昂的。對多個系統(tǒng)進行比較存在一個難題,就是既要使獲得和導(dǎo)出基準測試評分簡易而又花錢少,又要使不同系統(tǒng)的相同評分的排名有意義。
謊言和更多謊言
許多處理器供應(yīng)商都使用基準測試評分作為一種營銷工具。但是,有些經(jīng)常發(fā)布的基準測試評分,如MIPS(每秒百萬條指令)和DMIPS(Dhrystone MIPIS),在沒有特定背景的情況下是毫無意義和不恰當?shù)模▍㈤喐轿摹痘鶞蕼y試游戲》)。這兩類性能評分的繼續(xù)廣泛使用使得處理器基準測試獲得了對處理器性能度量不精確的名聲。一次網(wǎng)上搜索就會發(fā)現(xiàn)對下面關(guān)于標準基準測試的陳述的多次引用:“計算機行業(yè)有三種謊言:謊言、該死的謊言和基準測試。”
綜合基準測試通常試圖通過使用人工指令序列或者通過盡量模擬真實環(huán)境應(yīng)用系統(tǒng)中的普通指令混合,來度量某個系統(tǒng)、處理器或編譯程序的一個或多個新性能。相反,真實環(huán)境應(yīng)用系統(tǒng)基準測試在考慮處理器特性方面前進了一步,它試圖對處理器體系結(jié)構(gòu)和開發(fā)工具如何處理特定類型應(yīng)用系統(tǒng)的預(yù)期工作量進行預(yù)測和量化。應(yīng)用系統(tǒng)基準測試可能使用一組或多組真實應(yīng)用程序代碼塊來為一個應(yīng)用系統(tǒng)實現(xiàn)代表性的功能。
公開傳播諸如MIPS和DMIPS等標準綜合基準測試這種做法凸顯出人們需要開發(fā)和使用簡單而又有意義的度量。這幾類基準測試相對比較便宜,也最容易實現(xiàn),因而沒有容易而又低成本實現(xiàn)的無版權(quán)替代方案。行業(yè)標準基準測試是對競爭性產(chǎn)品進行比較的基礎(chǔ),但是,供應(yīng)商通常要承擔一筆可觀的費用以便獲得基準測試證據(jù)。BDTI(Berkeley設(shè)計科技有限公司)、EEMBC(EDN嵌入式微處理器基準聯(lián)盟)和SPEC(標準性能評估公司)等基準組織通過提供能對目標性能測量進行分類的基準測試套件,致力于各種不同方面的計算。各種基準測試套件構(gòu)成一致性測試的基礎(chǔ),并支持一個性能評分的粒度范圍,使得您能夠在一個特定環(huán)境中更好地評估處理器特性和系統(tǒng)性能。
行業(yè)標準基準測試可以作為決策過程的一個有價值的“輸入”,但還不足以成為您設(shè)計決策的唯一依據(jù)。首先,為您應(yīng)該考慮的每個處理器平臺找到相關(guān)而又可比的基準測試結(jié)果可能是很難或者是不可能的事。另一個問題是,當您確定找到相關(guān)而又可比的基準測試時,基準測試數(shù)據(jù)可能本來是為您當前正在考慮的一代代處于完全不同時間點的不同處理器導(dǎo)出的,而且它本可以采用的存儲器結(jié)構(gòu)與您將要使用的迥然不同。特定的或自定義基準測試是分析過程的一部分,有助于填補行業(yè)標準基準測試與您應(yīng)用需求之間的空白。
有幾類基準測試用戶退出了。顯而易見的基準測試用戶是嵌入式系統(tǒng)設(shè)計師或者是成為銷售組織營銷對象的終端用戶。但是,據(jù)幾個基準組織說,終端用戶并不是行業(yè)標準基準測試結(jié)果的主要用戶群體;鶞蕼y試作為主要決策依據(jù)還不充分,因為它們不能精確地反映每個嵌入式系統(tǒng)設(shè)計師的應(yīng)用需求。例如,許多基準測試是內(nèi)核級的,不考慮與設(shè)計師在最終應(yīng)用中要使用的操作系統(tǒng)的交互作用。
當終端用戶使用基準測試結(jié)果時,他們同各個處理器廠商的合作常常比同基準組織的合作更為密切,以便獲得性能數(shù)據(jù)和復(fù)制測試結(jié)果方面的幫助,并了解基準測試配置如何適用于他們的設(shè)計要求。終端用戶可能使用基準測試作為縮減候選處理器名單的一個“輸入”,但是其他項目如一組集成特性、支持的I/O接口、開發(fā)工具、培訓(xùn)、文檔、第三方開發(fā)支持基礎(chǔ)設(shè)施以及規(guī)劃風(fēng)險,都將在排除候選處理器時起重要作用。通常,終端用戶基準測試是一個僅適合于立即進行的設(shè)計項目的特殊過程。
許多處理批量大而對價格敏感的設(shè)計的OEM(原始設(shè)備制造商),都根據(jù)自己的自定義基準測試來選擇處理器。自定義基準測試可以由既有應(yīng)用代碼構(gòu)成,但也可能包括來自行業(yè)標準基準測試的代碼。有些OEM成為基準組織的成員,以便獲得基準測試源代碼,因此,他們能將該源代碼的一部分合并到他們的自定義基準測試套件中。這些基準測試套件只能滿足范圍狹小的目標需求,所以更詳細、更全面。行業(yè)標準基準努力在相關(guān)性、復(fù)雜度和成本之間取得平衡,能滿足范圍較廣的應(yīng)用需求。通常,OEM基準測試工作對競爭很敏感,只供內(nèi)部使用。
基準測試可以幫助您進行可行性研究并找到一款適合您應(yīng)用系統(tǒng)的處理器,但它們也能在設(shè)計周期內(nèi)或設(shè)計周期后,幫助您驗證系統(tǒng)性能、確認改進措施、確定處理器在您實現(xiàn)方法中的提升空間。基準測試能幫助您鑒別性能缺陷,并幫助您將注意力集中在改進性能上。特定的基準測試并不局限于近似典型應(yīng)用系統(tǒng)的工作負載;它們可能包括吸取教訓(xùn),即強調(diào)系統(tǒng)必須驗證性能,這對于安全性很重要的應(yīng)用系統(tǒng)來說特別有價值。
處理器供應(yīng)商和提供開發(fā)工具支持的廠商是基準的主要用戶。他們使用內(nèi)部基準測試結(jié)果或者行業(yè)標準基準測試結(jié)果來進行體系結(jié)構(gòu)定型和反饋優(yōu)化。對于體系結(jié)構(gòu)設(shè)計師來說,基準測試結(jié)果能表明處理器體系結(jié)構(gòu)上的修改是否能使該處理器更加適合于或更加不適合于某種應(yīng)用系統(tǒng)。基準測試還能證明體系結(jié)構(gòu)上的修改對于滿足目標應(yīng)用系統(tǒng)需求沒有什么影響。對于工具設(shè)計師來說,基準測試結(jié)果能表明編譯程序是否充分利用了一款處理器特有的功能特性。當基準測試套件充分獲取這幾類必要的應(yīng)用程序功能并運用適當?shù)奶幚砥魈匦詴r,這類閉環(huán)優(yōu)化能導(dǎo)致處理器體系結(jié)構(gòu)和開發(fā)工具的積極演進。
銷售組織使用基準測試結(jié)果的方式與前面提到的群體使用方式頗為不同。銷售組織把基準測試看作是表明其處理器優(yōu)于經(jīng)過相同和相似的基準測試并且生產(chǎn)公司也發(fā)布了測試結(jié)果的處理器的機會,(參閱附文“公開披露還是秘密披露?”)。依賴于吹噓某個優(yōu)秀基準測試得分超過與之競爭的處理器的銷售材料可能是危險的。銷售材料常常將基準測試得分在圖表中作為一個合成數(shù)據(jù)顯示出來,您有責任研究這些被比較的系統(tǒng)的測試配置情況。
現(xiàn)代基準仍然不包含能突出某款處理器在多項內(nèi)容上與另一處理器對比的綜合評分,這些對比內(nèi)容包括人為的基準測試專用功能單元、器件成本差別、功耗或者可編程性和靈活性等。某些獲得最高基準測試分的處理器只是某項功能很好,而其他功能并不令人滿意。
使用基準
為了最有效地使用任何基準測試,您首先需要了解您的應(yīng)用系統(tǒng)的特性,以便能評價基準測試與實際情況的相關(guān)性。當使用基準測試來選擇平臺、供應(yīng)商和處理器體系結(jié)構(gòu)時,您應(yīng)該先將重要功能和性能閾值列出并排出其先后次序。要鑒別您的應(yīng)用系統(tǒng)的工作環(huán)境以及它必定能完成的任務(wù)和算法。您是使用手工優(yōu)化的匯編程序還是所有您經(jīng)過編譯的軟件?您是否會使用操作系統(tǒng)?您的功率預(yù)算有多大?您的程序代碼和數(shù)據(jù)需要多大的存儲器?您能否假定所有存儲器訪問均來自快速存儲器?您需要哪些外設(shè)和I/O接口?您需要多高性能和I/O冗余能力?
除了考慮性能和功能要求之外,您還應(yīng)該鑒別同一份列表中的項目和商業(yè)需求并排出其先后次序。為避免學(xué)習(xí)一種新工具或操作系統(tǒng)或者支持既有代碼而使用開發(fā)工具套件到底有多重要?您需要從處理器供應(yīng)商的開發(fā)支持基礎(chǔ)設(shè)施中獲得多少應(yīng)用軟件專業(yè)知識?您是否需要應(yīng)用軟件說明、代碼示例或參考設(shè)計?您的成本目標是多少?您是否需要在特定測試環(huán)境內(nèi)工作?接受培訓(xùn)有多重要?供應(yīng)商規(guī)劃圖風(fēng)險容限有多大?
最有用的基準測試能精確地預(yù)測或描述處理器和供應(yīng)商能在多大程度上支持您的應(yīng)用系統(tǒng)和項目需求,而所花的成本、時間和工作量最少。如果一個行業(yè)標準基準測試與您的應(yīng)用系統(tǒng)緊密相關(guān),那就使用它,但是務(wù)必作出適當?shù)呐Γ瑢γ宽椈鶞蕼y試的細節(jié)進行驗證。測試裝置是否旨在演示計算性能、證明持續(xù)的I/O效率或表示低功耗?測試裝置的偏差是否與實際情況相關(guān)?數(shù)據(jù)路徑和存儲器結(jié)構(gòu)對您的應(yīng)用系統(tǒng)來說現(xiàn)實嗎?基準測試能描述處理器性能,但是它們現(xiàn)在還不能獲取項目和商業(yè)要求。因此,基準測試只應(yīng)該用作處理器選擇分析的一個輸入。
務(wù)必了解您使用的基準是否恰如其分地反映處理器功能和編譯程序效率。編譯程序效率與嚴重依賴于手工匯編語言例程(例如那些高性能信號處理算法內(nèi)部循環(huán)中的例程)的應(yīng)用系統(tǒng)是不相關(guān)的。同樣,如果您使用C代碼,而且您使用的編譯程序沒有利用您希望使用的處理器功能,則與處理器功能性能也是不相關(guān)的。
當標準基準測試不能足夠精確地接近您的應(yīng)用系統(tǒng)需求時,您仍然可以在處理器供應(yīng)商或基準測試服務(wù)提供商的幫助下,應(yīng)用特殊的和自定義的基準測試,并從基準測試中獲得好處。當您正在使用基準測試數(shù)據(jù)進行分析時,務(wù)必向處理器供應(yīng)商詢問最新的基準測試評分以及產(chǎn)生這些評分的詳情。這些數(shù)據(jù)可能不會公布,但是產(chǎn)生評分的詳情對于您了解評分的意義、評分的復(fù)制方法以及它們與實際情況的相關(guān)性十分重要。您可以決定設(shè)法在廠商提供的開發(fā)工具(例如在一個評估板)上重復(fù)這些結(jié)果,或者在某些情況下,您可以將您自己的基準測試代碼提供給處理器供應(yīng)商進行測試并向您匯報。無論如何,供應(yīng)商應(yīng)能詳述所有測試結(jié)果并提供與您的實際情況相關(guān)的具體意見。
分析和了解基準測試需要花費時間和資源。但是,設(shè)法重復(fù)廠商的基準測試能揭示一些有價值的見解。處理器供應(yīng)商只是在他們認為能夠從銷售中收回投資時,才可能進行基準測試工作并共享那些測試結(jié)果。處理器供應(yīng)商對您的應(yīng)用系統(tǒng)了解得越多,他們能提供的基準測試支持就越大。一家供應(yīng)商的基準測試能突出并讓您洞察標準基準測試無法獲得的工具和處理器特性,在供應(yīng)商的幫助下,您可以發(fā)現(xiàn)編譯程序優(yōu)化方法和處理器體系結(jié)構(gòu)的細節(jié),而無論是好是壞,這些細節(jié)將對您的實現(xiàn)假設(shè)構(gòu)成挑戰(zhàn)。廠商應(yīng)該有能力幫助您將您的代碼映射到目標設(shè)備上,并提供如何利用特殊性能的例子。有些廠商允許客戶的基準測試、復(fù)制努力集中在客戶不完全理解的關(guān)鍵性特性上,而改進的見解對于客戶的分析十分重要。與實施完成之后相比,在選擇期間將更有利于做這些發(fā)現(xiàn)。
關(guān)于節(jié)省時間
基準測試的主要目的是為您節(jié)省時間和資金,降低總的風(fēng)險。如果您不在乎時間和金錢,那您可以在多個系統(tǒng)上開發(fā)應(yīng)用系統(tǒng),然后比較最后結(jié)果再做出最終決定。在有些情況下,這種方法可能是適宜的,但是對大多數(shù)情況,這是一種不可能的奢侈;鶞蕼y試應(yīng)用得當,應(yīng)能幫助您預(yù)測各個候選系統(tǒng)是否成功,而不會花費實現(xiàn)整個設(shè)計的全部費用,但只是在基準測試與您的應(yīng)用系統(tǒng)工作負載相關(guān)時才是這樣。
基準組織正在修改他們的基準測試套件,以便更好地反映市場變化并且使廠商博弈穩(wěn)定基準測試套件的風(fēng)險降至最小。未來基準測試計劃是致力于如何更好地反映今天和未來應(yīng)用系統(tǒng)的不斷變化的工作負載,其中包括如何將功耗因素納入評分之中。功耗取決于使設(shè)計師難以用標準而又有意義的方式獲取類似于基準測試的評分的許多系統(tǒng)問題。另一個挑戰(zhàn)性領(lǐng)域是由多個系統(tǒng)融合成一個產(chǎn)品或設(shè)備這種趨勢產(chǎn)生的;它迫使未來的基準測試必須考慮如何獲取跨越應(yīng)用系統(tǒng)界限的工作負載。
如果能抽出時間,您應(yīng)該投入必要的時間分析關(guān)于系統(tǒng)配置的全部情況,并對供應(yīng)商基準測試評分“進行逆向工程”。您在這個過程中獲得的見解可能證明是非常寶貴的。您應(yīng)能與供應(yīng)商討論所有基準測試的細節(jié)。測試環(huán)境的人為細節(jié)可能使評分失去實用性,但可以突出您在其他情況下得不到的某種有用功能。
總之,基準測試能幫助您根據(jù)性能選擇一種處理器。但是僅僅依靠基準測試是不足以幫助您在兩個可比的處理器系統(tǒng)之間作出選擇的。與供應(yīng)商共同進行的基準測試能使您定性地認識到供應(yīng)商及其開發(fā)支持基礎(chǔ)設(shè)施能在多大程度上滿足您的需求。一旦您擁有合適的候選處理器,諸如供應(yīng)商技術(shù)響應(yīng)、代碼移植簡易性、需要進行的軟件移植總量、文檔和培訓(xùn)質(zhì)量以及處理器發(fā)展藍圖符合您未來需求的可能性等因素都將在您的最終抉擇中被優(yōu)先考慮。
摘自《END技術(shù)》