《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 業(yè)界動態(tài) > FPGA在人工智能時代的獨特優(yōu)勢

FPGA在人工智能時代的獨特優(yōu)勢

2019-02-27
關(guān)鍵詞: 人工智能 芯片 FPGA AI

很多世界頂尖的“建筑師”可能是你從未聽說過的人,他們設(shè)計并創(chuàng)造出了很多你可能從未見過的神奇結(jié)構(gòu),比如在芯片內(nèi)部源于沙子的復(fù)雜體系。如果你使用手機、電腦,或者通過互聯(lián)網(wǎng)收發(fā)信息,那么你就無時無刻不在受益于這些建筑師們的偉大工作。


Doug Burger博士就是這群“建筑師”里的一員。他現(xiàn)任微軟技術(shù)院士(Technical Fellow),曾任微軟研究院杰出工程師、德克薩斯大學(xué)奧斯丁分校計算機科學(xué)教授。他也是微軟FPGA項目Catapult和Brainwave的首席架構(gòu)師和主要負責(zé)人。2018年,Doug Burger在微軟研究院的播客里分享了他對后摩爾定律時代芯片產(chǎn)業(yè)發(fā)展的觀點與愿景,并展望了人工智能時代芯片技術(shù)的前進方向。

微信圖片_20190227215659.jpg

(Doug Burger博士,圖片來自微軟)


老石對他的觀點進行了整理和采編。第一篇在這里。本文是第二篇,主要是Doug Burger博士對FPGA在人工智能時代的獨特優(yōu)勢的全面分析,以及他對于人工智能技術(shù)發(fā)展的深刻思考。文章很長,但全部是他幾十年從業(yè)經(jīng)驗的深入淺出的闡述,盡顯大師之風(fēng),值得一讀。


注,下文中的“我”,指的都是Doug Burger博士。


目 錄

1. 什么是暗硅效應(yīng)

2. FPGA:解決暗硅效應(yīng)的有效途徑

3. 使用FPGA的獨特優(yōu)勢是什么

4. 什么是Catapult項目

5. 腦波項目與實時AI

6. 評價實時AI系統(tǒng)的主要標準

7. AI未來的發(fā)展路在何方?


1. 什么是暗硅效應(yīng)

在我加入微軟之前,我和我的博士生Hadi Esmaeilzadeh正在開展一系列研究工作。他現(xiàn)在已經(jīng)是加州大學(xué)圣地亞哥分校的副教授。在當時,學(xué)術(shù)界和業(yè)界的主要發(fā)展趨勢就是多核心架構(gòu)。雖然尚未完全成為一個正式的全球性共識,但多核架構(gòu)是當時非常熱門的研究方向。人們認為,如果可以找到編寫和運行并行軟件的方法,我們就能直接將處理器架構(gòu)擴展到數(shù)千個核心。然而,Hadi和我卻對此不以為然。


于是,我們在2011年發(fā)表了一篇論文,并因此獲得了很高的知名度。雖然在那篇論文里沒有明確的定義“暗硅(dark silicon)”這個詞,但是它的意義卻得到了廣泛認可。


暗硅效應(yīng)指的是,雖然我們可以不斷增加處理器核心的數(shù)量,但是由于能耗限制,無法讓它們同時工作。就好像一幢大樓里有很多房間,但由于功耗太大,你無法點亮每個房間的燈光,使得這幢大樓在夜里看起來有很多黑暗的部分。這其中的本質(zhì)原因是在后摩爾定律時代,晶體管的能效發(fā)展已經(jīng)趨于停滯。

微信圖片_20190227215718.jpg

(暗硅示意圖,圖片來自NYU)


這樣,即使人們開發(fā)出了并行軟件,并且不斷增加了核心數(shù)量,所帶來的性能提升也會比以往要小得多。所以,除此之外,業(yè)界還需要在其他方面帶來更多進展,以克服“暗硅”的問題。


2. FPGA:解決暗硅效應(yīng)的有效途徑

在我看來,一個可行的解決方法就是采用“定制計算”,也就是為特定的工作場景和負載優(yōu)化硬件設(shè)計。然而,定制計算或定制芯片的主要問題就是高昂的成本。例如對于一個復(fù)雜的云計算場景,不論是設(shè)計者還是使用者都不會采用一個由47000種不同的芯片所組成的系統(tǒng)。


因此,我們將賭注押在了這個名叫FPGA的芯片上。FPGA全名叫“現(xiàn)場可編程邏輯陣列”,它本質(zhì)是一種可編程的芯片。人們可以把硬件設(shè)計重復(fù)燒寫在它的可編程存儲器里,從而使FPGA芯片可以執(zhí)行不同的硬件設(shè)計和功能。另外,你也可以在使用現(xiàn)場動態(tài)的改變它上面運行的功能,這就是為什么它們被稱作“現(xiàn)場可編程”的原因。事實上,你可以每隔幾秒就改變一次FPGA芯片上運行的硬件設(shè)計,因此這種芯片非常靈活。

微信圖片_20190227215739.jpg

(英特爾Stratix 10 FPGA芯片,圖片來自英特爾)


基于這些特點,我們在FPGA這項技術(shù)上押下重注,并且將其廣泛的部署到了微軟的云數(shù)據(jù)中心里。與此同時,我們也開始將很多重要的應(yīng)用和功能,從基于軟件的實現(xiàn)方式,慢慢轉(zhuǎn)移到基于FPGA的硬件實現(xiàn)方式上。可以說,這是一個非常有趣的計算架構(gòu),它也將是我們的基于定制化硬件的通用計算平臺。


通過使用FPGA,我們一方面可以盡早開展定制化計算與定制芯片的研究與設(shè)計,另一方面,我們可以保持與現(xiàn)有架構(gòu)相互兼容的同構(gòu)性。


如果具體的應(yīng)用場景或算法發(fā)展的太快,或者硬件規(guī)模太小的時候,我們可以繼續(xù)使用FPGA實現(xiàn)這些硬件功能。當應(yīng)用規(guī)模逐漸擴大時,我們可以在合適的時機,選擇將這些已經(jīng)成熟的定制化硬件設(shè)計直接轉(zhuǎn)化成定制化芯片,以提高它們的穩(wěn)定性,降低功耗和成本。


靈活性是FPGA最重要的特點。要知道,F(xiàn)PGA芯片已經(jīng)在電信領(lǐng)域中得到了非常廣泛的使用。這種芯片非常擅長對數(shù)據(jù)流進行快速處理,同時也被用于流片前的功能測試等。但是在云計算中,之前并沒有人能夠真正成功的大規(guī)模部署FPGA。我指的“部署”,并不是指那些用來作為原型設(shè)計或概念驗證的工作,而是指真正的用于工業(yè)級使用的部署。


3. 使用FPGA的獨特優(yōu)勢是什么

首先我想說的是,CPU和GPU都是令人驚嘆的計算機架構(gòu),它們是為了不同的工作負載與應(yīng)用場景而設(shè)計的。


CPU是一種非常通用的架構(gòu),它的工作方式基于一系列的計算機指令,也稱為“指令集”。簡單來說,CPU從內(nèi)存中提取一小部分數(shù)據(jù),放在寄存器或者緩存中,然后使用一系列指令對這些數(shù)據(jù)進行操作。操作完畢后,將數(shù)據(jù)寫回內(nèi)存,提取另一小部分數(shù)據(jù),再用指令進行操作,并周而復(fù)始。我把這種計算方式稱為“時域計算”。


不過,如果這些需要用指令進行處理的數(shù)據(jù)集太大,或者這些數(shù)據(jù)值太大,那么CPU就不能很高效的應(yīng)對這種情況。這就是為什么在處理高速網(wǎng)絡(luò)流量的時候,我們往往需要使用定制芯片,比如網(wǎng)卡芯片等,而不是CPU。這是因為在CPU中,即使處理一個字節(jié)的數(shù)據(jù)也必須使用一堆指令才能完成,而當數(shù)據(jù)流以每秒125億字節(jié)進入系統(tǒng)時,這種處理方式哪怕使用再多的線程也忙不過來。


對于GPU來說,它所擅長的是被稱作“單指令多數(shù)據(jù)流(SIMD)”的并行處理。這種處理方式的本質(zhì)是,在GPU中有著一堆相同的計算核心,可以處理類似但并不是完全相同的數(shù)據(jù)集。因此,可以使用一條指令,就讓這些計算核心執(zhí)行相同的操作,并且平行的處理所有數(shù)據(jù)。


然后對于FPGA而言,它實際上是CPU計算模型的轉(zhuǎn)置。與其將數(shù)據(jù)鎖定在架構(gòu)上,然后使用指令流對其處理,F(xiàn)PGA將“指令”鎖定在架構(gòu)上,然后在上面運行數(shù)據(jù)流。

微信圖片_20190227215754.jpg

(CPU與FPGA計算模型的對比,圖片來自微軟)


我把這種計算方式稱為“結(jié)構(gòu)計算”,也有人稱之為“空間計算”,與CPU的“時域計算”模型相對應(yīng)。其實叫什么名稱都無所謂,但它的核心思想是,將某種計算架構(gòu)用硬件電路實現(xiàn)出來,然后持續(xù)的將數(shù)據(jù)流輸入系統(tǒng),并完成計算。在云計算中,這種架構(gòu)對于高速傳輸?shù)木W(wǎng)絡(luò)數(shù)據(jù)非常有效,并且對于CPU來說也是一個很好的補充。


4. 什么是Catapult項目

Catapult項目的主要目的是在微軟的云數(shù)據(jù)中心大規(guī)模部署FPGA。雖然這個項目涵蓋了電路和系統(tǒng)架構(gòu)設(shè)計等工程實踐,但它的本質(zhì)還是一個研究項目。


在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客戶之一。

微信圖片_20190227215816.jpg

(Catapult FPGA板卡,圖片來自微軟)


在微軟內(nèi)部,很多團隊都在使用Catapult FPGA來增強自己的服務(wù)。同時,我們使用FPGA對云計算的諸多網(wǎng)絡(luò)功能進行加速,這樣我們的客戶會得到比以往更加快速、穩(wěn)定、安全的云計算和網(wǎng)絡(luò)服務(wù)。比如,當網(wǎng)絡(luò)數(shù)據(jù)包以每秒500億比特的速度進行傳輸時,我們可以使用FPGA對這些數(shù)據(jù)包進行控制、分類和改寫。相反的,如果我們使用CPU來做這些事情的話,將需要海量的CPU內(nèi)核資源。因此,對于我們這樣的應(yīng)用場景,F(xiàn)PGA是一個更好的選擇。

微信圖片_20190227215844.jpg

(微軟的FPGA板卡,圖片來自微軟)


5. 腦波項目與實時AI

當前,人工智能有了很大的發(fā)展,而這很大程度上歸功于深度學(xué)習(xí)技術(shù)的發(fā)展。人們逐漸認識到,當你有了深度學(xué)習(xí)算法、模型,并構(gòu)建了深度神經(jīng)網(wǎng)絡(luò)時,需要足夠多的數(shù)據(jù)去訓(xùn)練這個網(wǎng)絡(luò)。只有加入更多的數(shù)據(jù),才會讓深度神經(jīng)網(wǎng)絡(luò)變的更大、更好。通過使用深度學(xué)習(xí),我們在很多傳統(tǒng)的AI領(lǐng)域取得了長足的進展,比如機器翻譯、語音識別、計算機視覺等等。同時,深度學(xué)習(xí)也可以逐步替換這些領(lǐng)域發(fā)展多年的專用算法。


這些巨大的發(fā)展和變革,促使我思考它們對半導(dǎo)體和芯片架構(gòu)的影響。于是,我們開始重點布局針對AI、機器學(xué)習(xí)、特別是深度學(xué)習(xí)的定制化硬件架構(gòu),這也就是腦波項目(Project Brainwave)產(chǎn)生的主要背景。


在腦波項目里,我們提出了一種深度神經(jīng)網(wǎng)絡(luò)處理器,也有人稱之為神經(jīng)處理單元,或者NPU(Neural Processing Unit)。對于像必應(yīng)搜索這樣的應(yīng)用來說,他們需要很強的計算能力,因為只有不斷學(xué)習(xí)和訓(xùn)練,才能向用戶提供更優(yōu)的搜索結(jié)果。因此,我們將大的深度神經(jīng)網(wǎng)絡(luò)利用FPGA進行加速,并在很短的時間內(nèi)返回結(jié)果。目前,這種計算架構(gòu)已經(jīng)在全球范圍內(nèi)運行了一段時間。在2018年的微軟開發(fā)者大會上,我們正式發(fā)布了腦波項目在Azure云服務(wù)上的預(yù)覽版。我們也為一些用戶提供帶有FPGA的板卡,使他們可以使用自己公司的服務(wù)器,從Azure上獲取AI模型并運行。

微信圖片_20190227215902.jpg

(Brainwave FPGA板卡,圖片來自微軟)


對于腦波項目來說,另外一個非常重要的問題在于神經(jīng)網(wǎng)絡(luò)的推斷。目前的很多技術(shù)使用的是一種叫做批處理的方法。比如說,你需要將很多個不同的請求收集到一起,然后打包發(fā)送到NPU進行處理,然后一次性得到所有的答案。


對于這種情形,我經(jīng)常把它比喻成你在銀行里排隊,你排在第二個,但總共有100個人排隊。出納員將所有人的信息收集起來,并詢問每個人想要辦什么業(yè)務(wù),然后取錢存錢,再把錢和收據(jù)發(fā)給每個人。這樣每個人的業(yè)務(wù)都在同一時刻完成,而這就是所謂的批處理。


對于批處理應(yīng)用來說,可以達到很好的吞吐量,但是往往會有很高的延時。這就是我們?yōu)槭裁丛趪L試推動實時AI的發(fā)展。


6. 評價實時AI系統(tǒng)的主要標準

評價實時AI的主要性能指標之一,就是延時的大小。然而,延時到底多小才算“夠小”,這更像是一個哲學(xué)問題。事實上,這取決于具體的應(yīng)用場景。比如,如果在網(wǎng)絡(luò)上監(jiān)控并接收多個信號,并從中分析哪個地方發(fā)生了緊急情況,那么幾分鐘的時間就算夠快了。然而,如果你正在和某人通過網(wǎng)絡(luò)進行交談,哪怕是非常小的延時和卡頓也會影響通話質(zhì)量,就像很多電視直播采訪里經(jīng)常出現(xiàn)的兩個人在同時講話那樣。


另外一個例子是,微軟的另一項人工智能技術(shù)是所謂的HPU,它被用于HoloLens設(shè)備中。HoloLens是一款智能眼鏡,它能提供混合現(xiàn)實和增強現(xiàn)實等功能,它里面的HPU也具備神經(jīng)網(wǎng)絡(luò)的處理功能。

微信圖片_20190227215921.jpg

(宇航員Scott Kelly在國際空間站上使用HoloLens,圖片來自NASA)


對于HPU,它需要實時分析使用者周圍的環(huán)境,這樣才能在你環(huán)顧四周時,無縫的展示虛擬現(xiàn)實的內(nèi)容。因此在這種情況下,即使延時只有幾個毫秒,也會對使用者的體驗造成影響。


除了速度之外,另一個需要考慮的重要因素就是成本。舉例來說,如果你希望通過處理數(shù)十億張圖像或數(shù)百萬行文本,進而分析和總結(jié)出人們常問的問題或者可能在尋找的答案,就像很多搜索引擎做的那樣;抑或是醫(yī)生想要從很多放射掃描影像中尋找潛在的癌癥指征,那么對于這些類型的應(yīng)用來說,服務(wù)成本就非常重要。在很多情況下,我們需要權(quán)衡以下兩點,一個是系統(tǒng)的處理速度有多快,或者通過何種方式能提升處理速度;另一個就是對于每個服務(wù)請求或處理,它的成本有多少。


很多情況下,增加系統(tǒng)的處理速度勢必代表著更多的投入和成本的攀升,兩者很難同時滿足。但這就是腦波項目的主要優(yōu)勢所在,通過使用FPGA,我認為我們在這兩個方面都處于非常有利的位置。在性能方面我們是最快的,在成本上我們大概率也是最便宜的。


7. AI未來的發(fā)展路在何方?

說實話,我一點也不擔心人工智能的末日。相比任意一種現(xiàn)有的生物系統(tǒng)的智能,人工智能的效率還差著成千上萬倍的距離。可以說,我們現(xiàn)在的AI其實并不算怎么“智能”。另外,我們也需要在道德層面關(guān)注和掌控AI的發(fā)展。


不管怎樣,我們的工作從某種程度上提高了計算的效率,這使得它可以用來幫助解決重大的科學(xué)問題,我對此有很強的成就感。


對于那些正在考慮從事硬件系統(tǒng)和計算機架構(gòu)研究的人來說,最重要的就是找到那顆能讓你充滿激情并為之不懈奮斗的“北極星”,然后不顧一切的為之努力。一定要找到那種打了雞血的感覺,不用擔心太多諸如職業(yè)規(guī)劃、工作選擇等問題,要相信車到山前必有路。你在做的工作,應(yīng)該能讓你感受到它真正能帶來變革,并幫助你在變革的道路上不斷前行。


當前,人們已經(jīng)開始意識到,在我說的這些“后·馮諾依曼時代”的異構(gòu)加速器之外,還有遠比這些更加深刻的東西等待我們探尋。我們已經(jīng)接近了摩爾定律的終點,而基于馮諾依曼體系的計算架構(gòu)也已經(jīng)存在了相當長的時間。自從馮諾依曼在上世紀四十年代發(fā)明了這種計算架構(gòu)以來,它已經(jīng)取得了驚人的成功。


但是現(xiàn)在,除了這種計算結(jié)構(gòu)外,又產(chǎn)生了各種硬件加速器,以及許多人們正在開發(fā)的新型架構(gòu),但是從整體上來看,這些新結(jié)構(gòu)都處在一個比較混亂的狀態(tài)。


我認為,在這個混亂的表象之下,還隱藏著更加深刻的真理,而這將會是人們在下個階段的最重要發(fā)現(xiàn),這也是我目前經(jīng)常在思考的問題。


我慢慢發(fā)現(xiàn),那些可能已經(jīng)普遍存在的東西會是計算架構(gòu)的下一個巨大飛躍。當然,我也可能完全錯了,但這就是科學(xué)研究的樂趣所在。


本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。