[]萊斯大學(xué)的研究人員展示了設(shè)計創(chuàng)新的以數(shù)據(jù)為中心的計算硬件的方法,以及將硬件與機器學(xué)習算法共同設(shè)計的方法,這兩種算法可以將能源效率提高兩個數(shù)量級。
機器學(xué)習是自動駕駛汽車和許多其他高科技應(yīng)用背后的人工智能形式,它的進步開創(chuàng)了一個新的計算時代—;—;以數(shù)據(jù)為中心的時代,并迫使工程師們重新思考75年來幾乎沒有受到挑戰(zhàn)的計算體系結(jié)構(gòu)的各個方面。
電氣與計算機工程助理教授林英彥(音)說:“問題是,對于目前機器學(xué)習最先進的大規(guī)模深層神經(jīng)網(wǎng)絡(luò)來說,整個系統(tǒng)運行所需的90%以上的電力消耗在存儲器和處理器之間的數(shù)據(jù)移動上?!?。
Lin和合作者提出了兩種互補的方法來優(yōu)化以數(shù)據(jù)為中心的處理,這兩種方法都在6月3日的國際計算機體系結(jié)構(gòu)研討會(ISCA)上進行了介紹,這是有關(guān)計算機體系結(jié)構(gòu)新思想和研究的主要會議之一。
數(shù)據(jù)中心架構(gòu)的驅(qū)動力與一個稱為馮·諾依曼瓶頸(von Neumann瓶頸)的問題有關(guān),這是一個效率低下的問題,源于計算架構(gòu)中的內(nèi)存和處理分離,自1945年數(shù)學(xué)家約翰·馮·諾依曼發(fā)明數(shù)據(jù)中心架構(gòu)以來,這一問題一直占據(jù)著至高無上的地位。通過將內(nèi)存與程序和數(shù)據(jù)分離,von Neumann架構(gòu)允許一臺計算機具有難以置信的多功能性;根據(jù)從內(nèi)存中加載的存儲程序,計算機可以用來進行視頻通話、準備電子表格或模擬火星上的天氣。
但是將內(nèi)存與處理分開也意味著即使簡單的操作(如加2加2)也需要計算機處理器多次訪問內(nèi)存。深度神經(jīng)網(wǎng)絡(luò)中的大量操作使這種記憶瓶頸變得更糟,深度神經(jīng)網(wǎng)絡(luò)是通過“研究”大量先前示例來學(xué)習做出人性化決策的系統(tǒng)。網(wǎng)絡(luò)越大,它可以完成的任務(wù)就越困難,并且顯示的網(wǎng)絡(luò)示例越多,它的執(zhí)行效果就越好。深度神經(jīng)網(wǎng)絡(luò)訓(xùn)練可能需要專門的處理器庫,這些處理器需要全天候運行一周以上?;谥悄芫W(wǎng)絡(luò)在智能手機上執(zhí)行任務(wù)可以在不到一個小時的時間內(nèi)耗盡電池電量。
賴斯高效智能計算(EIC)實驗室主任林說:“人們普遍認為,對于機器學(xué)習時代的以數(shù)據(jù)為中心的算法,我們需要創(chuàng)新的以數(shù)據(jù)為中心的硬件架構(gòu),但機器學(xué)習的最佳硬件架構(gòu)是什么?“
她說:“沒有一個答案是萬能的,因為不同的應(yīng)用程序需要的機器學(xué)習算法在算法結(jié)構(gòu)和復(fù)雜度方面可能有很大的不同,同時具有不同的任務(wù)精度和資源消耗,如能源成本、延遲和吞吐量折衷要求。許多研究人員正在進行這方面的研究,英特爾、IBM和谷歌等大公司都有自己的設(shè)計?!?/p>
在ISCA 2020上,Lin的小組做了一個報告,提供了及時的結(jié)果,這是她和她的學(xué)生為“內(nèi)存處理”(PIM)開發(fā)的一個創(chuàng)新架構(gòu),是一種將處理引入內(nèi)存陣列的非von Neumann方法。一個有前途的PIM平臺是“電阻隨機存取存儲器”(ReRAM),一種類似flash的非易失性存儲器。盡管已經(jīng)提出了其他的ReRAM-PIM加速器架構(gòu),但林說,在10多個深度神經(jīng)網(wǎng)絡(luò)模型上運行的實驗發(fā)現(xiàn),適時的ReRAM-PIM加速器的能效提高了18倍,其計算密度是最具競爭力的最先進ReRAM-PIM加速器的30倍以上。
TIMELY是“時域、內(nèi)存執(zhí)行、局部性”的縮寫,它通過消除頻繁訪問主內(nèi)存以處理中間輸入和輸出以及本地內(nèi)存和主內(nèi)存之間的接口而導(dǎo)致效率低下的主要因素來實現(xiàn)其性能。
在主存儲器中,數(shù)據(jù)以數(shù)字方式存儲,但是當將其帶入本地存儲器以進行內(nèi)存中處理時,必須將其轉(zhuǎn)換為模擬量。在以前的ReRAM PIM加速器中,結(jié)果值從模擬轉(zhuǎn)換為數(shù)字,然后發(fā)送回主存儲器。如果將它們從主存儲器調(diào)用到本地ReRAM以進行后續(xù)操作,則它們將再次轉(zhuǎn)換為模擬信號,依此類推。
通過使用本地存儲器中的模擬格式緩沖區(qū),及時避免了不必要的訪問主存儲器和接口數(shù)據(jù)轉(zhuǎn)換的開銷。這樣,TIMELY幾乎可以將所需的數(shù)據(jù)保留在本地存儲陣列中,從而大大提高了效率。
該小組在ISCA 2020上提出的第二個建議是SmartExchange,該設(shè)計結(jié)合了算法和加速器硬件創(chuàng)新以節(jié)省能源。
“訪問主存儲器(DRAM)的能量要比執(zhí)行計算多花費200倍,因此SmartExchange的關(guān)鍵思想是強制執(zhí)行算法中的結(jié)構(gòu),使我們可以將成本較高的內(nèi)存換成成本更低的內(nèi)存,成本計算?!?/p>
她舉例說:“例如,我們的算法有1000個參數(shù)。在傳統(tǒng)方法中,我們將所有1,000個存儲在DRAM中,并根據(jù)計算需要進行訪問。使用SmartExchange,我們搜索以找到這1,000個中的某些結(jié)構(gòu)。然后,我們只需要存儲10個,因為如果我們知道它們之間的關(guān)系, 10和其余的990,我們可以計算990中的任何一個,而不必從DRAM調(diào)用它們“。
她說:“我們將這10個稱為‘基礎(chǔ)’子集,其想法是將它們存儲在靠近處理器的本地位置,以避免或大幅度減少為訪問DRAM而支付的費用”。
研究人員使用SmartExchange算法及其自定義的硬件加速器對七個基準深度神經(jīng)網(wǎng)絡(luò)模型和三個基準數(shù)據(jù)集進行了實驗。他們發(fā)現(xiàn),與最先進的深度神經(jīng)網(wǎng)絡(luò)加速器相比,該組合將等待時間減少了多達19倍。[]