作者 | 老石,博士畢業(yè)于倫敦帝國理工大學(xué)電子工程系,現(xiàn)任某知名半導(dǎo)體公司高級FPGA研發(fā)工程師,深耕于FPGA的數(shù)據(jù)中心網(wǎng)絡(luò)加速、網(wǎng)絡(luò)功能虛擬化、高速有線網(wǎng)絡(luò)通信等領(lǐng)域的研發(fā)和創(chuàng)新工作。曾經(jīng)針對FPGA、高性能與可重構(gòu)計(jì)算等技術(shù)在學(xué)術(shù)界頂級會議和期刊上發(fā)表過多篇研究論文。
很多世界頂尖的“建筑師”可能是你從未聽說過的人,他們設(shè)計(jì)并創(chuàng)造出了很多你可能從未見過的神奇結(jié)構(gòu),比如在芯片內(nèi)部源于沙子的復(fù)雜體系。如果你使用手機(jī)、電腦,或者通過互聯(lián)網(wǎng)收發(fā)信息,那么你就無時(shí)無刻不在受益于這些建筑師們的偉大工作。
Doug Burger博士就是這群“建筑師”里的一員。他現(xiàn)任微軟技術(shù)院士(Technical Fellow),曾任微軟研究院杰出工程師、德克薩斯大學(xué)奧斯丁分校計(jì)算機(jī)科學(xué)教授。他也是微軟FPGA項(xiàng)目Catapult和Brainwave的首席架構(gòu)師和主要負(fù)責(zé)人。2018年,Doug Burger在微軟研究院的播客里分享了他對后摩爾定律時(shí)代芯片產(chǎn)業(yè)發(fā)展的觀點(diǎn)與愿景,并展望了人工智能時(shí)代芯片技術(shù)的前進(jìn)方向。
老石對他的觀點(diǎn)進(jìn)行了整理和采編。本文主要是Doug Burger博士對FPGA在人工智能時(shí)代的獨(dú)特優(yōu)勢的全面分析,以及他對于人工智能技術(shù)發(fā)展的深刻思考。文章很長,但全部是他幾十年從業(yè)經(jīng)驗(yàn)的深入淺出的闡述,盡顯大師之風(fēng),值得一讀。
目 錄
1. 什么是暗硅效應(yīng)
2. FPGA:解決暗硅效應(yīng)的有效途徑
3. 使用FPGA的獨(dú)特優(yōu)勢是什么
4. 什么是Catapult項(xiàng)目
5. 腦波項(xiàng)目與實(shí)時(shí)AI
6. 評價(jià)實(shí)時(shí)AI系統(tǒng)的主要標(biāo)準(zhǔn)
7. AI未來的發(fā)展路在何方?
1. 什么是暗硅效應(yīng)
在我加入微軟之前,我和我的博士生Hadi Esmaeilzadeh正在開展一系列研究工作。他現(xiàn)在已經(jīng)是加州大學(xué)圣地亞哥分校的副教授。在當(dāng)時(shí),學(xué)術(shù)界和業(yè)界的主要發(fā)展趨勢就是多核心架構(gòu)。雖然尚未完全成為一個(gè)正式的全球性共識,但多核架構(gòu)是當(dāng)時(shí)非常熱門的研究方向。人們認(rèn)為,如果可以找到編寫和運(yùn)行并行軟件的方法,我們就能直接將處理器架構(gòu)擴(kuò)展到數(shù)千個(gè)核心。然而,Hadi和我卻對此不以為然。
于是,我們在2011年發(fā)表了一篇論文,并因此獲得了很高的知名度。雖然在那篇論文里沒有明確的定義“暗硅(dark silicon)”這個(gè)詞,但是它的意義卻得到了廣泛認(rèn)可。
暗硅效應(yīng)指的是,雖然我們可以不斷增加處理器核心的數(shù)量,但是由于能耗限制,無法讓它們同時(shí)工作。就好像一幢大樓里有很多房間,但由于功耗太大,你無法點(diǎn)亮每個(gè)房間的燈光,使得這幢大樓在夜里看起來有很多黑暗的部分。這其中的本質(zhì)原因是在后摩爾定律時(shí)代,晶體管的能效發(fā)展已經(jīng)趨于停滯。
(暗硅示意圖,圖片來自NYU)
這樣,即使人們開發(fā)出了并行軟件,并且不斷增加了核心數(shù)量,所帶來的性能提升也會比以往要小得多。所以,除此之外,業(yè)界還需要在其他方面帶來更多進(jìn)展,以克服“暗硅”的問題。
2. FPGA:解決暗硅效應(yīng)的有效途徑
在我看來,一個(gè)可行的解決方法就是采用“定制計(jì)算”,也就是為特定的工作場景和負(fù)載優(yōu)化硬件設(shè)計(jì)。然而,定制計(jì)算或定制芯片的主要問題就是高昂的成本。例如對于一個(gè)復(fù)雜的云計(jì)算場景,不論是設(shè)計(jì)者還是使用者都不會采用一個(gè)由47000種不同的芯片所組成的系統(tǒng)。
因此,我們將賭注押在了這個(gè)名叫FPGA的芯片上。FPGA全名叫“現(xiàn)場可編程邏輯陣列”,它本質(zhì)是一種可編程的芯片。人們可以把硬件設(shè)計(jì)重復(fù)燒寫在它的可編程存儲器里,從而使FPGA芯片可以執(zhí)行不同的硬件設(shè)計(jì)和功能。另外,你也可以在使用現(xiàn)場動態(tài)的改變它上面運(yùn)行的功能,這就是為什么它們被稱作“現(xiàn)場可編程”的原因。事實(shí)上,你可以每隔幾秒就改變一次FPGA芯片上運(yùn)行的硬件設(shè)計(jì),因此這種芯片非常靈活。
(英特爾Stratix 10 FPGA芯片,圖片來自英特爾)
基于這些特點(diǎn),我們在FPGA這項(xiàng)技術(shù)上押下重注,并且將其廣泛的部署到了微軟的云數(shù)據(jù)中心里。與此同時(shí),我們也開始將很多重要的應(yīng)用和功能,從基于軟件的實(shí)現(xiàn)方式,慢慢轉(zhuǎn)移到基于FPGA的硬件實(shí)現(xiàn)方式上??梢哉f,這是一個(gè)非常有趣的計(jì)算架構(gòu),它也將是我們的基于定制化硬件的通用計(jì)算平臺。
通過使用FPGA,我們一方面可以盡早開展定制化計(jì)算與定制芯片的研究與設(shè)計(jì),另一方面,我們可以保持與現(xiàn)有架構(gòu)相互兼容的同構(gòu)性。
如果具體的應(yīng)用場景或算法發(fā)展的太快,或者硬件規(guī)模太小的時(shí)候,我們可以繼續(xù)使用FPGA實(shí)現(xiàn)這些硬件功能。當(dāng)應(yīng)用規(guī)模逐漸擴(kuò)大時(shí),我們可以在合適的時(shí)機(jī),選擇將這些已經(jīng)成熟的定制化硬件設(shè)計(jì)直接轉(zhuǎn)化成定制化芯片,以提高它們的穩(wěn)定性,降低功耗和成本。
靈活性是FPGA最重要的特點(diǎn)。要知道,F(xiàn)PGA芯片已經(jīng)在電信領(lǐng)域中得到了非常廣泛的使用。這種芯片非常擅長對數(shù)據(jù)流進(jìn)行快速處理,同時(shí)也被用于流片前的功能測試等。但是在云計(jì)算中,之前并沒有人能夠真正成功的大規(guī)模部署FPGA。我指的“部署”,并不是指那些用來作為原型設(shè)計(jì)或概念驗(yàn)證的工作,而是指真正的用于工業(yè)級使用的部署。
3. 使用FPGA的獨(dú)特優(yōu)勢是什么
首先我想說的是,CPU和GPU都是令人驚嘆的計(jì)算機(jī)架構(gòu),它們是為了不同的工作負(fù)載與應(yīng)用場景而設(shè)計(jì)的。
CPU是一種非常通用的架構(gòu),它的工作方式基于一系列的計(jì)算機(jī)指令,也稱為“指令集”。簡單來說,CPU從內(nèi)存中提取一小部分?jǐn)?shù)據(jù),放在寄存器或者緩存中,然后使用一系列指令對這些數(shù)據(jù)進(jìn)行操作。操作完畢后,將數(shù)據(jù)寫回內(nèi)存,提取另一小部分?jǐn)?shù)據(jù),再用指令進(jìn)行操作,并周而復(fù)始。我把這種計(jì)算方式稱為“時(shí)域計(jì)算”。
不過,如果這些需要用指令進(jìn)行處理的數(shù)據(jù)集太大,或者這些數(shù)據(jù)值太大,那么CPU就不能很高效地應(yīng)對這種情況。這就是為什么在處理高速網(wǎng)絡(luò)流量的時(shí)候,我們往往需要使用定制芯片,比如網(wǎng)卡芯片等,而不是CPU。這是因?yàn)樵贑PU中,即使處理一個(gè)字節(jié)的數(shù)據(jù)也必須使用一堆指令才能完成,而當(dāng)數(shù)據(jù)流以每秒125億字節(jié)進(jìn)入系統(tǒng)時(shí),這種處理方式哪怕使用再多的線程也忙不過來。
對于GPU來說,它所擅長的是被稱作“單指令多數(shù)據(jù)流(SIMD)”的并行處理。這種處理方式的本質(zhì)是,在GPU中有著一堆相同的計(jì)算核心,可以處理類似但并不是完全相同的數(shù)據(jù)集。因此,可以使用一條指令,就讓這些計(jì)算核心執(zhí)行相同的操作,并且平行的處理所有數(shù)據(jù)。
然后對于FPGA而言,它實(shí)際上是CPU計(jì)算模型的轉(zhuǎn)置。與其將數(shù)據(jù)鎖定在架構(gòu)上,然后使用指令流對其處理,F(xiàn)PGA將“指令”鎖定在架構(gòu)上,然后在上面運(yùn)行數(shù)據(jù)流。
(CPU與FPGA計(jì)算模型的對比,圖片來自微軟)
我把這種計(jì)算方式稱為“結(jié)構(gòu)計(jì)算”,也有人稱之為“空間計(jì)算”,與CPU的“時(shí)域計(jì)算”模型相對應(yīng)。其實(shí)叫什么名稱都無所謂,但它的核心思想是,將某種計(jì)算架構(gòu)用硬件電路實(shí)現(xiàn)出來,然后持續(xù)的將數(shù)據(jù)流輸入系統(tǒng),并完成計(jì)算。在云計(jì)算中,這種架構(gòu)對于高速傳輸?shù)木W(wǎng)絡(luò)數(shù)據(jù)非常有效,并且對于CPU來說也是一個(gè)很好的補(bǔ)充。
4. 什么是Catapult項(xiàng)目
Catapult項(xiàng)目的主要目的是在微軟的云數(shù)據(jù)中心大規(guī)模部署FPGA。雖然這個(gè)項(xiàng)目涵蓋了電路和系統(tǒng)架構(gòu)設(shè)計(jì)等工程實(shí)踐,但它的本質(zhì)還是一個(gè)研究項(xiàng)目。
在2015年末,我們開始在微軟購買的幾乎每臺新服務(wù)器上部署Catapult FPGA板卡。這些服務(wù)器被用于微軟的必應(yīng)搜索、Azure云服務(wù)以及其他應(yīng)用。到目前為止,我們已經(jīng)發(fā)展到了非常大的規(guī)模,F(xiàn)PGA已經(jīng)在世界范圍內(nèi)被大規(guī)模部署。這也使得微軟成為了世界上最大的FPGA客戶之一。
(Catapult FPGA板卡,圖片來自微軟)
在微軟內(nèi)部,很多團(tuán)隊(duì)都在使用Catapult FPGA來增強(qiáng)自己的服務(wù)。同時(shí),我們使用FPGA對云計(jì)算的諸多網(wǎng)絡(luò)功能進(jìn)行加速,這樣我們的客戶會得到比以往更加快速、穩(wěn)定、安全的云計(jì)算和網(wǎng)絡(luò)服務(wù)。比如,當(dāng)網(wǎng)絡(luò)數(shù)據(jù)包以每秒500億比特的速度進(jìn)行傳輸時(shí),我們可以使用FPGA對這些數(shù)據(jù)包進(jìn)行控制、分類和改寫。相反的,如果我們使用CPU來做這些事情的話,將需要海量的CPU內(nèi)核資源。因此,對于我們這樣的應(yīng)用場景,F(xiàn)PGA是一個(gè)更好的選擇。
(微軟的FPGA板卡,圖片來自微軟)
5. 腦波項(xiàng)目與實(shí)時(shí)AI
當(dāng)前,人工智能有了很大的發(fā)展,而這很大程度上歸功于深度學(xué)習(xí)技術(shù)的發(fā)展。人們逐漸認(rèn)識到,當(dāng)你有了深度學(xué)習(xí)算法、模型,并構(gòu)建了深度神經(jīng)網(wǎng)絡(luò)時(shí),需要足夠多的數(shù)據(jù)去訓(xùn)練這個(gè)網(wǎng)絡(luò)。只有加入更多的數(shù)據(jù),才會讓深度神經(jīng)網(wǎng)絡(luò)變的更大、更好。通過使用深度學(xué)習(xí),我們在很多傳統(tǒng)的AI領(lǐng)域取得了長足的進(jìn)展,比如機(jī)器翻譯、語音識別、計(jì)算機(jī)視覺等等。同時(shí),深度學(xué)習(xí)也可以逐步替換這些領(lǐng)域發(fā)展多年的專用算法。
這些巨大的發(fā)展和變革,促使我思考它們對半導(dǎo)體和芯片架構(gòu)的影響。于是,我們開始重點(diǎn)布局針對AI、機(jī)器學(xué)習(xí)、特別是深度學(xué)習(xí)的定制化硬件架構(gòu),這也就是腦波項(xiàng)目(Project Brainwave)產(chǎn)生的主要背景。
在腦波項(xiàng)目里,我們提出了一種深度神經(jīng)網(wǎng)絡(luò)處理器,也有人稱之為神經(jīng)處理單元,或者NPU(Neural Processing Unit)。對于像必應(yīng)搜索這樣的應(yīng)用來說,他們需要很強(qiáng)的計(jì)算能力,因?yàn)橹挥胁粩鄬W(xué)習(xí)和訓(xùn)練,才能向用戶提供更優(yōu)的搜索結(jié)果。因此,我們將大的深度神經(jīng)網(wǎng)絡(luò)利用FPGA進(jìn)行加速,并在很短的時(shí)間內(nèi)返回結(jié)果。目前,這種計(jì)算架構(gòu)已經(jīng)在全球范圍內(nèi)運(yùn)行了一段時(shí)間。在2018年的微軟開發(fā)者大會上,我們正式發(fā)布了腦波項(xiàng)目在Azure云服務(wù)上的預(yù)覽版。我們也為一些用戶提供帶有FPGA的板卡,使他們可以使用自己公司的服務(wù)器,從Azure上獲取AI模型并運(yùn)行。
(Brainwave FPGA板卡,圖片來自微軟)
對于腦波項(xiàng)目來說,另外一個(gè)非常重要的問題在于神經(jīng)網(wǎng)絡(luò)的推斷。目前的很多技術(shù)使用的是一種叫做批處理的方法。比如說,你需要將很多個(gè)不同的請求收集到一起,然后打包發(fā)送到NPU進(jìn)行處理,然后一次性得到所有的答案。
對于這種情形,我經(jīng)常把它比喻成你在銀行里排隊(duì),你排在第二個(gè),但總共有100個(gè)人排隊(duì)。出納員將所有人的信息收集起來,并詢問每個(gè)人想要辦什么業(yè)務(wù),然后取錢存錢,再把錢和收據(jù)發(fā)給每個(gè)人。這樣每個(gè)人的業(yè)務(wù)都在同一時(shí)刻完成,而這就是所謂的批處理。
對于批處理應(yīng)用來說,可以達(dá)到很好的吞吐量,但是往往會有很高的延時(shí)。這就是我們?yōu)槭裁丛趪L試推動實(shí)時(shí)AI的發(fā)展。
6. 評價(jià)實(shí)時(shí)AI系統(tǒng)的主要標(biāo)準(zhǔn)
評價(jià)實(shí)時(shí)AI的主要性能指標(biāo)之一,就是延時(shí)的大小。然而,延時(shí)到底多小才算“夠小”,這更像是一個(gè)哲學(xué)問題。事實(shí)上,這取決于具體的應(yīng)用場景。比如,如果在網(wǎng)絡(luò)上監(jiān)控并接收多個(gè)信號,并從中分析哪個(gè)地方發(fā)生了緊急情況,那么幾分鐘的時(shí)間就算夠快了。然而,如果你正在和某人通過網(wǎng)絡(luò)進(jìn)行交談,哪怕是非常小的延時(shí)和卡頓也會影響通話質(zhì)量,就像很多電視直播采訪里經(jīng)常出現(xiàn)的兩個(gè)人在同時(shí)講話那樣。
另外一個(gè)例子是,微軟的另一項(xiàng)人工智能技術(shù)是所謂的HPU,它被用于HoloLens設(shè)備中。HoloLens是一款智能眼鏡,它能提供混合現(xiàn)實(shí)和增強(qiáng)現(xiàn)實(shí)等功能,它里面的HPU也具備神經(jīng)網(wǎng)絡(luò)的處理功能。
(宇航員Scott Kelly在國際空間站上使用HoloLens,圖片來自NASA)
對于HPU,它需要實(shí)時(shí)分析使用者周圍的環(huán)境,這樣才能在你環(huán)顧四周時(shí),無縫的展示虛擬現(xiàn)實(shí)的內(nèi)容。因此在這種情況下,即使延時(shí)只有幾個(gè)毫秒,也會對使用者的體驗(yàn)造成影響。
除了速度之外,另一個(gè)需要考慮的重要因素就是成本。舉例來說,如果你希望通過處理數(shù)十億張圖像或數(shù)百萬行文本,進(jìn)而分析和總結(jié)出人們常問的問題或者可能在尋找的答案,就像很多搜索引擎做的那樣;抑或是醫(yī)生想要從很多放射掃描影像中尋找潛在的癌癥指征,那么對于這些類型的應(yīng)用來說,服務(wù)成本就非常重要。在很多情況下,我們需要權(quán)衡以下兩點(diǎn),一個(gè)是系統(tǒng)的處理速度有多快,或者通過何種方式能提升處理速度;另一個(gè)就是對于每個(gè)服務(wù)請求或處理,它的成本有多少。
很多情況下,增加系統(tǒng)的處理速度勢必代表著更多的投入和成本的攀升,兩者很難同時(shí)滿足。但這就是腦波項(xiàng)目的主要優(yōu)勢所在,通過使用FPGA,我認(rèn)為我們在這兩個(gè)方面都處于非常有利的位置。在性能方面我們是最快的,在成本上我們大概率也是最便宜的。
7. AI未來的發(fā)展路在何方?
說實(shí)話,我一點(diǎn)也不擔(dān)心人工智能的末日。相比任意一種現(xiàn)有的生物系統(tǒng)的智能,人工智能的效率還差著成千上萬倍的距離??梢哉f,我們現(xiàn)在的AI其實(shí)并不算怎么“智能”。另外,我們也需要在道德層面關(guān)注和掌控AI的發(fā)展。
不管怎樣,我們的工作從某種程度上提高了計(jì)算的效率,這使得它可以用來幫助解決重大的科學(xué)問題,我對此有很強(qiáng)的成就感。
對于那些正在考慮從事硬件系統(tǒng)和計(jì)算機(jī)架構(gòu)研究的人來說,最重要的就是找到那顆能讓你充滿激情并為之不懈奮斗的“北極星”,然后不顧一切的為之努力。一定要找到那種打了雞血的感覺,不用擔(dān)心太多諸如職業(yè)規(guī)劃、工作選擇等問題,要相信車到山前必有路。你在做的工作,應(yīng)該能讓你感受到它真正能帶來變革,并幫助你在變革的道路上不斷前行。
當(dāng)前,人們已經(jīng)開始意識到,在我說的這些“后·馮諾依曼時(shí)代”的異構(gòu)加速器之外,還有遠(yuǎn)比這些更加深刻的東西等待我們探尋。我們已經(jīng)接近了摩爾定律的終點(diǎn),而基于馮諾依曼體系的計(jì)算架構(gòu)也已經(jīng)存在了相當(dāng)長的時(shí)間。自從馮諾依曼在上世紀(jì)四十年代發(fā)明了這種計(jì)算架構(gòu)以來,它已經(jīng)取得了驚人的成功。
但是現(xiàn)在,除了這種計(jì)算結(jié)構(gòu)外,又產(chǎn)生了各種硬件加速器,以及許多人們正在開發(fā)的新型架構(gòu),但是從整體上來看,這些新結(jié)構(gòu)都處在一個(gè)比較混亂的狀態(tài)。
我認(rèn)為,在這個(gè)混亂的表象之下,還隱藏著更加深刻的真理,而這將會是人們在下個(gè)階段的最重要發(fā)現(xiàn),這也是我目前經(jīng)常在思考的問題。
我慢慢發(fā)現(xiàn),那些可能已經(jīng)普遍存在的東西會是計(jì)算架構(gòu)的下一個(gè)巨大飛躍。當(dāng)然,我也可能完全錯(cuò)了,但這就是科學(xué)研究的樂趣所在。
-
FPGA
+關(guān)注
關(guān)注
1629文章
21738瀏覽量
603464 -
存儲器
+關(guān)注
關(guān)注
38文章
7492瀏覽量
163854 -
人工智能
+關(guān)注
關(guān)注
1791文章
47282瀏覽量
238536
原文標(biāo)題:FPGA在人工智能時(shí)代的獨(dú)特優(yōu)勢
文章出處:【微信號:rgznai100,微信公眾號:rgznai100】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論