機(jī)器學(xué)習(xí)系統(tǒng)應(yīng)使開發(fā)人員能夠提高一系列應(yīng)用程序的計算效率。
麻省理工學(xué)院的研究人員發(fā)明了一種機(jī)器學(xué)習(xí)工具,可以預(yù)測計算機(jī)芯片執(zhí)行各種應(yīng)用程序中的代碼的速度。
為了使代碼盡可能快地運(yùn)行,開發(fā)人員和編譯器(將編程語言轉(zhuǎn)換為機(jī)器可讀代碼的程序)通常使用性能模型,這些模型通過模擬給定的芯片體系結(jié)構(gòu)來運(yùn)行代碼。
編譯器使用該信息來自動優(yōu)化代碼,而開發(fā)人員使用該信息來解決將運(yùn)行該代碼的微處理器的性能瓶頸。但是,機(jī)器代碼的性能模型是由相對較少的專家小組手寫的,并且沒有得到正確的驗證。結(jié)果,模擬的性能測量通常會偏離實際結(jié)果。
在一系列會議論文中,研究人員描述了一種新穎的機(jī)器學(xué)習(xí)管道,該管道可自動執(zhí)行此過程,從而使其變得更輕松,更快,更準(zhǔn)確。在6月份的國際機(jī)器學(xué)習(xí)大會上發(fā)表的一篇論文中,研究人員介紹了Ithemal,這是一種神經(jīng)網(wǎng)絡(luò)模型,它以“基本塊”(計算指令的基本片段)的形式訓(xùn)練標(biāo)記數(shù)據(jù),以自動預(yù)測其持續(xù)時間使用給定的芯片來執(zhí)行以前看不見的基本塊。結(jié)果表明,Ithemal的性能比傳統(tǒng)的手動調(diào)整模型要準(zhǔn)確得多。
然后,在11月舉行的IEEE國際工作負(fù)載表征研討會上,研究人員展示了一個基準(zhǔn)測試套件,它來自多個領(lǐng)域,包括機(jī)器學(xué)習(xí),編譯器,密碼學(xué)和可用于驗證性能模型的圖形。他們將超過300,000個概要分析的數(shù)據(jù)塊匯集到一個名為BHive的開源數(shù)據(jù)集中。在評估過程中,Ithemal預(yù)測了英特爾芯片運(yùn)行代碼的速度要比英特爾自身構(gòu)建的性能模型還要好。
最終,開發(fā)人員和編譯器可以使用該工具生成在越來越多的多樣化“黑匣子”芯片設(shè)計上運(yùn)行得更快,更高效的代碼。現(xiàn)代計算機(jī)處理器是不透明的,極其復(fù)雜,難以理解。編寫對這些處理器執(zhí)行得盡可能快的計算機(jī)代碼也面臨著巨大的挑戰(zhàn)。”合著者邁克爾·卡賓(Michael Carbin)說,他是電機(jī)工程與計算機(jī)科學(xué)系(EECS)的助理教授,計算機(jī)科學(xué)與工程學(xué)的研究員。人工智能實驗室(CSAIL)。“該工具是朝著對這些芯片的性能進(jìn)行完全建模以提高效率的重要一步。”
最近,在12月NeurIPS會議上發(fā)表的一篇論文中,該團(tuán)隊提出了一種自動生成編譯器優(yōu)化的新技術(shù)。具體來說,它們會自動生成一個名為Vemal的算法,該算法將某些代碼轉(zhuǎn)換為向量,可用于并行計算。Vemal優(yōu)于LLVM編譯器中使用的手工矢量化算法,LLVM編譯器是業(yè)界常用的編譯器。
從數(shù)據(jù)中學(xué)習(xí)
卡賓說,手工設(shè)計性能模型可能是“一門妖術(shù)”。英特爾提供了超過3000頁的詳盡文檔,描述了其芯片的體系結(jié)構(gòu)。但是,目前只有一小部分專家將構(gòu)建性能模型,以模擬這些架構(gòu)上代碼的執(zhí)行。
Mendis說:“英特爾的文檔既沒有錯誤也不完整,并且英特爾將省略某些事情,因為它是專有的。” “但是,當(dāng)您使用數(shù)據(jù)時,您不需要了解文檔。如果有隱藏的東西,您可以直接從數(shù)據(jù)中學(xué)習(xí)。”
為此,研究人員記錄了給定微處理器用于計算基本塊指令的平均周期數(shù)-基本上是啟動,執(zhí)行和關(guān)閉的順序-無需人工干預(yù)。使過程自動化可以快速分析數(shù)十萬或數(shù)百萬個塊。
特定領(lǐng)域的架構(gòu)
在訓(xùn)練中,Ithemal模型分析了數(shù)百萬個自動剖析的基本塊,以準(zhǔn)確了解不同的芯片架構(gòu)將如何執(zhí)行計算。重要的是,Ithemal將原始文本作為輸入,不需要手動向輸入數(shù)據(jù)添加功能。在測試中,Ithemal可以被喂入以前看不見的基本塊和給定的芯片,并且將生成一個數(shù)字,指示芯片將以多快的速度執(zhí)行該代碼。
研究人員發(fā)現(xiàn),Ithemal的準(zhǔn)確率(即預(yù)測速度與實際速度之間的差異)比傳統(tǒng)手工模型降低了50%。此外,在他們的下一篇論文中,他們表明Ithemal的錯誤率是10%,而Intel性能預(yù)測模型在多個不同領(lǐng)域的各種基本塊上的錯誤率是20%。
Mendis說,該工具現(xiàn)在使人們可以更輕松地快速了解任何新芯片架構(gòu)的性能速度。例如,特定領(lǐng)域的體系結(jié)構(gòu),例如Google專門用于神經(jīng)網(wǎng)絡(luò)的新型Tensor處理單元,目前正在構(gòu)建中,但尚未得到廣泛理解。Mendis說:“如果要在某個新架構(gòu)上訓(xùn)練模型,只需從該架構(gòu)收集更多數(shù)據(jù),通過我們的探查器運(yùn)行它,使用該信息來訓(xùn)練Ithemal,現(xiàn)在您就有了一個預(yù)測性能的模型,” Mendis說。
接下來,研究人員正在研究使模型可解釋的方法。機(jī)器學(xué)習(xí)在很大程度上是一個黑匣子,因此尚不清楚為什么特定模型會做出預(yù)測。“我們的模型說一個處理器要執(zhí)行一個基本塊需要10個周期?,F(xiàn)在,我們正在嘗試找出原因。” Carbin說。“對于這些類型的工具而言,這是一個很好的粒度級別,將是驚人的。”
他們還希望使用Ithemal進(jìn)一步增強(qiáng)Vemal的性能,并自動實現(xiàn)更好的性能。