AI未來發(fā)展路在何方?FPGA有這些獨(dú)特優(yōu)勢!
很多世界頂尖的“建筑師”可能是你從未聽說過的人,他們設(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),值得一讀。
(編者注:下文中的“我”,指的都是Doug Burger博士)
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è)級使用的部署。
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板卡,圖片來自微軟)
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è)方面都處于非常有利的位置。在性能方面我們是最快的,在成本上我們大概率也是最便宜的。