摘要:CPU技術(shù)發(fā)展迅速,性能基準(zhǔn)測試也在不斷演進。對包含SPEC CPU在內(nèi)的主流基準(zhǔn)測試進行了研究,從測試目標(biāo)、測試方法等角度,綜述主流CPU基準(zhǔn)測試的演進過程、最新研究成果,以及通用CPU性能指標(biāo)和基準(zhǔn)測試需求,分析了通用CPU性能基準(zhǔn)測試所面臨的挑戰(zhàn),并對今后可能的研究趨勢進行了展望。
信息基礎(chǔ)設(shè)施自主可控逐漸受到各國的重視,研發(fā)推廣X86 架構(gòu)之外的通用CPU,例如 ARM,RISC-V,Alpha,MIPS等指令集架構(gòu),已成為推動信息產(chǎn)業(yè)變革發(fā)展的主要路徑之一。?近年來,采用 X86,ARM 等不同指令集架構(gòu),常用于服務(wù)器和桌面計算的異構(gòu)通用CPU加速迭代升級,不同架構(gòu)CPU在功耗、適用場景等方面各有優(yōu)勢。但主流CPU性能測試工具與方法主要圍繞 X86 架構(gòu)芯片設(shè)計,如何對異構(gòu)通用 CPU 的質(zhì)量水平進行科學(xué)評價,成為引導(dǎo)技術(shù)突破、支撐重大信息化工程建設(shè)和促進行業(yè)發(fā)展的關(guān)鍵。
本文從測試目標(biāo)、測試方法的角度綜述了 CPU 基準(zhǔn)測試的發(fā)展現(xiàn)狀和趨勢,并對測試工具的演進和最新成果進行對比分析,旨在為研究者提供一個覆蓋 SPEC、TPC 等多類性能基準(zhǔn)測試工具和多線程、跨平臺等各類場景,以及包含速度和速率性能指標(biāo)分類、基于預(yù)置模型的測試結(jié)果修正等創(chuàng)新方法的說明,增加相關(guān)人員對通用 CPU 性能基準(zhǔn)測試研究的理解。
一、常用的性能基準(zhǔn)測試 1、SPEC基準(zhǔn)測試
SPEC 性能基準(zhǔn)測試于 1988 年由標(biāo)準(zhǔn)性能評估機構(gòu)SPEC 提出,目前已發(fā)展成為包含 CPU 性能、服務(wù)器能效、文件系統(tǒng)性能、高性能計算、Web 應(yīng)用性能等在內(nèi)的基準(zhǔn)測試簇。其中 SPEC CPU系列基準(zhǔn)是公認(rèn)的、具有事實性影響力的CPU性能基準(zhǔn)測試標(biāo)準(zhǔn),通過測試程序在被測系統(tǒng)和基準(zhǔn)系統(tǒng)中執(zhí)行時間的比值來考察系統(tǒng)CPU運算性能。
多年來,SPEC CPU性能基準(zhǔn)測試與CPU的發(fā)展相互促進,基準(zhǔn)測試程序不斷演進升級,CPU技術(shù)和產(chǎn)業(yè)應(yīng)用也加速創(chuàng)新發(fā)展。
SPEC CPU 92 通過調(diào)整測試基準(zhǔn)來應(yīng)對行業(yè)需求,迅速取代MIPS 度量,成為產(chǎn)業(yè)界公認(rèn)的事實標(biāo)準(zhǔn),也驅(qū)動各界在提升整型運算和浮點型運算的同時,積極尋求新的 CPU 技術(shù)突破方向. 隨著技術(shù)的創(chuàng)新迭代,CPU時鐘頻率加速攀升,高速緩存容量持續(xù)增大、性能不斷提高,也使得SPEC CPU 92 的性能測試受到較大的影響。為進一步提升測試準(zhǔn)確性,業(yè)界推出了 SPEC CPU 95,在應(yīng)對新的容量、性能測試需求時,提供了更全面的場景來豐富 CPU 性能測試能力,引導(dǎo)技術(shù)創(chuàng)新由局限于關(guān)注裸性能向注重實際場景應(yīng)用效果轉(zhuǎn)變。SPEC CPU 2000延續(xù)了 SPEC CPU 95 由兩套基準(zhǔn)測試程序分別測試 CPU整型運算性能和浮點運算性能模式。?同時,為更好地應(yīng)對不斷普及的多核處理器計算系統(tǒng)測試需求,保證測試結(jié)果的科學(xué)性和合理性。
為了滿足更多場景的測試要求,SPEC 再次對測試基準(zhǔn)進行完善,推出了 SPEC CPU 2006. SPEC CPU 2006 新增的測試套件涵蓋到 CPU、存儲系統(tǒng)、編譯器等。
經(jīng)過10年的沉淀,在SPEC CPU 2006的基礎(chǔ)上推出的 SPEC CPU 2017,進一步豐富應(yīng)用場景,具體包含 43 個基準(zhǔn),分為兩類四個套件 . 其中,SPEC speed?Integer 和 SPEC speed Floating Point 套件用于比較計算機完成單個任務(wù)的時間,SPEC rate Integer 和 SPEC rateFloating Point 套件則可以測量每單位時間內(nèi)的吞吐量或工作量。這也是第一次對速率(rate)和速度(speed)進行區(qū)分,以有效滿足復(fù)雜場景下對性能基準(zhǔn)測試的穩(wěn)定性提出更高要求,進而指導(dǎo)CPU發(fā)展。
2、TPC基準(zhǔn)測試
不同于 SPEC 從最初關(guān)注裸性能不斷拓展到系統(tǒng)性能,TPC性能基準(zhǔn)測試在設(shè)計之初就將系統(tǒng)級應(yīng)用的綜合性能測評作為關(guān)注的重點。
用于度量系統(tǒng)對該類事務(wù)處理性能的主要測試基準(zhǔn)包括TP1(Transaction Process 1)和 DebitCredit。該類測試基準(zhǔn)由于缺少對測試執(zhí)行過程和綜合測評結(jié)果的有效監(jiān)督,易出現(xiàn)測試過程不規(guī)范,甚至給出誤導(dǎo)性測試結(jié)果的情況。20 世紀(jì) 80 年代末,第一個TPC基準(zhǔn)TPC-A發(fā)布,對事務(wù)處理時限、測試系統(tǒng)終端數(shù)量等提出明確要求,澄清了當(dāng)時混亂的市場,為推動CPU的系統(tǒng)級性能測試提供了重要依據(jù)。
經(jīng)過持續(xù)迭代升級,TPC已發(fā)展成為能夠滿足多種應(yīng)用場景性能測試需求的基準(zhǔn)測試簇,根據(jù)測試場景和測試事務(wù)的不同,可將 TPC性能基準(zhǔn)測試分為三類:
聯(lián)機在線事務(wù)處理系統(tǒng)(OLTP)測試,包括TPC-C,TPCE;決策支持和大數(shù)據(jù)(DS)測試,包括 TPC-H,TPC-DS;服務(wù)器虛擬化(VMS)測試,包括TPC-VMS. 其中,TPC-C性能基準(zhǔn)測試通過模擬較復(fù)雜且具有代表意義的OLTP應(yīng)用環(huán)境,來衡量聯(lián)機事務(wù)處理系統(tǒng)性能與可伸縮性。TPC-E 則在 TPC-C 的基礎(chǔ)上,對傳統(tǒng)的 C/S 架構(gòu)模擬環(huán)境進行了完善,從而實現(xiàn)對當(dāng)時日益盛行的B/S架構(gòu)系統(tǒng)的高效評價,為引導(dǎo)產(chǎn)業(yè)提升大規(guī)模并發(fā)處理能力提供了重要依據(jù)。
TPC-H提供了一套決策支持系統(tǒng)的性能基準(zhǔn)測試依據(jù),強調(diào)服務(wù)器在數(shù)據(jù)挖掘、分析處理方面的能力。TPC-DS 則補充了單用戶響應(yīng)時間、多用戶吞吐量等測試,對測試基準(zhǔn)的數(shù)據(jù)模型、業(yè)務(wù)模型和執(zhí)行模式進行了完善。TPC-VMS的目標(biāo)是模擬服務(wù)器虛擬化環(huán)境,并實現(xiàn)對 TPC-C,TPC-E,TPC-H,TPC-DS的綜合測試,從而推動CPU圍繞應(yīng)用日益廣泛的云計算模式不斷提升性能。
二、其他性能基準(zhǔn)測試
在 CPU 性能基準(zhǔn)測試的不同發(fā)展時期,學(xué)術(shù)界和產(chǎn)業(yè)界也提出了一系列有關(guān)的性能基準(zhǔn)測試方法,針對跨平臺、內(nèi)存共享、多線程等多種場景進行測試。
Geekbench 是近年來受關(guān)注較多的一種跨平臺CPU 性能基準(zhǔn)測試,其主要方式是通過構(gòu)建多維評分系統(tǒng),將單核、多核性能與模擬真實場景的工作負載分隔開。該性能基準(zhǔn)測試適用于 Windows、Linux、macOS等多種操作系統(tǒng)下的測試。
Kozhirbayev 等人在利用Geekbench對單核和多核下的整形計算性能、浮點計算性能和存儲性能的基準(zhǔn)測試中,獲得了很好的對比參考效果。Polvinen等人在實驗過程中,采用Geek?bench快速、準(zhǔn)確地度量了處理器在向量點乘、矩陣 LU分解等場景中的性能.
此外,Splash,PARSEC Benchmark,LINPACK Bench?mark,MiBench,NAS Parallel Benchmark,CPU-Z 等也常用于計算實驗或?qū)嶋H應(yīng)用中的性能基準(zhǔn)測試,來展示和對比CPU的各項性能。
三、性能基準(zhǔn)測試的對比分析
為直觀地展示本文所述通用測試基準(zhǔn)的測試重點,各類性能基準(zhǔn)測試及相關(guān)工具的支持語言、編譯程序、適配系統(tǒng)、支持的CPU架構(gòu)及測試側(cè)重點信息。
表1中各類工具支持語言、編譯程序、適配系統(tǒng)、支持的 CPU 架構(gòu)均具有一定的差異性。特別是基于不同的測試目標(biāo),各類工具的重點測試內(nèi)容各異,不僅涉及運算能力、內(nèi)存性能、內(nèi)存帶寬等重要指標(biāo),而且與聯(lián)機業(yè)務(wù)處理、數(shù)據(jù)挖掘、并行計算等各類綜合應(yīng)用場景相關(guān)。
隨著CPU性能測試維度的增加,CPU裸性能以及單一場景下的基準(zhǔn)測試,難以全面反映 CPU 的綜合性能,因此,多種基準(zhǔn)測試工具的配合測試,已成為通用CPU性能基準(zhǔn)測試行業(yè)共識。
在穩(wěn)定性方面,選取常用的性能基準(zhǔn)測試工具——SPEC CPU和UnixBench,通過對實際應(yīng)用情況的分析和梳理,為通用CPU性能基準(zhǔn)的深入研究提供參考。
測試工具 SPEC CPU 的重要參數(shù)包含緩存缺失率(cache-misses)、分支指令預(yù)測錯誤率(branch-misses)和地址塊表緩存缺失率(dTLB-load-misses)等,相關(guān)指標(biāo)越大,表明 CPU 的測試強度越高。SPEC CPU 測試工具的三個版本分別發(fā)布于 2000年、2006年和 2017年。從2000年至2017年的17年間,商業(yè)通用CPU的性能至少增長了 10 倍 . SPEC CPU2000/2006/2017 三個版本演進過程中,工具開發(fā)人員希望通過加大數(shù)據(jù)集等手段,提高對通用 CPU 的測試壓力,獲取更準(zhǔn)確的性能評測結(jié)果。
本文首先對當(dāng)前國際主流的CPU基準(zhǔn)測試現(xiàn)狀進行了綜述,并對各類測試基準(zhǔn)和工具的功能、算法、應(yīng)用場景等方面的迭代升級和最新成果進行了分析;然后對當(dāng)前通用CPU性能指標(biāo)和基準(zhǔn)測試需求進行了梳理,并分析了通用CPU性能基準(zhǔn)測試所面臨的挑戰(zhàn)。
目前,CPU性能基準(zhǔn)測試工具和算法較早期已取得了較大的進步,滿足的測試場景不斷豐富,測試精度也有了明顯提升,但在適用性、性能優(yōu)化等方面依然有較大的提升空間。
作者:史惠康,王澤勝,張士宗,高 翔,趙有健
審核編輯:黃飛
?
評論