計(jì)算機(jī)架構(gòu)的機(jī)器學(xué)習(xí)
最近機(jī)器學(xué)習(xí) (ML) 進(jìn)步的關(guān)鍵貢獻(xiàn)者之一是定制加速器的開(kāi)發(fā),例如Google TPU和Edge TPU,它們顯著提高了可用計(jì)算能力,從而解鎖了各種功能,例如AlphaGo、RankBrain、WaveNets和對(duì)話代理。這種增加可以提高神經(jīng)網(wǎng)絡(luò)訓(xùn)練和推理的性能,為視覺(jué)、語(yǔ)言、理解和自動(dòng)駕駛汽車等廣泛的應(yīng)用提供新的可能性。
為了保持這些進(jìn)步,硬件加速器生態(tài)系統(tǒng)必須繼續(xù)在架構(gòu)設(shè)計(jì)方面進(jìn)行創(chuàng)新,并適應(yīng)快速發(fā)展的 ML 模型和應(yīng)用程序。這需要對(duì)許多不同的加速器設(shè)計(jì)點(diǎn)進(jìn)行評(píng)估,每個(gè)點(diǎn)不僅可以提高計(jì)算能力,還可以揭示新的能力。這些設(shè)計(jì)點(diǎn)通常由各種硬件和軟件因素(例如,內(nèi)存容量、不同級(jí)別的計(jì)算單元數(shù)量、并行性、互連網(wǎng)絡(luò)、流水線、軟件映射等)參數(shù)化。這是一項(xiàng)艱巨的優(yōu)化任務(wù),因?yàn)樗阉骺臻g呈指數(shù)級(jí)大1 而目標(biāo)函數(shù)(例如,更低的延遲和/或更高的能源效率)通過(guò)模擬或綜合進(jìn)行評(píng)估在計(jì)算上是昂貴的,這使得確定可行的加速器配置具有挑戰(zhàn)性。
在“ Apollo: Transferable Architecture Exploration ”中,我們介紹了我們?cè)诙ㄖ萍铀倨鞯?ML 驅(qū)動(dòng)設(shè)計(jì)方面的研究進(jìn)展。雖然最近的 工作已經(jīng)證明了利用 ML 來(lái)改進(jìn)低級(jí)布局規(guī)劃過(guò)程(其中硬件組件在空間上布局并在硅中連接)方面的有希望的結(jié)果,但在這項(xiàng)工作中,我們專注于將 ML 混合到高級(jí)系統(tǒng)規(guī)范和架構(gòu)設(shè)計(jì)階段,這是影響芯片整體性能的關(guān)鍵因素,其中建立了控制高級(jí)功能的設(shè)計(jì)元素。我們的研究展示了 ML 算法如何促進(jìn)架構(gòu)探索并建議跨一系列深度神經(jīng)網(wǎng)絡(luò)的高性能架構(gòu),其領(lǐng)域涵蓋圖像分類、對(duì)象檢測(cè)、OCR和語(yǔ)義分割。
架構(gòu)搜索空間和工作負(fù)載
架構(gòu)探索的目標(biāo)是為一組工作負(fù)載發(fā)現(xiàn)一組可行的加速器參數(shù),以便在一組可選的用戶定義下最小化所需的目標(biāo)函數(shù)(例如,運(yùn)行時(shí)的加權(quán)平均值)約束。然而,體系結(jié)構(gòu)搜索的流形通常包含許多點(diǎn),從軟件到硬件沒(méi)有可行的映射。其中一些設(shè)計(jì)點(diǎn)是先驗(yàn)已知的,可以通過(guò)用戶將它們制定為優(yōu)化約束來(lái)繞過(guò)(例如,在面積預(yù)算2約束,總內(nèi)存大小不得超過(guò)預(yù)定義的限制)。然而,由于體系結(jié)構(gòu)和編譯器的相互作用以及搜索空間的復(fù)雜性,一些約束可能無(wú)法正確地表述到優(yōu)化中,因此編譯器可能無(wú)法為目標(biāo)硬件找到可行的軟件映射。這些不可行點(diǎn)在優(yōu)化問(wèn)題中不容易表述,并且在整個(gè)編譯器通過(guò)之前通常是未知的。因此,架構(gòu)探索的主要挑戰(zhàn)之一是有效地避開(kāi)不可行的點(diǎn),以最少數(shù)量的周期精確架構(gòu)模擬來(lái)有效探索搜索空間。
下圖顯示了目標(biāo) ML 加速器的整體架構(gòu)搜索空間。加速器包含處理元件 (PE) 的二維陣列,每個(gè)處理元件以單指令多數(shù)據(jù)(SIMD) 方式執(zhí)行一組算術(shù)計(jì)算。每個(gè) PE 的主要架構(gòu)組件是處理核心,包括用于 SIMD 操作的多個(gè)計(jì)算通道。每個(gè) PE在其所有計(jì)算核心之間具有共享內(nèi)存 ( PE Memory ),主要用于存儲(chǔ)模型激活、部分結(jié)果和輸出,而單個(gè)核心具有主要用于存儲(chǔ)模型參數(shù)的內(nèi)存。每個(gè)內(nèi)核有多個(gè)計(jì)算通道,具有多路乘法累加(MAC) 單位。每個(gè)周期的模型計(jì)算結(jié)果要么存儲(chǔ)在 PE 內(nèi)存中以供進(jìn)一步計(jì)算,要么卸載回 DRAM。
優(yōu)化策略
在本研究中,我們?cè)诩軜?gòu)探索的背景下探索了四種優(yōu)化策略:
1.隨機(jī):隨機(jī)均勻地對(duì)架構(gòu)搜索空間進(jìn)行采樣。
2.Vizier:使用貝葉斯優(yōu)化在搜索空間中進(jìn)行探索,其中目標(biāo)函數(shù)的評(píng)估成本很高(例如硬件模擬,可能需要數(shù)小時(shí)才能完成)。使用來(lái)自搜索空間的一組采樣點(diǎn),貝葉斯優(yōu)化形成一個(gè)代理函數(shù),通常用高斯過(guò)程表示,它近似于搜索空間的流形。在代理函數(shù)值的指導(dǎo)下,貝葉斯優(yōu)化算法在探索和開(kāi)發(fā)的權(quán)衡中決定是從流形中的有希望的區(qū)域中采樣更多(開(kāi)發(fā)),還是從搜索空間中不可見(jiàn)的區(qū)域中采樣更多(勘探)。然后,優(yōu)化算法使用這些新采樣點(diǎn)并進(jìn)一步更新代理函數(shù)以更好地對(duì)目標(biāo)搜索空間進(jìn)行建模。Vizier 將預(yù)期改進(jìn)作為其核心獲取功能。在這里,我們使用Vizier (safe),這是一種約束優(yōu)化的變體,它指導(dǎo)優(yōu)化過(guò)程避免建議不滿足給定約束的試驗(yàn)。
3.Evolutionary:使用k 個(gè)個(gè)體的種群 執(zhí)行進(jìn)化搜索,其中每個(gè)個(gè)體的基因組對(duì)應(yīng)于一系列離散化的加速器配置。通過(guò)使用錦標(biāo)賽選擇從種群中為每個(gè)個(gè)體選擇兩個(gè)父母,以某種交叉率重組他們的基因組,并以某種概率突變重組的基因組,從而產(chǎn)生新個(gè)體。
4.基于種群的黑盒優(yōu)化(P3BO):使用一組優(yōu)化方法,包括進(jìn)化和基于模型,已被證明可以提高樣本效率和穩(wěn)健性。采樣數(shù)據(jù)在集成中的優(yōu)化方法之間交換,優(yōu)化器根據(jù)其性能歷史進(jìn)行加權(quán)以生成新的配置。在我們的研究中,我們使用 P3BO 的變體,其中優(yōu)化器的超參數(shù)使用進(jìn)化搜索動(dòng)態(tài)更新。
加速器搜索空間嵌入
為了更好地可視化每個(gè)優(yōu)化策略在加速器搜索空間導(dǎo)航中的有效性,我們使用t 分布隨機(jī)鄰居嵌入 (t-SNE) 將探索的配置映射到優(yōu)化范圍內(nèi)的二維空間。所有實(shí)驗(yàn)的目標(biāo)(獎(jiǎng)勵(lì))定義為每個(gè)加速器區(qū)域的吞吐量(推理/秒)。在下圖中,x軸和y軸表示嵌入空間的 t-SNE 組件(嵌入 1 和嵌入 2)。星形和圓形標(biāo)記分別顯示不可行(零獎(jiǎng)勵(lì))和可行設(shè)計(jì)點(diǎn),可行點(diǎn)的大小與其獎(jiǎng)勵(lì)相對(duì)應(yīng)。
正如預(yù)期的那樣,隨機(jī)策略以均勻分布的方式搜索空間,最終在設(shè)計(jì)空間中找到很少的可行點(diǎn)。
與隨機(jī)抽樣方法相比,Vizier默認(rèn)優(yōu)化策略在探索搜索空間和找到具有更高獎(jiǎng)勵(lì)的設(shè)計(jì)點(diǎn)(1.14 對(duì) 0.96)之間取得了很好的平衡。然而,這種方法往往會(huì)陷入不可行的區(qū)域,雖然它確實(shí)找到了一些具有最大回報(bào)的點(diǎn)(由紅十字標(biāo)記表示),但它在最后一次探索迭代中幾乎找不到可行的點(diǎn)。
另一方面,進(jìn)化優(yōu)化策略在優(yōu)化的早期找到可行的解決方案,并在它們周圍組裝可行點(diǎn)的集群。因此,這種方法主要導(dǎo)航可行區(qū)域(綠色圓圈)并有效地避開(kāi)不可行點(diǎn)。此外,進(jìn)化搜索能夠找到更多具有最大獎(jiǎng)勵(lì)(紅色十字)的設(shè)計(jì)選項(xiàng)。具有高回報(bào)的解決方案的這種多樣性為設(shè)計(jì)師探索具有不同設(shè)計(jì)權(quán)衡的各種架構(gòu)提供了靈活性。
最后,基于群體的優(yōu)化方法 (P3BO) 以更有針對(duì)性的方式(具有高獎(jiǎng)勵(lì)點(diǎn)的區(qū)域)探索設(shè)計(jì)空間,以找到最佳解決方案。P3BO 策略在具有更嚴(yán)格約束(例如,大量不可行點(diǎn))的搜索空間中找到具有最高獎(jiǎng)勵(lì)的設(shè)計(jì)點(diǎn),顯示其在具有大量不可行點(diǎn)的搜索空間中導(dǎo)航的有效性。
不同設(shè)計(jì)約束下的架構(gòu)探索
我們還研究了每種優(yōu)化策略在不同面積預(yù)算約束(6.8 mm 2、5.8 mm 2和4.8 mm 2 )下的優(yōu)勢(shì)。以下小提琴圖顯示了優(yōu)化結(jié)束時(shí)(每次運(yùn)行 4K 次運(yùn)行 10 次后)在所研究的優(yōu)化策略中最大可實(shí)現(xiàn)獎(jiǎng)勵(lì)的完整分布。較寬的部分代表在特定給定獎(jiǎng)勵(lì)下觀察可行架構(gòu)配置的可能性更高。這意味著我們傾向于在具有更高獎(jiǎng)勵(lì)(更高性能)的點(diǎn)上產(chǎn)生增加寬度的優(yōu)化算法。
架構(gòu)探索的兩個(gè)表現(xiàn)最佳的優(yōu)化策略是進(jìn)化和 P3BO,兩者都提供具有高回報(bào)和跨多次運(yùn)行穩(wěn)健性的解決方案。查看不同的設(shè)計(jì)約束,我們觀察到隨著面積預(yù)算約束的收緊,P3BO 優(yōu)化策略會(huì)產(chǎn)生更高性能的解決方案。例如,當(dāng)面積預(yù)算約束設(shè)置為 5.8 mm 2 時(shí),P3BO 發(fā)現(xiàn)獎(jiǎng)勵(lì)(吞吐量/加速器面積)為 1.25 的設(shè)計(jì)點(diǎn)優(yōu)于所有其他優(yōu)化策略。當(dāng)面積預(yù)算約束設(shè)置為 4.8 mm 2 時(shí),觀察到相同的趨勢(shì),在多次運(yùn)行中發(fā)現(xiàn)具有更高穩(wěn)健性(更少可變性)的稍微更好的獎(jiǎng)勵(lì)。
小提琴圖顯示了在 6.8 mm 2的面積預(yù)算下經(jīng)過(guò) 4K 試驗(yàn)評(píng)估后,在 10 個(gè)優(yōu)化策略中運(yùn)行的最大可實(shí)現(xiàn)獎(jiǎng)勵(lì)的完整分布。P3BO 和 Evolutionary 算法產(chǎn)生了更多的高性能設(shè)計(jì)(更寬的部分)。x 軸和 y 軸分別表示研究的優(yōu)化算法和基準(zhǔn)加速器上加速(獎(jiǎng)勵(lì))的幾何平均值。
結(jié)論
雖然Apollo為更好地理解加速器設(shè)計(jì)空間和構(gòu)建更高效的硬件邁出了第一步,但發(fā)明具有新功能的加速器仍然是一個(gè)未知領(lǐng)域和新領(lǐng)域。我們相信,這項(xiàng)研究是一條令人興奮的前進(jìn)道路,可以進(jìn)一步探索用于跨計(jì)算堆棧的架構(gòu)設(shè)計(jì)和協(xié)同優(yōu)化(例如編譯器、映射和調(diào)度)的 ML 驅(qū)動(dòng)技術(shù),從而為下一代開(kāi)發(fā)具有新功能的高效加速器。應(yīng)用程序。