專利名稱:用于有效生成處理器體系結(jié)構(gòu)模型的方法和設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明的各實施例一般涉及處理器領(lǐng)域,并且更具體地涉及用于有效生成處理器 體系結(jié)構(gòu)模型的方法和設(shè)備,該處理器體系結(jié)構(gòu)模型可精確地預(yù)測處理器的性能以最小化 仿真時間。
背景技術(shù):
隨著處理器體系結(jié)構(gòu)相比于前一代處理器體系結(jié)構(gòu)而言變得更加復(fù)雜并且具有 更多的晶體管數(shù)目,仿真這樣的處理器以確定它們在各種情況下的性能就變得耗時并且需 要密集的處理器時鐘周期。這種密集耗時的計算產(chǎn)生了阻礙,耗盡了對新的和現(xiàn)有的處理 器體系結(jié)構(gòu)特性的設(shè)計空間拓展。在沒有充分的設(shè)計空間拓展的情況下,無法為目標(biāo)工作 負(fù)載環(huán)境選擇最佳的可能處理器設(shè)計或配置。舉例來說,為在10個不同的處理器仿真器參數(shù)(諸如,指令窗口(instruction window, Iff)大小、數(shù)據(jù)高速緩存單元(data cache unit, D⑶)大小,等等)上待拓展的一 組目標(biāo)基準(zhǔn)測試程序(benchmark)(諸如,微軟Microsoft Word 2007,微軟Microsoft Excel 2007,微軟Microsoft Internet Explorer ,等等)或基準(zhǔn)測試程序的一部分(諸 如,微軟Microsoft WOTdTM2007的特性子集,等等)而拓展處理器性能將需要大約100億 次仿真運行,其中每個參數(shù)具有5個可能值(諸如,指令窗口(也被稱為重新排序緩沖器) 具有48、64、80、96或112個條目,或者,數(shù)據(jù)高速緩存大小為2、4、8、16或32KB)。術(shù)語“追 蹤”(trace) —般定義為將要在處理器上執(zhí)行的工作負(fù)載(可和術(shù)語“基準(zhǔn)測試程序”互換 使用)子集。假設(shè)每個追蹤耗時三小時在一個處理器上進行仿真,并且有5000個處理器專用 于仿真1000個追蹤,那么這5000個專用處理器將耗時超過700年的處理器仿真時間來確 定針對這1000個追蹤的處理器體系結(jié)構(gòu)的性能。具有這樣的處理器仿真時間的設(shè)計空間 拓展是不可行的。雖然仿真可以被處理器性能預(yù)測模型來替代,但是這種模型在它們的創(chuàng)建、精確 性和速度方面專用的基準(zhǔn)測試程序。使用新基準(zhǔn)測試程序來拓展處理器設(shè)計空間需要研發(fā) 新的性能預(yù)測模型并且隨后使用該模型在該基準(zhǔn)測試程序的不同配置下為該基準(zhǔn)測試程 序預(yù)測處理器性能(衡量為每周期執(zhí)行的指令數(shù)目(IPC)和/或以瓦(Watt)為單位的功 率消耗數(shù))。當(dāng)確定處理器體系結(jié)構(gòu)性能和功率消耗涵蓋大范圍的基準(zhǔn)測試程序(諸如,超 過1000個基準(zhǔn)測試程序)時,一種利用自定義模型的方法無法在速度和精確性兩方面有所 提升。附圖簡述可以參考下文的詳細(xì)說明以及本發(fā)明的各實施例的附圖來充分理解本發(fā)明的各 實施例,但是,這些描述和附圖并非旨在將本發(fā)明限定為這些特定的實施例,而僅僅是作為 解釋和說明之用。圖IA是根據(jù)本發(fā)明的一個實施例,用于有效生成一用于預(yù)測處理器性能的處理器性能模型的上位流程圖;圖IB是根據(jù)本發(fā)明的一個實施例,示出仿真器參數(shù)和它們各自的數(shù)值的圖表;圖2是根據(jù)本發(fā)明的一個實施例,示出性能預(yù)測誤差靈敏度與訓(xùn)練數(shù)據(jù)數(shù)目之比 的曲線圖;圖3是根據(jù)本發(fā)明的一個實施例,用于生成用于多個基準(zhǔn)測試程序的處理器性能 模型的詳細(xì)流程圖;圖4A是根據(jù)本發(fā)明的一個實施例,用于生成處理器性能模型的非二進制特性標(biāo) 記矩陣;圖4B是根據(jù)本發(fā)明的一個實施例,用于生成處理器性能模型的二進制特性標(biāo)記 矩陣;圖5是根據(jù)本發(fā)明的一個實施例,示出與有效生成該處理器體系結(jié)構(gòu)模型有關(guān)的 硬件的系統(tǒng)。詳細(xì)描述本發(fā)明的各實施例涉及用于有效生成單個處理器體系結(jié)構(gòu)模型的方法和設(shè)備,該 單個處理器體系結(jié)構(gòu)模型能通過對大規(guī)模數(shù)量級(諸如,超過1000個)的處理器基準(zhǔn)測試 程序的仿真時間進行最小化,從而精確地預(yù)測該處理器的性能。在一個實施例中,處理器基準(zhǔn)測試程序被包含在特性-標(biāo)記配對(feature-label pair)中(將在下面進行說明),從而允許處理器性能預(yù)測模型為大范圍的基準(zhǔn)測試程序來 預(yù)測功率消耗和處理器性能。以下描述的實施例將可替換地使用術(shù)語“性能”和“功率”,這 是因為處理器性能模型可以預(yù)測與IPC有關(guān)的處理器性能和與以瓦(Watt)為單位的處理 器功率消耗有關(guān)的處理器性能中的任何一個或全部兩者。在一個實施例中,大范圍基準(zhǔn)測試程序的區(qū)間為從無限數(shù)目的基準(zhǔn)測試程序到少 量的基準(zhǔn)測試程序采樣(包括單個基準(zhǔn)測試程序)。進一步的,用于有效生成單個處理器體 系結(jié)構(gòu)性能預(yù)測模型的方法和設(shè)備提供了低誤差率(諸如,相對于真實基準(zhǔn)測試程序仿真 來說小于3%的誤差)以及高預(yù)測速度(諸如,幾分鐘,而不是幾年)。附
圖1是根據(jù)本發(fā)明的一個實施例,用于有效生成處理器體系結(jié)構(gòu)模型的流程圖 100。在塊101中,標(biāo)識處理器的性能基準(zhǔn)測試程序。在一個實施例中,標(biāo)識一個或多個處理 器基準(zhǔn)測試程序,用于生成性能預(yù)測模型。在一個實施例中,基準(zhǔn)測試程序包括以下范圍 諸如多媒體應(yīng)用程序、辦公應(yīng)用程序、游戲應(yīng)用程序和服務(wù)器應(yīng)用程序。在一個實施例中, 處理器是單核處理器。在其他的實施例中,處理器是多核處理器。本發(fā)明的多個實施例不 限于任何特定類型的處理器體系結(jié)構(gòu)。在塊102中,采樣用于所標(biāo)識的性能基準(zhǔn)測試程序的設(shè)計空間的一部分。在一個 實施例中,對該設(shè)計空間的該部分的采樣需要生成對該給定處理器的大量隨機配置。在一 個實施例中對于每個配置都隨機選擇每個仿真器參數(shù)的值。處理器的配置的含義是用于該 處理器的體系結(jié)構(gòu)設(shè)置。例如,處理器的一個配置可具有與第二級(Level-Two)高速緩沖存儲器一樣大小 的第一級(Level-One)高速緩沖存儲器。在另一個配置中,第一級高速緩存的大小比第二 級高速緩存要小。類似地,一個配置可以具有單個處理器核,而其他配置可以具有超過一個 處理器核,即,多核處理器。上述的各個配置僅僅是示例性的,且并不意味著將處理器配置
7限制為上述示例所描述的那樣。在一個實施例中,仿真器參數(shù)確定處理器體系結(jié)構(gòu)設(shè)計空間的大小。在一個實施 例中,設(shè)計空間越小,用于該處理器的性能預(yù)測模型就越精確。在一個實施例中,仿真器參數(shù)的一個示例是處理器中高速緩沖存儲器的大小。通 常,第一級高速緩存的大小比第二級高速緩存要小。這意味著用于第一級高速緩存的仿真 器參數(shù)值應(yīng)該被設(shè)置為小于用于第二級高速緩存的仿真器參數(shù)值,用于來生成精確的性能 預(yù)測模型。反之,則性能預(yù)測模型將不那么精確,因為它的訓(xùn)練數(shù)據(jù)中包括了第一級高速緩 存大于第二級高速緩存的處理器配置,這將無法反映真實世界的處理器中的高速緩沖存儲 器的配置方式。在這樣一個實施例中,生成性能預(yù)測模型的一部分訓(xùn)練數(shù)據(jù)對于構(gòu)成該性 能預(yù)測模型來說是被浪費的訓(xùn)練數(shù)據(jù)。一個原因是這些訓(xùn)練數(shù)據(jù)被認(rèn)為是被浪費的訓(xùn)練 數(shù)據(jù)是因為在真實世界中高速緩沖存儲器不會被配置為使第一級高速緩存的大小大于第 二級高速緩存的大小,因為這樣的配置不會導(dǎo)致更高的處理器性能。在一個實施例中,每個仿真參數(shù)均被賦予來自預(yù)定數(shù)值范圍中的一個值。附圖IB 示出了根據(jù)本發(fā)明的一個實施例的圖表120,其中具有多個仿真器參數(shù)以及它們各自的值。 例如,在一個實施例中,行121列出了仿真器參數(shù),行122列出了與這些仿真器參數(shù)相關(guān)的 度量,諸如,參數(shù)的個數(shù),參數(shù)的大小,參數(shù)的狀態(tài),行123包括這些仿真器參數(shù)的值的預(yù)定 范圍。在一個實施例中,每個仿真參數(shù)都被隨機地賦予一個值,該值是選自一可能值的范圍 中均勻間隔的一組未排序的可能值。在一個實施例中,該范圍是這些可能值的預(yù)定范圍。為了使以下的實施例更清楚起見,使用指令窗口(IW)的大小和數(shù)據(jù)高速緩存單 元(DCU)的大小來解釋用于有效生成處理器體系結(jié)構(gòu)性能預(yù)測模型的方法,其中指令窗口 也被稱為重新排序緩沖器并且被表述為多個條目,數(shù)據(jù)高速緩存單元被表示為以KB為單 位。其他仿真器參數(shù),諸如處理器保留站、負(fù)載緩沖器、存儲緩沖器、中級高速緩存、指令高 速緩存、回退寬度(retire width),等等,具有它們各自可能值的預(yù)定范圍,也可被用于生 成處理器體系結(jié)構(gòu)性能預(yù)測模型。在一個實施例中,如果處理器的IW中的可能值的預(yù)定范圍是48到112(如行123 所示),并且增加值是16,那么參數(shù)值的未排序集合將會是{48,64,80,96,112}。在另一個 實施例中,從可能值范圍上以二的次方增大的一組可能值的未排序集合對仿真參數(shù)進行賦 值。例如,如果處理器的DCU大小的預(yù)定范圍是2KB到32KB,則參數(shù)值的未排序集合將會是 {2,4,8,16,或 32KB}?;氐礁綀D1A,在塊103中,通過對采樣的設(shè)計空間進行仿真來生成用于處理器性 能模型的訓(xùn)練數(shù)據(jù)。在一個實施例中,并非產(chǎn)生多個處理器模型且每個均對應(yīng)于一個基準(zhǔn) 測試程序,而是產(chǎn)生用于該多個基準(zhǔn)測試程序的單個處理器模型。單個處理器模型實現(xiàn)了 對大量基準(zhǔn)測試程序(諸如,超過1000個基準(zhǔn)測試程序)的有效預(yù)測,而不需要為每個基 準(zhǔn)測試程序生成個性化的預(yù)測模型。在一個實施例中,訓(xùn)練數(shù)據(jù)包括基準(zhǔn)測試程序數(shù)目(諸如,100,表示第100個基準(zhǔn) 測試程序),被仿真的基準(zhǔn)測試程序的類型(諸如,微軟Microsoft Word 2007),仿真參數(shù) 值(諸如,第一級高速緩沖存儲器和第二級高速緩沖存儲器的大小),以及IPC (諸如,為被 仿真的特定類型的基準(zhǔn)測試程序所執(zhí)行的指令數(shù)目)。這樣的實施例允許訓(xùn)練單個處理器 模型,其包括了關(guān)于多個基準(zhǔn)測試程序的信息。
在塊104中,根據(jù)來自塊103的訓(xùn)練數(shù)據(jù)生成單個處理器性能模型。在一個實施 例中,通過執(zhí)行統(tǒng)計方法來生成該性能模型。在一個實施例中,該處理器性能模型是單處理 器性能模型。在一個實施例中,統(tǒng)計方法是Vowpal Wabbit(Vff)統(tǒng)計方法,用于執(zhí)行來自塊 103的訓(xùn)練數(shù)據(jù)以生成處理器性能預(yù)測模型。在其它實施例中,可以使用其他統(tǒng)計方法以根 據(jù)來自塊103的訓(xùn)練數(shù)據(jù)來生成性能預(yù)測模型,而不改變本實施例的原理。將在下文中參 考附圖3、4A和4B詳細(xì)描述生成性能預(yù)測模型的細(xì)節(jié)?;氐礁綀D1A,在塊105中,通過執(zhí)行單處理器性能預(yù)測模型,預(yù)測處理器在整個設(shè) 計空間的性能。處理器性能預(yù)測模型允許預(yù)測未見過的(unseen)處理器配置的性能和功 率。在一個實施例中,通過標(biāo)識每個處理器配置的所有排列,來生成所有處理器配置的完整 列表。在一個實施例中,通過調(diào)節(jié)仿真器參數(shù)的突出點(knob)來標(biāo)識這些排列。在一個實 施例中,所有處理器配置的完整列表被輸入處理器性能模型。產(chǎn)生的預(yù)測是處理器的窮舉 的設(shè)計空間。在一個實施例中,同樣調(diào)節(jié)突出點來減少預(yù)測與真實仿真數(shù)據(jù)相比下的誤差。在 這樣一個實施例中,性能預(yù)測模型被重新訓(xùn)練,并生成更新的更精確的處理器性能預(yù)測模 型。在一個實施例中,通過從訓(xùn)練數(shù)據(jù)中移除不相關(guān)的參數(shù)即重新調(diào)整之前的訓(xùn)練數(shù)據(jù)來 重新訓(xùn)練性能預(yù)測模型。將在下文中討論相關(guān)和不相關(guān)的訓(xùn)練數(shù)據(jù)。在一個實施例中,如 果誤差過高(諸如,大于10% ),則搜集更多的訓(xùn)練數(shù)據(jù)而不是重新訓(xùn)練已有的數(shù)據(jù),以生 成更新的更精確的處理器預(yù)測模型。在塊106中,選擇一個處理器預(yù)測性能結(jié)果的采樣。在一個實施例中,該采樣表示 在塊101中所標(biāo)識的性能基準(zhǔn)測試程序的激勵。在一個實施例中,執(zhí)行該選擇過程以在特 定性能結(jié)果上以及在與該性能結(jié)果有關(guān)的突出點、參數(shù)和基準(zhǔn)測試程序上進行刪減。在一 個實施例中,選擇是基于成本度量和收益度量。如果僅僅提供一個度量,則限制了對有利配 置進行選擇的能力。例如,在一個實施例中,可以從消耗大約80%的處理器原始功率的初始處理器設(shè) 計點中標(biāo)識出數(shù)千個(甚至數(shù)萬個)減衰(decremented)后的處理器配置。處理器的原始 功率表示當(dāng)處理器不減衰時處理器的功率消耗。而減衰后的處理器相比于原始處理器得到 的20%的功率節(jié)約就是收益度量。成本度量是與減衰后的處理器設(shè)計有關(guān)的相比于原始處 理器設(shè)計的性能衰減。在一個實施例中,當(dāng)綜合收益和成本度量時,可以獲得具有期望的功 率節(jié)約的最佳性能的處理器配置。在塊107中,所選的采樣被仿真以更好地理解該性能基準(zhǔn)測試程序的特定采樣。 在一個實施例中,從仿真器中生成真實性能數(shù)據(jù)。在塊108中,通過仿真所選的采樣而生成的性能數(shù)據(jù)被與用于該采樣的預(yù)測性能 相比較。在一個實施例中,該比較允許對處理器性能模型進行調(diào)整。在一個實施例中,比較 生成誤差。在一個實施例中,該誤差被定義為對于給定采樣的處理器預(yù)測性能和真實仿真 性能之間的差別。在其他實施例中,可以使用其他誤差的表示方式而不背離實施例的原理。在塊109中,對從比較生成的誤差是否大于預(yù)定閾值作出判定。在一個實施例中, 預(yù)定閾值為4%。在其他實施例中,更低或更高的閾值可以被用于在性能預(yù)測模型的精確性 和對處理器性能的預(yù)測速度之間進行折衷。在一個實施例中,如果誤差超過預(yù)定閾值,則(通過參考塊105而討論的突出點)來調(diào)整性能預(yù)測模型使其接近于仿真結(jié)果。在一個實施例中,通過移除與處理器性能無關(guān) 的用于特定參數(shù)的訓(xùn)練數(shù)據(jù),來進行對性能預(yù)測模型的調(diào)整。例如,在一個實施例中,如果處理器性能被發(fā)現(xiàn)為對IW的大小不敏感,即,IW的大 小與處理器的性能無關(guān),則該IW的大小不被用作為創(chuàng)建/生成處理器性能預(yù)測模型的訓(xùn)練 參數(shù)。在這樣一個實施例中,移除該IW的大小參數(shù)會減少性能預(yù)測模型的誤差,因為該性 能預(yù)測模型不再要求其學(xué)習(xí)訓(xùn)練數(shù)據(jù)中的模式,其中針對該訓(xùn)練數(shù)據(jù)無法學(xué)習(xí)到可靠的模 式。在一個實施例中,如果誤差小于預(yù)定閾值則在塊110中完全對處理器性能的預(yù)測。附圖2是示出根據(jù)本發(fā)明的一個實施例的性能預(yù)測誤差靈敏度相比于訓(xùn)練數(shù)據(jù) 的曲線圖200。χ軸是被用于生成性能預(yù)測模型的訓(xùn)練數(shù)據(jù)數(shù)目。y軸是以百分比表示的誤 差率。該曲線圖示出預(yù)測處理器性能中的誤差隨著訓(xùn)練數(shù)據(jù)數(shù)目的增加而減少。在該示例 中,從大約IlK的用于預(yù)測處理器性能的訓(xùn)練數(shù)據(jù)中獲得的誤差率為4%。附圖3是根據(jù)本發(fā)明的一個實施例,用于生成用于多個基準(zhǔn)測試程序的處理器性 能預(yù)測模型的詳細(xì)流程圖300。在一個實施例中,在塊301中,標(biāo)識出追蹤(trace)。在塊 302中,為仿真參數(shù)調(diào)節(jié)突出點。在塊303中,仿真器接收所標(biāo)識的追蹤以及仿真器參數(shù)。仿 真器使用仿真器參數(shù)對所標(biāo)識的追蹤進行仿真,以針對每個追蹤和參數(shù)生成訓(xùn)練數(shù)據(jù)。以 下將結(jié)合附圖1詳細(xì)討論塊301-303?;氐礁綀D3,在塊304中,通過將訓(xùn)練數(shù)據(jù)轉(zhuǎn)換為單個矩陣而將由多個文件(諸如, 數(shù)千個文件)組成的訓(xùn)練數(shù)據(jù)重新組織為單個矩陣,該單個矩陣具有特性-標(biāo)記配對。在 一個實施例中,特性-標(biāo)記配對與所識別的性能基準(zhǔn)測試程序相關(guān)聯(lián)。該矩陣的一個示例被示出在由附圖4A和4B所圖示的實施例中。附圖4A是根據(jù) 本發(fā)明的一個實施例,具有特性401和標(biāo)記402的非二進制單個矩陣400。為了清楚起見, IW和DCU的仿真器參數(shù)被用于解釋該單個矩陣。在一個實施例中,所有的特性和標(biāo)記都被 組織為單個矩陣400的401和402中的行和列。在一個實施例中,IW和D⑶的特性分別在 附圖4A的401和附圖4B的411中被配對。這些特性包括來自預(yù)定數(shù)值集合(參見附圖IB 的123)的各種隨機配置(諸如,Iff取48和96,DCU取16和4)。在附圖4A的實施例中,考慮三個追蹤,這會產(chǎn)生六個隨機配置,每個追蹤二個配 置。在一個實施例中,標(biāo)記402被賦予特性401的每一行。在附圖4A和4B的實施例中,相 對IPC是被賦予特性401和411的行的、402和412中的標(biāo)記。相對IPC表示當(dāng)與執(zhí)行追蹤 且IPC為1. 00的原始處理器相比較時,執(zhí)行相同追蹤的處理器配置的IPC。附圖4B是根據(jù)本發(fā)明的一個實施例,具有特性411和標(biāo)記412的二進制單個矩陣 410。在一個實施例中,附圖4B中的特性411包括二進制格式的追蹤IW和D⑶。在一個實 施例中,特性配對回避了對仿真器參數(shù)之間關(guān)系(諸如,仿真器參數(shù)之間的相關(guān)度)的明顯 揭示的需求,由此提供了不需要了解哪些處理器參數(shù)對處理器的性能而言最不重要或最重 要的訓(xùn)練數(shù)據(jù)。在一個實施例中,單個矩陣410是附圖4A中的非二進制單個矩陣400的二進制形 式。在一個實施例中,二進制單個矩陣410與非二進制單個矩陣400相比,提供了使用VW 統(tǒng)計方法的更加精確的性能預(yù)測模型生成。使用二進制單個矩陣410的更加精確的預(yù)測建 模的一個原因是單個矩陣的二進制化使得特性411在處理器性能上的非線性行為可通過 另外的線性VW統(tǒng)計方法來捕捉。
例如,在一個實施例中,不使用用于具有多個可能值(諸如,2、4、8、16、32KB)的 DCU大小的單個特性,而使用用于每個可能設(shè)置(DCU_2、DCU_4、DCU_8、DCU_16、DCU_32)的 單個特性。在這樣一個實施例中,用于每個可能參數(shù)值的單個特性實現(xiàn)了在相同處理器參 數(shù)的不同值和處理器性能之間的非線性關(guān)系。在一個實施例中,以原始的非二進制格式 (諸如,附圖4A),Vff統(tǒng)計方法必須學(xué)習(xí)例如DCU大小和處理器性能之間的單個線性函數(shù)。 但是,在一個實施例中,DCU和處理器性能之間的關(guān)系不一定是線性的,可能當(dāng)DCU大小從 8KB增加到16KB大小時性能增強,但在從16KB增大到32KB的DCU大小時性能維持恒定。 在這樣一個實施例中,不存在線性函數(shù)可以在所有的三個DCU大小上表征DCU大小和處理 器性能之間的關(guān)系。然而,如果特性是在具有二進制特性的單個矩陣內(nèi)被二進制化,VW統(tǒng) 計方法會對每個D⑶大小而學(xué)習(xí)一線性函數(shù)。因此,在一個實施例中,這些三個D⑶大小和 處理器性能之間的關(guān)系可以被三個線性函數(shù)來表征,這使得模型更為精確?;氐礁綀D3,在塊304中生成的單個矩陣(附圖4A中的400或附圖4B中的410)隨 后在塊305中在統(tǒng)計應(yīng)用程序上被執(zhí)行。在一個實施例中,統(tǒng)計應(yīng)用程序執(zhí)行VW統(tǒng)計方法 來生成性能預(yù)測模型。在一個實施例中,統(tǒng)計方法對在塊304中生成的矩陣中的每一個特 性(附圖4A中的401,附圖4B中的411)賦予權(quán)重。在一個實施例中,對每一行輸入數(shù)據(jù)的 每個特性所賦予的權(quán)重的總和是對應(yīng)于該行的標(biāo)記(附圖4A中的401,附圖4B中的412)。 在一個實施例中,統(tǒng)計方法對特性賦予權(quán)重以最小化標(biāo)記的平方誤差。在一個實施例中,如 果仿真器參數(shù)在所有的基準(zhǔn)測試程序上都與處理器性能高度相關(guān),則對該特性賦予大的權(quán) 重(諸如,1.0)。在一個實施例中,如果參數(shù)與處理器性能無關(guān),則對該特性賦予小的權(quán)重 (可能是0)。在一個實施例中,統(tǒng)計方法包括二次特性配對。在這樣一個實施例中,不僅僅對單 個特性賦予權(quán)重,而是對兩個特性的組合賦予權(quán)重。例如,對D⑶大小賦予權(quán)重、對指令高 速緩存大小(參見附圖1B)賦予權(quán)重,以及對DCU和指令高速緩存的組合賦予權(quán)重。在這 樣一個實施例中,對兩個參數(shù)的組合賦予的權(quán)重捕捉了二階效果,諸如任何兩個特定配置 (諸如,指令高速緩存大小和DCU大小)的相互影響。在一個實施例中,二階效果使得性能 預(yù)測模型更為精確,導(dǎo)致更小的誤差。二次特性配對在預(yù)測處理器性能方面具有多個優(yōu)點。以下將描述兩個示例性的優(yōu) 點,僅作為具體作用。第一個是,在一個實施例中,當(dāng)被配對的特性是追蹤和參數(shù)對時,特性配對通過基 于參數(shù)的影響將合適的權(quán)重賦予參數(shù),從而在學(xué)習(xí)追蹤模型中幫助學(xué)習(xí)追蹤專用的模式 (trace-specific patterns)。例如,在一個實施例中,一矩陣包括三個追蹤X,Y,Z。在一個實施例中,追蹤X示 出了僅僅源自大的DCU大小(諸如,32KB)的更好的處理器性能,即,追蹤X示出了性能對 IW大小的不敏感性。對追蹤X的IW就將不賦予權(quán)重。在上述示例中,根據(jù)一個實施例,假 設(shè)對DCU大小和IW大小均賦予相同的權(quán)重因為這些參數(shù)均影響性能,那么追蹤Y將提供更 好的處理器性能。類似的,根據(jù)一個實施例,追蹤Z示出了根據(jù)DCU大小或IW大小均沒有 額外的處理器性能優(yōu)勢,因此對追蹤Z的任何一個參數(shù)均不賦予權(quán)重。第二,在一個實施例中,當(dāng)被配對的特性均是參數(shù)(不同于上述的追蹤和參數(shù) 對),則模型將學(xué)習(xí)這些處理器參數(shù)如何互相影響。
例如,在一個實施例中,被配對的特性是第一級高速緩存和第二級高速緩存。通 常,大于第一級高速緩存的第二級高速緩存會產(chǎn)生更高的處理器性能,導(dǎo)致相比于第二級 高速緩存,對第一級高速緩存分配更多的權(quán)重。但是,在第一級高速緩存已經(jīng)較大的實施例 中,即便是更大的第二級高速緩存,其增加的優(yōu)勢也將小于初始時第一級較小的情況。通過 將上述兩個高速緩存特性進行配對,可以確定參數(shù)互相之間的影響,以對上述用于模型生 成的參數(shù)進行更為精確的權(quán)重賦值。在一個實施例中,性能預(yù)測模型不僅僅對特定特性(諸如,DCU大小)進行賦值, 也對該特征以及每個數(shù)據(jù)行的基準(zhǔn)測試程序的配對(諸如,(DCU大小,追蹤1)、(DCU大小, 追蹤幻)進行賦值,以確定一參數(shù)一般是類似地還是唯一地影響所有的基準(zhǔn)測試程序。在 這樣一個實施例中,模型使用上述確定來更好地猜測之前未見過的處理器-基準(zhǔn)測試程序 特性標(biāo)記配對的性能。例如,在一個實施例中,當(dāng)對于某些基準(zhǔn)測試程序,仿真器參數(shù)與處理器性能是高 度相關(guān)的,則對這些參數(shù)-追蹤特性配對賦予權(quán)重。在這樣一個實施例中,在之前未見過的 處理器體系結(jié)構(gòu)上為已知的基準(zhǔn)測試程序預(yù)測處理器性能時,性能預(yù)測模型了解對于每個 仿真器參數(shù),該參數(shù)一般是類似地影響所有的基準(zhǔn)測試程序(即,恰好在該特性上有大的 權(quán)重),還是唯一地取決于該基準(zhǔn)測試程序(即,僅僅在與所影響的基準(zhǔn)測試程序有關(guān)的特 性-追蹤對上有大的權(quán)重)。這樣的知識增強了對未見過的處理器的性能預(yù)測。在一個實施例中,統(tǒng)計方法使用三次樣條函數(shù)(cubic splines)對特性和標(biāo)記 (參見附圖4)之間的關(guān)系進行建模。三次樣條函數(shù)是適合訓(xùn)練數(shù)據(jù)的非線性曲線。在這樣 一個實施例中,指定多個突出點(或除法器),用于為每個特性適配一樣條。在一個實施例 中,樣條被特定數(shù)量的突出點分開,并且學(xué)習(xí)每個突出點之間的非線性曲線。例如,如果一 樣條包括2個突出點,則在整個樣條之上就有三個分別學(xué)習(xí)得到的曲線。在一個實施例中, 更多的突出點可以在特性和標(biāo)記之間創(chuàng)建更有力的函數(shù),但使用過多的突出點會存在將統(tǒng) 計性能預(yù)測模型與訓(xùn)練數(shù)據(jù)過度適配的風(fēng)險。例如,在一個實施例中,如果對特定的參數(shù)存在5個可能值,并且樣條不被任何突 出點所分隔,那么參數(shù)與特性的非線性關(guān)系將很難把所有的數(shù)據(jù)點適配在單條線段上。術(shù) 語“很難”(hard)表示數(shù)據(jù)點與樣條的接近度。在一個實施例中,樣條被分隔為5個突出 點,以將每個數(shù)據(jù)點適配到其自有的線段上。在該情況中,對于訓(xùn)練數(shù)據(jù)來說適配過程是過 度靈敏的,以致于無法提供對未見過的數(shù)據(jù)點的精確估計?;氐礁綀D3,在塊306,測試來自初始隨機采樣的被用于創(chuàng)建處理器統(tǒng)計模型的訓(xùn) 練數(shù)據(jù)。在一個實施例中,執(zhí)行N重交叉驗證(N-fold cross-validation)以檢測該模型 的精確性。在一個實施例中,N為5。在其他實施例中,可以執(zhí)行更少次或更多次的交叉驗 證來測試該模型的精確性。交叉驗證的次數(shù)越多,模型精確性的置信度越高。例如,對于N= 5的實施例,采樣的數(shù)據(jù)被劃分為5個等分部分。在一個實施例中, 采樣的數(shù)據(jù)的四個部分被用于訓(xùn)練性能預(yù)測模型,且第五部分被用作測試數(shù)據(jù)以測試模型 預(yù)測的誤差。在一個實施例中,上述方法被執(zhí)行5次——每次使用采樣的數(shù)據(jù)的一個不同 部分來測試。隨后計算每次交叉驗證的誤差。在一個實施例中,生成平均誤差以反映當(dāng)性 能預(yù)測模型被用于預(yù)測未見過的配置時可能出現(xiàn)的誤差百分比。在塊307中,對模型的精確性進行判定。在一個實施例中,如果平均誤差高于預(yù)定閾值(諸如,4% ),則通過執(zhí)行與塊301-302相關(guān)的方法進行數(shù)據(jù)的重新訓(xùn)練。在一個實施例中,在重新采樣階段(塊301-302),回顧一些仿真器參數(shù)以基于它 們與處理器性能的相關(guān)度與其他仿真器參數(shù)的比較來提高精確性。在一個實施例中,高度 相關(guān)(不論是正相關(guān)還是負(fù)相關(guān))的參數(shù)提高通過該統(tǒng)計方法所生成的模型的精確性。高度相關(guān)的參數(shù)是直接影響處理器性能的參數(shù)。無關(guān)的參數(shù)是不影響處理器性能 的參數(shù)。在一個實施例中,拋棄與處理器性能無關(guān)的仿真器參數(shù),因為這些無關(guān)的參數(shù)在 性能預(yù)測模型中引入了噪聲并由此減低了精確性。在一個實施例中,上述討論的重新訓(xùn)練 過程被重復(fù)多次以獲得期望的百分比誤差。在塊307,如果平均誤差被判定為小于預(yù)定閾值,則在塊308中生成所有處理器配 置的排列(同樣參見附圖1塊10 。在塊309,執(zhí)行性能預(yù)測模型以預(yù)測處理器性能。附圖5是根據(jù)本發(fā)明的一個實施例的系統(tǒng)500,示出了與有效生成處理器體系結(jié) 構(gòu)預(yù)測模型相關(guān)的硬件。在一個實施例中,系統(tǒng)500包括處理器501、芯片組502、其上存儲 有指令505以執(zhí)行上述方法的存儲器504。在一個實施例中,系統(tǒng)的上述組件通過網(wǎng)絡(luò)總 線503而互相之間耦合。在一個實施例中,處理器501包括邏輯單元和具有指令以執(zhí)行上 述方法的存儲器。各實施例的元件也可以作為機器可讀介質(zhì)(也被稱為計算機可讀介質(zhì))來提供, 機器可讀介質(zhì)上存儲有計算機可執(zhí)行的指令(諸如,附圖5的50 ,在執(zhí)行時使得計算機或 機器執(zhí)行一方法(諸如,附圖1和附圖3的方法)。機器可讀介質(zhì)可包括,但不限于,存儲器 (諸如,附圖5的504)、閃存、光盤、CD-ROM、DVD-ROM、RAM、EPR0M、EEPR0M、磁卡或光卡、或適 于存儲電子或計算機可執(zhí)行指令的其它類型的機器可讀介質(zhì)。例如,本發(fā)明的實施例可作 為計算機程序(諸如,BIOS)來下載,其中該程序可以通過通信鏈路(諸如,調(diào)制解調(diào)器或 網(wǎng)絡(luò)鏈接)以數(shù)據(jù)信號的方式從遠程計算機(諸如服務(wù)器)傳送到作出請求的計算機(諸 如,客戶機)。在本說明書中對“實施例”、“一個實施例”、“一些實施例”或“其他實施例”的引用 意味著結(jié)合這些實施例所描述的特定特征、結(jié)構(gòu)或特性被包括在至少某些實施例中,但不 一定被包括在所有實施例中?!皩嵤├薄ⅰ耙粋€實施例”、或“一些實施例”的多次出現(xiàn)不一 定都指代相同的實施例。如果本說明書描述了一組件、特征、結(jié)構(gòu)或特性是“可以”、“可能”、 “能”被包括的,那么這些特定組件、特征、結(jié)構(gòu)或特性不是必須被包括在內(nèi)的。如果本說明 書或權(quán)利要求書涉及“一”個組件,則不表示僅僅只存在一個該組件。如果本說明書或權(quán)利 要求書涉及“一個額外”的組件,則不排除具有超過一個上述額外的組件。雖然本發(fā)明參考特定實施例進行了描述,但參考以上的描述,本領(lǐng)域技術(shù)人員可 以顯而易見地認(rèn)識到多種改動、修改和變形。例如,被用于生成性能預(yù)測模型的統(tǒng)計方法VW可以被其他統(tǒng)計方法來代替,其他 統(tǒng)計方法可包括分段多項式回歸方法(piecewise polynomial regression method)、神 經(jīng)網(wǎng)絡(luò)(neural network)、或一些支持向量機的變形。本發(fā)明的多個實施例旨在包括以上 這些改動、修改和變形,并屬于所附上的權(quán)利要求書的范圍內(nèi)。
1權(quán)利要求
1.一種方法,包括標(biāo)識處理器的性能基準(zhǔn)測試程序;為所標(biāo)識的性能基準(zhǔn)測試程序采樣設(shè)計空間的一部分;仿真所采樣的設(shè)計空間的那部分,以生成訓(xùn)練數(shù)據(jù);通過修改所述訓(xùn)練數(shù)據(jù),根據(jù)所述訓(xùn)練數(shù)據(jù)生成處理器性能模型,以預(yù)測整個設(shè)計空 間;以及通過執(zhí)行所述處理器性能模型,為整個設(shè)計空間預(yù)測處理器的性能。
2.如權(quán)利要求1所述的方法,其特征在于,所述處理器性能模型是表示多個性能基準(zhǔn) 測試程序的單個性能預(yù)測模型。
3.如權(quán)利要求1所述的方法,其特征在于,還包括選擇所預(yù)測的性能的一個采樣,所述采樣表示所標(biāo)識的性能基準(zhǔn)測試程序的激勵; 仿真所預(yù)測的性能的所述采樣,以生成性能數(shù)據(jù);以及 將所述性能數(shù)據(jù)與所選擇的所預(yù)測的性能的所述采樣相比較。
4.如權(quán)利要求3所述的方法,其特征在于,所述選擇是基于成本度量和收益度量的。
5.如權(quán)利要求3所述的方法,其特征在于,還包括 通過所述比較來計算預(yù)測誤差;以及通過對設(shè)計空間的一部分進行重新采樣來修改所述訓(xùn)練數(shù)據(jù),以減少所計算的預(yù)測誤差。
6.如權(quán)利要求1所述的方法,其特征在于,所述預(yù)測性能包括以下至少一個 預(yù)測處理器的功率消耗;以及預(yù)測處理器的每秒指令數(shù)。
7.如權(quán)利要求1所述的方法,其特征在于,為所標(biāo)識的性能基準(zhǔn)測試程序采樣設(shè)計空 間的一部分包括生成處理器的隨機配置,每個配置具有參數(shù)_數(shù)值配對;以及對所述參數(shù)_數(shù)值配對中的每個參數(shù)隨機賦值,其中所述值確定設(shè)計空間的大小。
8.如權(quán)利要求7所述的方法,其特征在于,隨機賦值包括 標(biāo)識所述值的預(yù)定范圍;以及隨機從所述預(yù)定范圍內(nèi)賦值。
9.如權(quán)利要求1所述的方法,其特征在于,為整個設(shè)計空間預(yù)測處理器的性能包括 生成處理器的所有配置的排列;將所述排列提供給所述處理器性能模型;以及 使用所提供的排列來執(zhí)行所述處理器性能模型。
10.如權(quán)利要求1所述的方法,其特征在于,通過修改所述訓(xùn)練數(shù)據(jù),根據(jù)所述訓(xùn)練數(shù) 據(jù)生成處理器性能模型,以預(yù)測整個設(shè)計空間包括將所述訓(xùn)練數(shù)據(jù)轉(zhuǎn)換為單個矩陣,所述單個矩陣具有與所標(biāo)識的性能基準(zhǔn)測試程序相 關(guān)的特性和標(biāo)記;將所述單個矩陣提供給統(tǒng)計應(yīng)用程序;以及 執(zhí)行所述統(tǒng)計應(yīng)用程序。
11.如權(quán)利要求10所述的方法,其特征在于,所述統(tǒng)計應(yīng)用程序是VowpalWabbit方法。
12.如權(quán)利要求10所述的方法,其特征在于,所述特性是二進制格式的。
13.一種計算機可讀介質(zhì),其中包括計算機可讀指令,當(dāng)所述計算機可讀指令在計算機 上執(zhí)行時,使該計算機執(zhí)行一種方法,所述方法包括標(biāo)識處理器的性能基準(zhǔn)測試程序;為所標(biāo)識的性能基準(zhǔn)測試程序采樣設(shè)計空間的一部分;仿真所采樣的設(shè)計空間的那部分,以生成訓(xùn)練數(shù)據(jù);通過修改所述訓(xùn)練數(shù)據(jù),根據(jù)所述訓(xùn)練數(shù)據(jù)生成處理器性能模型,以預(yù)測整個設(shè)計空 間;以及通過執(zhí)行所述處理器性能模型,為整個設(shè)計空間預(yù)測處理器的性能。
14.如權(quán)利要求13所述的計算機可讀介質(zhì),其特征在于,所述處理器性能模型是表示 多個性能基準(zhǔn)測試程序的單個性能預(yù)測模型。
15.如權(quán)利要求13所述的計算機可讀介質(zhì),其特征在于,包括計算機可讀指令,當(dāng)所述 計算機可讀指令在計算機上執(zhí)行時,使該計算機進一步執(zhí)行一種方法,所述方法包括選擇所預(yù)測的性能的一個采樣,所述采樣表示所標(biāo)識的性能基準(zhǔn)測試程序的激勵; 仿真所預(yù)測的性能的所述采樣,以生成性能數(shù)據(jù);以及 將所述性能數(shù)據(jù)與所選擇的所預(yù)測的性能的所述采樣相比較。
16.如權(quán)利要求15所述的計算機可讀介質(zhì),其特征在于,所述選擇是基于成本度量和 收益度量的。
17.如權(quán)利要求15所述的計算機可讀介質(zhì),其特征在于,包括計算機可讀指令,當(dāng)所述 計算機可讀指令在計算機上執(zhí)行時,使該計算機進一步執(zhí)行一種方法,所述方法包括通過所述比較來計算預(yù)測誤差;以及通過對設(shè)計空間的一部分進行重新采樣來修改所述訓(xùn)練數(shù)據(jù),以減少所計算的預(yù)測誤差。
18.如權(quán)利要求13所述的計算機可讀介質(zhì),其特征在于,所述預(yù)測性能包括以下至少 一個預(yù)測處理器的功率消耗;以及 預(yù)測處理器的每秒指令數(shù)。
19.如權(quán)利要求13所述的計算機可讀介質(zhì),其特征在于,為所標(biāo)識的性能基準(zhǔn)測試程 序采樣設(shè)計空間的一部分包括生成處理器的隨機配置,每個配置具有參數(shù)_數(shù)值配對;以及對所述參數(shù)-數(shù)值配對中的每個參數(shù)隨機賦值,其中所述值確定設(shè)計空間的大小。
20.如權(quán)利要求19所述的計算機可讀介質(zhì),其特征在于,隨機賦值包括 標(biāo)識所述值的預(yù)定范圍;以及隨機從所述預(yù)定范圍內(nèi)賦值。
21.如權(quán)利要求13所述的計算機可讀介質(zhì),其特征在于,為整個設(shè)計空間預(yù)測處理器 的性能包括生成處理器的所有配置的排列;將所述排列提供給所述處理器性能模型;以及使用所提供的排列來執(zhí)行所述處理器性能模型。
22.如權(quán)利要求13所述的計算機可讀介質(zhì),其特征在于,通過修改所述訓(xùn)練數(shù)據(jù),根據(jù) 所述訓(xùn)練數(shù)據(jù)生成處理器性能模型,以預(yù)測整個設(shè)計空間包括將所述訓(xùn)練數(shù)據(jù)轉(zhuǎn)換為單個矩陣,所述單個矩陣具有與所標(biāo)識的性能基準(zhǔn)測試程序相 關(guān)的二進制格式的特性和標(biāo)記;將所述單個矩陣提供給統(tǒng)計應(yīng)用程序;以及 執(zhí)行所述統(tǒng)計應(yīng)用程序。
23.—種系統(tǒng),包括 網(wǎng)絡(luò)總線;以及存儲器,與處理器相耦合,具有指令以執(zhí)行預(yù)測目標(biāo)處理器性能的方法;以及 處理器,通過所述網(wǎng)絡(luò)總線與所述存儲器相耦合,所述處理器具有邏輯單元以執(zhí)行所 述指令以執(zhí)行一方法,所述方法包括標(biāo)識目標(biāo)處理器的性能基準(zhǔn)測試程序;為所標(biāo)識的性能基準(zhǔn)測試程序采樣設(shè)計空間的一部分;仿真所采樣的設(shè)計空間的那部分,以生成訓(xùn)練數(shù)據(jù);通過修改所述訓(xùn)練數(shù)據(jù),根據(jù)所述訓(xùn)練數(shù)據(jù)生成處理器性能模型,以預(yù)測整個設(shè)計空 間;以及通過執(zhí)行所述處理器性能模型,為整個設(shè)計空間預(yù)測目標(biāo)處理器的性能。
24.如權(quán)利要求23所述的系統(tǒng),其特征在于,所述處理器性能模型是表示多個性能基 準(zhǔn)測試程序的單個性能預(yù)測模型。
25.如權(quán)利要求23所述的系統(tǒng),其特征在于,所述處理器的邏輯單元用于進一步執(zhí)行 一方法,所述方法包括選擇所預(yù)測的性能的一個采樣,所述采樣表示所標(biāo)識的性能基準(zhǔn)測試程序的激勵; 仿真所預(yù)測的性能的所述采樣,以生成性能數(shù)據(jù);以及將所述性能數(shù)據(jù)與所選擇的所預(yù)測的性能的所述采樣相比較,其中所述選擇是基于成 本度量和收益度量的。
26.如權(quán)利要求25所述的系統(tǒng),其特征在于,所述處理器的邏輯單元用于進一步執(zhí)行 一方法,所述方法包括通過所述比較來計算預(yù)測誤差;以及通過對設(shè)計空間的一部分進行重新采樣來修改所述訓(xùn)練數(shù)據(jù),以減少所計算的預(yù)測誤差。
27.如權(quán)利要求23所述的系統(tǒng),其特征在于,所述預(yù)測性能包括以下至少一個 預(yù)測處理器的功率消耗;以及預(yù)測處理器的每秒指令數(shù)。
28.如權(quán)利要求23所述的系統(tǒng),其特征在于,為所標(biāo)識的性能基準(zhǔn)測試程序采樣設(shè)計 空間的一部分包括生成處理器的隨機配置,每個配置具有參數(shù)-數(shù)值配對;以及 對所述參數(shù)-數(shù)值配對中的每個參數(shù)隨機賦值,其中所述值確定設(shè)計空間的大小,其 中隨機賦值包括標(biāo)識所述值的預(yù)定范圍;以及 隨機從所述預(yù)定范圍內(nèi)賦值。
29.如權(quán)利要求23所述的系統(tǒng),其特征在于,為整個設(shè)計空間預(yù)測處理器的性能包括 生成處理器的所有配置的排列;將所述排列提供給所述處理器性能模型;以及 使用所提供的排列來執(zhí)行所述處理器性能模型。
30.如權(quán)利要求23所述的系統(tǒng),其特征在于,通過修改所述訓(xùn)練數(shù)據(jù),根據(jù)所述訓(xùn)練數(shù) 據(jù)生成處理器性能模型,以預(yù)測整個設(shè)計空間包括將所述訓(xùn)練數(shù)據(jù)轉(zhuǎn)換為單個矩陣,所述單個矩陣具有與所標(biāo)識的性能基準(zhǔn)測試程序相 關(guān)的二進制格式的特性和標(biāo)記;將所述單個矩陣提供給統(tǒng)計應(yīng)用程序;以及 執(zhí)行所述統(tǒng)計應(yīng)用程序。
全文摘要
描述了一種用于有效生成處理器體系結(jié)構(gòu)模型的方法和設(shè)備,該處理器體系結(jié)構(gòu)模型可以更精確的預(yù)測處理器的性能以最小化仿真時間。在一個實施例中,一種方法包括標(biāo)識處理器的性能基準(zhǔn)測試程序;為所標(biāo)識的性能基準(zhǔn)測試程序采樣設(shè)計空間的一部分;仿真所采樣的設(shè)計空間的那部分,以生成訓(xùn)練數(shù)據(jù);通過修改所述訓(xùn)練數(shù)據(jù),根據(jù)所述訓(xùn)練數(shù)據(jù)生成處理器性能模型,以預(yù)測整個設(shè)計空間;以及通過執(zhí)行所述處理器性能模型,為整個設(shè)計空間預(yù)測處理器的性能。
文檔編號G06F9/455GK102110013SQ20101061956
公開日2011年6月29日 申請日期2010年12月22日 優(yōu)先權(quán)日2009年12月23日
發(fā)明者A·W·布萊西, H·王, M·邁德哈弗 申請人:英特爾公司