多核系統設計標準
實(shí)施多核系統的最大挑戰是什么?對這個(gè)問(wèn)題的回答當然是見(jiàn)仁見(jiàn)智,但是,如果您詢(xún)問(wèn)大多數業(yè)界學(xué)者,他們會(huì )說(shuō)是編程。
本文引用地址:http://dyxdggzs.com/article/80450.htm雖然很多公司和研究人員都在努力解決多核的編程問(wèn)題,但是也有大量處理器供應商正在力爭改進(jìn)其架構,以應對不斷增長(cháng)的內核數目。例如,單核設備的數據總線(xiàn)只有“一張吃飯的嘴”,添加第二個(gè)內核后,總線(xiàn)負載就翻倍了。每添加一個(gè)內核,面臨的總線(xiàn)挑戰就呈線(xiàn)性增長(cháng)。當內核數達到 80、500、1000或更多時(shí),就令人難以想像了。
但是也有好消息,處理器供應商(如ARM)正在改進(jìn)其架構,以應對更高的數據吞吐率,這反映在所謂的互連技術(shù)中。同時(shí)還在實(shí)施其他技術(shù),以應對不斷增長(cháng)的內核數目。但是,業(yè)界對這些新型多核架構的性能如何進(jìn)行定量測量呢?如何確定可擴展性?系統設計人員如何選擇最優(yōu)的處理器?
在最簡(jiǎn)單的層面上,設計用于測試多核平臺的基準必須可擴展,以便支持從一個(gè)內核到“無(wú)限”多個(gè)內核的情形。要確定多核設備的性能開(kāi)始背離線(xiàn)性預期、進(jìn)入下坡路的那個(gè)點(diǎn),這是有意思的。
多核基準分類(lèi)基本上有兩個(gè)最高層次:共享內存和以消息為基礎。共享內存方法依賴(lài)基于線(xiàn)程 API(如 POSIX)的語(yǔ)義。以消息為基礎的方法適用于非對稱(chēng)異構多核解決方案。
EEMBC(嵌入式微處理器基準協(xié)會(huì ))認為這兩種方法都可以有效支持必須處理一致性和分布式內存架構的嵌入式應用程序。
要衡量處理性能,可以利用速度測量來(lái)確定處理器完成一項任務(wù)的速度;也可以測量處理器在一定時(shí)間內能完成的任務(wù)數量,稱(chēng)為吞吐量或速率測量。
在最基本層面上檢查一下共享內存多核基準,一類(lèi)測試是對單個(gè)基準進(jìn)行獨立并行執行。這種速率測量基本上是利用相同的輸入數據集,同時(shí)運行同一基準的多個(gè)實(shí)例,經(jīng)過(guò)多個(gè)線(xiàn)程,所有線(xiàn)程運行完畢后,測量時(shí)間。這與S P E C速率基準(如 SPECint_rate2000)實(shí)施的傳統吞吐量測量技術(shù)相同。
使用該方法的最大優(yōu)勢之一就是它采用簡(jiǎn)單的方法,易于說(shuō)明和演示。該方法還可以輕松擴展至任意數目的并發(fā)執行上下文。一般來(lái)說(shuō),上下文數目與機器上的 CPU 數目相同,但這不是要求。這樣可以近似一種粗粒度并行方法,該方法有時(shí)在現實(shí)應用中會(huì )使用(例如多Vo I P通道)。但是,每個(gè)上下文使用相同的輸入數據集是不現實(shí)的。
不僅如此,使用相同數據集還會(huì )使處理器L2緩存和內存總線(xiàn)上的效果降到最低并無(wú)法測試。
E E M B C認為此方法只能測量單個(gè)內核的效率和處理器的總線(xiàn)帶寬。此方法并不測量真正的多核性能,它是在內核之間建立某種形式的通信、同步和共享內存。
并且此方法不將多流分解或任何流之間的同步考慮作為測試結果的一部分。如果基準和工作負載不是設計用于多任務(wù)環(huán)境,此方法將很難反映這些算法在多任務(wù)系統中的實(shí)際使用情況。
換言之,由于處理器/線(xiàn)程之間沒(méi)有或只有很少交互,此方法可以更有效地評測臺式系統。例如,它可以表示以下情形:
瀏覽器運行的同時(shí),還在播放聲音、編譯程序、檢查病毒、為圖片/文檔編索引,以及其他任務(wù)。
測試多核可擴展性
對上述方法的一項改進(jìn)是讓每個(gè)線(xiàn)程上下文以唯一的數據集運行。這樣可以反映更真實(shí)的情況,例如多Vo I P通道的處理,其中每個(gè)通道接收不同的輸入數據。
從系統級別基準觀(guān)點(diǎn)來(lái)看,此方法的價(jià)值在于它可以確保提升內存活動(dòng)(如L 2緩存、內存總線(xiàn))。此方法還可顯示解決方案在可擴展的數據輸入基礎上的擴展能力。
換言之,要確定增加數據輸入個(gè)數時(shí)性能開(kāi)始下降的那個(gè)點(diǎn),是有意義的。制定此類(lèi)基準測試時(shí),最大的挑戰是:代碼對于線(xiàn)程必須是安全的,才能讓多個(gè)線(xiàn)程同時(shí)執行。特別地,它必須滿(mǎn)足多個(gè)線(xiàn)程訪(fǎng)問(wèn)相同共享數據的需求,以及在任一給定時(shí)間,某一共享數據只由一個(gè)線(xiàn)程訪(fǎng)問(wèn)的需求,同時(shí)不降低要求的性能吞吐量。
制定可同時(shí)啟動(dòng)多個(gè)項目的測試,對數據和代碼都執行并發(fā),可進(jìn)一步擴展上述方法。這可顯示一種解決方案對于通用處理的可擴展性。舉例來(lái)說(shuō),考慮執行MPEG decode(x),后跟 MPEGe n c o d e(x),類(lèi)似機頂盒應用程序中的步驟,其中,會(huì )接收衛星信號、進(jìn)行解碼并編碼成為另一種信號存入硬盤(pán)。作為基準評測,這需要上下文之間的同步以及確定評測何時(shí)完成的方法。
另一種稱(chēng)為任務(wù)分解(或算法并行)的方法允許多個(gè)線(xiàn)程合作實(shí)現統一的目標,可以顯示處理器支持細粒度并行的能力。例如線(xiàn)程中M P E G解碼算法的分解,其中每個(gè)處理一項不同的工作負載。
由A R M的J o hn G o odacre領(lǐng)導的嵌入式微處理器基準協(xié)會(huì )(E E M B C)正在著(zhù)手研究一套非常完整的新基準,它將針對多處理系統、多核處理器和多線(xiàn)程處理器。這些基準不僅測試系統級別的功能(即操作系統支持、內存性能),還將測試互連能力以及片上網(wǎng)絡(luò )(N o C)。換言之,這些基準將審視“整個(gè)產(chǎn)品包”。
E E M B C的多核基準軟件將開(kāi)始支持共享內存對稱(chēng)多核處理器,并利用基于線(xiàn)程的A P I建立通用編程模型。這些基準的目標是上述三種并發(fā)形式,包括任務(wù)分解、多數據流處理和多工作負載處理。
嵌入式行業(yè)好像已經(jīng)非常認可多核技術(shù),但是其性能之間的差距仍在增長(cháng)。即將推出的行業(yè)標準基準將顯示多核處理器并行執行多個(gè)上下文的效率,并有助于推動(dòng)處理器隨嵌入式細分市場(chǎng)并行資源的發(fā)展,同時(shí)提供中立的方法,供系統開(kāi)發(fā)人員比較相互競爭的處理器。
評論