摘要:首先,我們一起來開一個(gè)腦洞想象一個(gè)最理想的深度學(xué)習(xí)引擎應(yīng)該是什么樣子的,或者說深度學(xué)習(xí)引擎的終極形態(tài)是什么看看這會給深度學(xué)習(xí)框架和專用芯片研發(fā)帶來什么啟發(fā)。眾所周知,現(xiàn)在是深度學(xué)習(xí)領(lǐng)域應(yīng)用最廣的計(jì)算設(shè)備,據(jù)說比更加強(qiáng)大,不過目前只有可以用。
首先,我們一起來開一個(gè)腦洞:想象一個(gè)最理想的深度學(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í)模型需要多少計(jì)算力。下方這張表列出了常見CNN模型處理一張圖片需要的內(nèi)存容量和浮點(diǎn)計(jì)算次數(shù),譬如VGG-16網(wǎng)絡(luò)處理一張圖片就需要16Gflops。值得注意的是,基于ImageNet數(shù)據(jù)集訓(xùn)練CNN,數(shù)據(jù)集一共大約120萬張圖片,訓(xùn)練算法需要對這個(gè)數(shù)據(jù)集掃描100遍(epoch),這意味著10^18次浮點(diǎn)計(jì)算,即1exaFlops。簡單演算一下可發(fā)現(xiàn),基于一個(gè)主頻為2.0GHz的CPU core來訓(xùn)練這樣的模型需要好幾年的時(shí)間。
下圖列了幾種最常使用的計(jì)算設(shè)備——CPU、 GPU、 TPU等。眾所周知,現(xiàn)在GPU是深度學(xué)習(xí)領(lǐng)域應(yīng)用最廣的計(jì)算設(shè)備,TPU 據(jù)說比GPU 更加強(qiáng)大,不過目前只有Google 可以用。我們可以討論下為什么CPU < GPU < TPU,以及存不存在比TPU更加強(qiáng)大的硬件設(shè)備。 主頻為2GHz的單核CPU 只能串行執(zhí)行指令,1秒可以執(zhí)行數(shù)千萬到數(shù)億次操作。隨著摩爾定律終結(jié),人們通過在一個(gè)CPU上集成更多的核心來提高計(jì)算力,譬如一個(gè)CPU上集成20個(gè)計(jì)算核心(所謂多核,muti-core)可以把CPU計(jì)算能力提高幾十倍。GPU 比多核更進(jìn)一步,采用眾核(many-core),在一個(gè)芯片上集成數(shù)千計(jì)算核心(core),盡管每個(gè)核心的主頻要比CPU核心主頻低(通常不到1GHz),并行度還是提升了百倍,而且訪存帶寬要比CPU高10倍以上,因此做稠密計(jì)算的吞吐率可以達(dá)到CPU的10倍乃至100倍。GPU 被詬病的一點(diǎn)是功耗太高,為解決這個(gè)問題,TPU 這樣的專用AI芯片橫空出世,專用芯片可以在相同的面積里集成更多深度學(xué)習(xí)需要的運(yùn)算單元,甚至用專用電路實(shí)現(xiàn)某些特定運(yùn)算使得完成同樣計(jì)算需要的時(shí)間更短 。有比TPU更快的專用芯片嗎? 肯定有,極端情況下,任給一個(gè)神經(jīng)網(wǎng)絡(luò),都不計(jì)成本去專門實(shí)現(xiàn)一款芯片,一定比TPU這種用來支持最廣泛神經(jīng)網(wǎng)絡(luò)類型的芯片要效率高得多。
專用硬件比通用硬件(如CPU、GPU)快,有多種原因,主要包括:(1)通用芯片一般經(jīng)歷“取指-譯碼-執(zhí)行”(甚至包括“取數(shù)據(jù)”)的步驟才能完成一次運(yùn)算,專用硬件大大減小了“取指-譯碼”等開銷,數(shù)據(jù)到達(dá)即執(zhí)行;(2)專用硬件控制電路復(fù)雜度低,可以在相同的面積下集成更多對運(yùn)算有用的器件,可以在一個(gè)時(shí)鐘周期內(nèi)完成通用硬件需要數(shù)千上萬個(gè)時(shí)鐘周期才能完成的操作;(3)專用硬件和通用硬件內(nèi)都支持流水線并行,硬件利用率高;(4)專用硬件片內(nèi)帶寬高,大部分?jǐn)?shù)據(jù)在片內(nèi)傳輸。顯然,如果不考慮物理現(xiàn)實(shí),不管什么神經(jīng)網(wǎng)絡(luò),不管問題的規(guī)模有多大,都實(shí)現(xiàn)一套專用硬件是效率較高的做法。問題是,這行得通嗎?
如果對任何一個(gè)神經(jīng)網(wǎng)絡(luò)都實(shí)現(xiàn)一套專用硬件,運(yùn)行效率較高,可是開發(fā)效率不高,需求一變更(神經(jīng)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),層數(shù),神經(jīng)元個(gè)數(shù)),就需要重新設(shè)計(jì)電路,而硬件研發(fā)周期臭名昭著的長。這讓人聯(lián)想起馮諾依曼發(fā)明“存儲程序”計(jì)算機(jī)之前的電子計(jì)算機(jī)(下圖即第一臺電子計(jì)算機(jī)ENIAC 的照片),計(jì)算機(jī)的功能通過硬連線(hard-wired)電路實(shí)現(xiàn),要改變計(jì)算機(jī)的功能就需要重新組織器件間的連線,這種“編程”方式又慢又難以調(diào)試。
剛才設(shè)想的無限大的專用硬件顯然面臨幾個(gè)現(xiàn)實(shí)問題:(1)芯片不可能無限大,必須考慮硬件制造工藝的限制(散熱,時(shí)鐘信號傳播范圍等);(2)硬連線的電路靈活性太差,改變功能需要重新連線;(3)改變連線后,流水線調(diào)度機(jī)制可能要做相應(yīng)調(diào)整,才能較大化硬件利用率。因此,我們設(shè)想的“不計(jì)成本的”,“無限大的”專用硬件面臨了嚴(yán)峻挑戰(zhàn),如何克服呢?
現(xiàn)實(shí)中,不管是通用硬件(如GPU)還是專用硬件(如TPU) 都可以通過高速互聯(lián)技術(shù)連接在一起,通過軟件協(xié)調(diào)多個(gè)設(shè)備來完成大規(guī)模計(jì)算。使用較先進(jìn)的互聯(lián)技術(shù),設(shè)備和設(shè)備之間傳輸帶寬可以達(dá)到100Gbps或者更多,這比設(shè)備內(nèi)部帶寬低上一兩個(gè)數(shù)量級,不過幸好,如果軟件“調(diào)配得當(dāng)”,在這個(gè)帶寬條件下也可能使得硬件計(jì)算飽和。當(dāng)然,“調(diào)配得當(dāng)”技術(shù)挑戰(zhàn)極大,事實(shí)上,單個(gè)設(shè)備速度越快,越難把多個(gè)設(shè)備“調(diào)配得當(dāng)”。
當(dāng)前深度學(xué)習(xí)普遍采用隨機(jī)梯度下降算法(SGD),一般一個(gè)GPU處理一小塊兒數(shù)據(jù)只需要100毫秒的時(shí)間,那么問題的關(guān)鍵就成了,“調(diào)配”算法能否在100毫秒的時(shí)間內(nèi)為GPU處理下一塊數(shù)據(jù)做好準(zhǔn)備,如果可以的話,那么GPU就會一直保持在運(yùn)算狀態(tài),如果不可以,那么GPU就要間歇性的停頓,意味著設(shè)備利用率降低。理論上是可以的,有個(gè)叫運(yùn)算強(qiáng)度(Arithmetic intensity)的概念,即flops per byte,表示一個(gè)字節(jié)的數(shù)據(jù)上發(fā)生的運(yùn)算量,只要這個(gè)運(yùn)算量足夠大,意味著傳輸一個(gè)字節(jié)可以消耗足夠多的計(jì)算量,那么即使設(shè)備間傳輸帶寬低于設(shè)備內(nèi)部帶寬,也有可能使得設(shè)備處于滿負(fù)荷狀態(tài)。進(jìn)一步,如果采用比GPU更快的設(shè)備,那么處理一塊兒數(shù)據(jù)的時(shí)間就比100毫秒更低,譬如10毫秒,在給定的帶寬條件下,“調(diào)配”算法能用10毫秒的時(shí)間為下一次計(jì)算做好準(zhǔn)備嗎?事實(shí)上,即使是使用不那么快(相對于TPU 等專用芯片)的GPU,當(dāng)前主流的深度學(xué)習(xí)框架在某些場景(譬如模型并行)已經(jīng)力不從心了。
一個(gè)通用的深度學(xué)習(xí)軟件框架要能對任何給定的神經(jīng)網(wǎng)絡(luò)和可用資源都能較高效的“調(diào)配”硬件,這需要解決三個(gè)核心問題:(1)資源分配,包括計(jì)算核心,內(nèi)存,傳輸帶寬三種資源的分配,需要綜合考慮局部性和負(fù)載均衡的問題;(2)生成正確的數(shù)據(jù)路由(相當(dāng)于前文想象的專用硬件之間的連線問題);(3)高效的運(yùn)行機(jī)制,完美協(xié)調(diào)數(shù)據(jù)搬運(yùn)和計(jì)算,硬件利用率較高。
事實(shí)上,這三個(gè)問題都很挑戰(zhàn),本文暫不討論其解法,假設(shè)我們能夠解決這些問題的話,會有什么好處呢?
假設(shè)我們能解決前述的三個(gè)軟件上的難題,那就能“魚與熊掌兼得”:軟件發(fā)揮靈活性,硬件發(fā)揮高效率,任給一個(gè)深度學(xué)習(xí)任務(wù),用戶不需要重新連線,就能享受那種“無限大專用硬件”的性能,何其美好。更令人激動的是,當(dāng)這種軟件得以實(shí)現(xiàn)時(shí),專用硬件可以比現(xiàn)在所有AI芯片都更簡單更高效。讀者可以先想象一下怎么實(shí)現(xiàn)這種美好的前景。
讓我們重申一下幾個(gè)觀點(diǎn):(1)軟件真的非常關(guān)鍵;(2)我們對宏觀層次(設(shè)備和設(shè)備之間)的優(yōu)化更感興趣;(3)深度學(xué)習(xí)框架存在一個(gè)理想的實(shí)現(xiàn),正如柏拉圖心中那個(gè)最圓的圓,當(dāng)然現(xiàn)有的深度學(xué)習(xí)框架還相距甚遠(yuǎn);(4)各行各業(yè)的公司,只要有數(shù)據(jù)驅(qū)動的業(yè)務(wù),最終都需要一個(gè)自己的“大腦”,這種“大腦”不應(yīng)該只被少數(shù)巨頭公司獨(dú)享。
歡迎加入本站公開興趣群商業(yè)智能與數(shù)據(jù)分析群
興趣范圍包括各種讓數(shù)據(jù)產(chǎn)生價(jià)值的辦法,實(shí)際應(yīng)用案例分享與討論,分析工具,ETL工具,數(shù)據(jù)倉庫,數(shù)據(jù)挖掘工具,報(bào)表系統(tǒng)等全方位知識
QQ群:81035754
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/4715.html
摘要:如果將小磁針看作神經(jīng)元,磁針狀態(tài)看作激發(fā)與抑制,也可以用來構(gòu)建深度學(xué)習(xí)的模型,或者玻爾茲曼機(jī)。這么多的基礎(chǔ)理論,展現(xiàn)了深度學(xué)習(xí)中的無處不在的物理本質(zhì)。 最近朋友圈里有大神分享薛定諤的滾,一下子火了,當(dāng)一個(gè)妹子叫你滾的時(shí)候,你永遠(yuǎn)不知道她是在叫你滾還是叫你過來抱緊,這確實(shí)是一種十分糾結(jié)的狀態(tài),而薛定諤是搞不清楚的,他連自己的貓是怎么回事還沒有弄清楚。雖然人們對于薛定諤頭腦中那只被放射性物質(zhì)殘害...
摘要:經(jīng)過近兩個(gè)小時(shí)的討論,很不幸我們得出了最后的結(jié)論在國內(nèi)互聯(lián)網(wǎng)發(fā)展的這年間,短平快的發(fā)展模式造成了中國軟件工程領(lǐng)域架構(gòu)師的嚴(yán)重?cái)鄬?。中國真正的架?gòu)師在哪里在和產(chǎn)品組里的同學(xué)的討論過程中。 點(diǎn)擊上方藍(lán)色字體,選擇設(shè)為星標(biāo) 回復(fù)面試獲取更多驚喜 背景 我先說下這篇文章的背景。 放假前的晚上,...
摘要:百度世界發(fā)布劃時(shí)代產(chǎn)品,軟硬件結(jié)合更懂智能生活月日,百度世界大會在北京盛大舉行。百度已與一汽集團(tuán)簽署戰(zhàn)略合作協(xié)議,共同推動該項(xiàng)技術(shù)產(chǎn)品落地。渡鴉在會上同時(shí)公布了另外兩款即將面世的產(chǎn)品。 百度世界發(fā)布劃時(shí)代產(chǎn)品,軟硬件結(jié)合更懂智能生活 11 月 16 日,2017 百度世界大會在北京盛大舉行。百度在會上發(fā)布了手機(jī)百度 10.0 和全新人工智能硬件Raven H等軟硬件產(chǎn)品。百度董事長兼首...
閱讀 2677·2021-11-24 09:38
閱讀 1987·2019-08-30 15:53
閱讀 1247·2019-08-30 15:44
閱讀 3240·2019-08-30 14:10
閱讀 3591·2019-08-29 16:29
閱讀 1810·2019-08-29 16:23
閱讀 1108·2019-08-29 16:20
閱讀 1479·2019-08-29 11:13