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