來源:微軟研究院AI頭條
概要:1月17日,院友袁進(jìn)輝博士回到微軟亞洲研究院做了題為《打造最強深度學(xué)習(xí)引擎》的報告,分享了深度學(xué)習(xí)框架方面的技術(shù)進(jìn)展。
1月17日,院友袁進(jìn)輝博士回到微軟亞洲研究院做了題為《打造最強深度學(xué)習(xí)引擎》的報告,分享了深度學(xué)習(xí)框架方面的技術(shù)進(jìn)展。報告中主要講解了何為最強的計算引擎?專用硬件為什么快?大規(guī)模專用硬件面臨著什么問題?軟件構(gòu)架又應(yīng)該解決哪些問題?
首先,我們一起來開一個腦洞:想象一個最理想的深度學(xué)習(xí)引擎應(yīng)該是什么樣子的,或者說深度學(xué)習(xí)引擎的終極形態(tài)是什么?看看這會給深度學(xué)習(xí)框架和AI專用芯片研發(fā)帶來什么啟發(fā)。
以大家耳熟能詳?shù)木矸e神經(jīng)網(wǎng)絡(luò)CNN 為例,可以感覺一下目前訓(xùn)練深度學(xué)習(xí)模型需要多少計算力。下方這張表列出了常見CNN模型處理一張圖片需要的內(nèi)存容量和浮點計算次數(shù),譬如VGG-16網(wǎng)絡(luò)處理一張圖片就需要16Gflops。值得注意的是,基于ImageNet數(shù)據(jù)集訓(xùn)練CNN,數(shù)據(jù)集一共大約120萬張圖片,訓(xùn)練算法需要對這個數(shù)據(jù)集掃描100遍(epoch),這意味著10^18次浮點計算,即1exaFlops。簡單演算一下可發(fā)現(xiàn),基于一個主頻為2.0GHz的CPU core來訓(xùn)練這樣的模型需要好幾年的時間。
專用硬件比通用硬件(如CPU、GPU)快,有多種原因,主要包括:(1)通用芯片一般經(jīng)歷“取指-譯碼-執(zhí)行”(甚至包括“取數(shù)據(jù)”)的步驟才能完成一次運算,專用硬件大大減小了“取指-譯碼”等開銷,數(shù)據(jù)到達(dá)即執(zhí)行;(2)專用硬件控制電路復(fù)雜度低,可以在相同的面積下集成更多對運算有用的器件,可以在一個時鐘周期內(nèi)完成通用硬件需要數(shù)千上萬個時鐘周期才能完成的操作;(3)專用硬件和通用硬件內(nèi)都支持流水線并行,硬件利用率高;(4)專用硬件片內(nèi)帶寬高,大部分?jǐn)?shù)據(jù)在片內(nèi)傳輸。顯然,如果不考慮物理現(xiàn)實,不管什么神經(jīng)網(wǎng)絡(luò),不管問題的規(guī)模有多大,都實現(xiàn)一套專用硬件是效率最高的做法。問題是,這行得通嗎?
現(xiàn)實中,不管是通用硬件(如GPU)還是專用硬件(如TPU) 都可以通過高速互聯(lián)技術(shù)連接在一起,通過軟件協(xié)調(diào)多個設(shè)備來完成大規(guī)模計算。使用最先進(jìn)的互聯(lián)技術(shù),設(shè)備和設(shè)備之間傳輸帶寬可以達(dá)到100Gbps或者更多,這比設(shè)備內(nèi)部帶寬低上一兩個數(shù)量級,不過幸好,如果軟件“調(diào)配得當(dāng)”,在這個帶寬條件下也可能使得硬件計算飽和。當(dāng)然,“調(diào)配得當(dāng)”技術(shù)挑戰(zhàn)極大,事實上,單個設(shè)備速度越快,越難把多個設(shè)備“調(diào)配得當(dāng)”。
當(dāng)前深度學(xué)習(xí)普遍采用隨機梯度下降算法(SGD),一般一個GPU處理一小塊兒數(shù)據(jù)只需要100毫秒的時間,那么問題的關(guān)鍵就成了,“調(diào)配”算法能否在100毫秒的時間內(nèi)為GPU處理下一塊數(shù)據(jù)做好準(zhǔn)備,如果可以的話,那么GPU就會一直保持在運算狀態(tài),如果不可以,那么GPU就要間歇性的停頓,意味著設(shè)備利用率降低。理論上是可以的,有個叫運算強度(Arithmetic intensity)的概念,即flops per byte,表示一個字節(jié)的數(shù)據(jù)上發(fā)生的運算量,只要這個運算量足夠大,意味著傳輸一個字節(jié)可以消耗足夠多的計算量,那么即使設(shè)備間傳輸帶寬低于設(shè)備內(nèi)部帶寬,也有可能使得設(shè)備處于滿負(fù)荷狀態(tài)。進(jìn)一步,如果采用比GPU更快的設(shè)備,那么處理一塊兒數(shù)據(jù)的時間就比100毫秒更低,譬如10毫秒,在給定的帶寬條件下,“調(diào)配”算法能用10毫秒的時間為下一次計算做好準(zhǔn)備嗎?事實上,即使是使用不那么快(相對于TPU 等專用芯片)的GPU,當(dāng)前主流的深度學(xué)習(xí)框架在某些場景(譬如模型并行)已經(jīng)力不從心了。
一個通用的深度學(xué)習(xí)軟件框架要能對任何給定的神經(jīng)網(wǎng)絡(luò)和可用資源都能最高效的“調(diào)配”硬件,這需要解決三個核心問題:(1)資源分配,包括計算核心,內(nèi)存,傳輸帶寬三種資源的分配,需要綜合考慮局部性和負(fù)載均衡的問題;(2)生成正確的數(shù)據(jù)路由(相當(dāng)于前文想象的專用硬件之間的連線問題);(3)高效的運行機制,完美協(xié)調(diào)數(shù)據(jù)搬運和計算,硬件利用率最高。
事實上,這三個問題都很挑戰(zhàn),本文暫不討論其解法,假設(shè)我們能夠解決這些問題的話,會有什么好處呢?
假設(shè)我們能解決前述的三個軟件上的難題,那就能“魚與熊掌兼得”:軟件發(fā)揮靈活性,硬件發(fā)揮高效率,任給一個深度學(xué)習(xí)任務(wù),用戶不需要重新連線,就能享受那種“無限大專用硬件”的性能,何其美好。更令人激動的是,當(dāng)這種軟件得以實現(xiàn)時,專用硬件可以比現(xiàn)在所有AI芯片都更簡單更高效。讀者可以先想象一下怎么實現(xiàn)這種美好的前景。
讓我們重申一下幾個觀點:(1)軟件真的非常關(guān)鍵;(2)我們對宏觀層次(設(shè)備和設(shè)備之間)的優(yōu)化更感興趣;(3)深度學(xué)習(xí)框架存在一個理想的實現(xiàn),正如柏拉圖心中那個最圓的圓,當(dāng)然現(xiàn)有的深度學(xué)習(xí)框架還相距甚遠(yuǎn);(4)各行各業(yè)的公司,只要有數(shù)據(jù)驅(qū)動的業(yè)務(wù),最終都需要一個自己的“大腦”,這種“大腦”不應(yīng)該只被少數(shù)巨頭公司獨享。
-
硬件
+關(guān)注
關(guān)注
11文章
3444瀏覽量
66986 -
深度學(xué)習(xí)
+關(guān)注
關(guān)注
73文章
5543瀏覽量
122269 -
cnn
+關(guān)注
關(guān)注
3文章
354瀏覽量
22560
原文標(biāo)題:深度學(xué)習(xí)引擎的終極形態(tài)是什么?
文章出處:【微信號:AItists,微信公眾號:人工智能學(xué)家】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
深度學(xué)習(xí)在自然語言處理方面的研究進(jìn)展

評論