2016 年 9 月,面對(duì)《連線》雜志的采訪,時(shí)任 Intel 執(zhí)行副總裁的 Diane Bryant(她已經(jīng)于 2017 年年底離開 Intel 并擔(dān)任 Google Cloud COO)闡釋了這家半導(dǎo)體巨頭在 2015 年以 167 億美元的天價(jià)收購(gòu)世界第二大 FPGA 廠商 Altera 的原因。很明顯,微軟不可能是上述收購(gòu)的唯一理由,但毫無疑問是最為重要的理由之一。
這件事情,還要從 2010 年微軟的 Project Catapult 說起。
微軟與 FPGA 的淵源
2010 年的微軟,依然處于這家公司的第二任 CEO Steve Ballmer 的執(zhí)掌之下;那時(shí)候,陸奇的角色是在微軟擔(dān)任在線業(yè)務(wù)部門總裁, 他同時(shí)是 Bing 項(xiàng)目的負(fù)責(zé)人。在當(dāng)時(shí)的條件下,Bing 搜索是微軟內(nèi)部為數(shù)不多的在線業(yè)務(wù),而它正在追趕強(qiáng)大的 Google 搜索引擎——無論是在搜索結(jié)果還是響應(yīng)速度上;其中,后者是衡量一款搜索引擎背后的技術(shù)能力的核心指標(biāo)。
微軟與 FPGA 的淵源就是在這種情況下開始的。
當(dāng)時(shí),微軟的搜索引擎是一個(gè)依靠成千上萬臺(tái)機(jī)器運(yùn)行的在線服務(wù),每臺(tái)機(jī)器都需要靠 CPU 驅(qū)動(dòng),盡管 Intel 等公司不斷改進(jìn) CPU,這些芯片還是跟不上節(jié)奏。換句話說,Bing 搜索等服務(wù)已經(jīng)超出了摩爾定律預(yù)言的處理器能力——事實(shí)還證明增加 CPU 并不能解決問題。
不過,倘若為新出現(xiàn)的需求制造專用芯片,成本是非常昂貴的。而恰好 FPGA 能彌補(bǔ)這個(gè)不足,Bing 決定讓工程師制造運(yùn)行更快、比流水線生產(chǎn)的通用 CPU 能耗更少、同時(shí)可定制的芯片,從而解決不斷更新的技術(shù)和商業(yè)模式變化所產(chǎn)生的種種難題。
2010 年 12 月,39 歲的微軟研究員 Andrew Putnam 趕在圣誕節(jié)前兩天,用大約 5 個(gè)小時(shí)的時(shí)間完成了一份能夠在 FPGA 上運(yùn)行 Bing 機(jī)器學(xué)習(xí)算法的硬件設(shè)計(jì)。雷鋒網(wǎng)了解到,Andrew Putnam 曾在華盛頓大學(xué)工作 5 年,擔(dān)任研究員并主要從事 FPGA 研究,他在 2009 年受到一位從事計(jì)算機(jī)芯片研究的微軟研究員 Doug Burger 的邀請(qǐng)加入微軟,而 Doug Burger 后來成為 Andrew Putnam 在微軟的上司。
Andrew Putnam 的硬件設(shè)計(jì),是在 Doug Burger 的授意下進(jìn)行的——它正是后來的 Project Catapult,盡管但是還沒有這樣的名字。
后來,根據(jù)這一硬件設(shè)計(jì),Burger 團(tuán)隊(duì)成功構(gòu)建出模型,并證明它能夠讓 Bing 的機(jī)器學(xué)習(xí)算法速度提升 100 倍;最終,這個(gè)原型吸引了陸奇,并且在 2012 年 12 月以 Project Cataplut 的面目出現(xiàn)在時(shí)任微軟 CEO Steve Ballmer 的面前。
此后,微軟給出足夠的資金,允許 Burger 在 1600 臺(tái)服務(wù)器上配置 FPGA 進(jìn)行測(cè)試。在中國(guó)和臺(tái)灣硬件制造商的幫助下,團(tuán)隊(duì)花費(fèi)半年時(shí)間制造出了硬件產(chǎn)品,并在微軟數(shù)據(jù)中心的一組機(jī)架上進(jìn)行測(cè)試。在 2013 年到 2014 年的幾個(gè)月中,測(cè)試顯示 Bing「決策樹」機(jī)器學(xué)習(xí)算法在新芯片的幫助下,可以提升 40 倍運(yùn)行速度。
2014 年夏天,微軟表示很快要將這些硬件應(yīng)用到 Bing 的實(shí)時(shí)數(shù)據(jù)中心。
從 Bing 到 Azure
然而,F(xiàn)PGA 在數(shù)據(jù)處理加速方面上的出色貢獻(xiàn),不僅僅被 Bing 業(yè)務(wù)部門所重視,它同時(shí)進(jìn)入到微軟其他在線業(yè)務(wù)的視野,一個(gè)是 Azure 云計(jì)算業(yè)務(wù),一個(gè)是 Office 365。當(dāng)然,就業(yè)務(wù)本身對(duì)微軟整體營(yíng)收的貢獻(xiàn)而言,Azure 顯然是更加厥功甚偉的。
于是,由 Bing 出發(fā),利用 FPGA 來加速驅(qū)動(dòng) Azure 數(shù)據(jù)中心的想法最終在微軟那里得到了認(rèn)可。不過,在 Azure 首席架構(gòu)師 Mark Russinovich 看來,Project Cataplut 具備解決問題的潛力,但其方式又與 Bing 本身的不同。他的團(tuán)隊(duì)需要在每個(gè)服務(wù)器上配置可編程芯片,然后將每個(gè)服務(wù)器連接到主要網(wǎng)絡(luò)上,這樣他們就能在數(shù)據(jù)流量到達(dá)服務(wù)器之前就開始處理了。
2014 年,來自微軟、Amazon、哥倫比亞大學(xué)、Google 等單位的 23 位聯(lián)合作者在IEEE發(fā)表了一篇題為《提升大型數(shù)據(jù)中心的可配置架構(gòu)》(A Reconfigurable Fabric for Accelerating Large-Scale Datacenter Services)的長(zhǎng)篇論文,該論文得到來自 Altera 和 Quanta 兩家 FPGA 公司的技術(shù)支持;其中,上文中提到的 Andrew Putnam 和 Doug Burger 都是論文的作者之一,而包括陸奇、沈向洋在內(nèi)的十余位微軟高管也對(duì)該論文進(jìn)行了支持。
在這篇論文中,來自微軟研究院的 Project Catapult 被重點(diǎn)提到。文章表示,為了使得數(shù)據(jù)中心擁有傳統(tǒng)服務(wù)器所不具備的能力,微軟推出了一種可組合、可配置的新型架構(gòu),這種架構(gòu)中的每個(gè)實(shí)例都擁有 48 個(gè)嵌入式的 Statix V FPGA(Statix 正是 Altera 旗下的品牌) 芯片,每個(gè) FPGA 芯片都被嵌入到一臺(tái)服務(wù)器中,通過 PCIe 接口相連接,然后在直接與其他 FPGA 通過 10Gb 的 SAS 線纜直接相連。
雷鋒網(wǎng)注意到,這篇論文提到的實(shí)際案例依然是 Bing Web 搜索引擎,但它已經(jīng)展示了將 FPGA 應(yīng)用于大型的數(shù)據(jù)中心的可能性。
最終,在 Project Cataplut 的第三代原型中,F(xiàn)GPA 芯片位于每個(gè)服務(wù)器的邊緣,能直接插入到網(wǎng)絡(luò),但仍舊保留了任何機(jī)器都可接入的 FPGA 池,增加了它的可擴(kuò)展性。為此,F(xiàn)PGA 的研究者們需要重新設(shè)計(jì)硬件,最終的結(jié)果是,Project Catapult 硬件的成本只占了服務(wù)器中所有其他的配件總成本的 30%,需要的運(yùn)轉(zhuǎn)能量也只有不到 10%,但其卻帶來了 2 倍原先的處理速度。
于是,Azure 擁抱了 FPGA,Office 365 也是如此;Doug Burger 說,它們會(huì)驅(qū)動(dòng)所有的微軟服務(wù)。
Project Brainwave
2016 年的 AlphaGo 大戰(zhàn)李世石,讓 AI 這個(gè)詞成為一個(gè)新的科技發(fā)展階段的標(biāo)簽,甚至是新時(shí)代的標(biāo)簽。于是,在人工智能的熱潮之下,AI 芯片這樣的概念也隨之而來,不過相對(duì)于微軟、Google 這樣的巨頭已經(jīng)在相關(guān)領(lǐng)域所作出的探索和努力而言,概念本身實(shí)在不足以囊括。
不過,在 Project Catapult 的基礎(chǔ)之上,微軟在這條路上走得越來越遠(yuǎn)。
2017 年的 HotChips 大會(huì)上,微軟展示了 Project Brainwave,一個(gè)基于 FPGA 的低延遲深度學(xué)習(xí)云平臺(tái)。微軟官方測(cè)評(píng)顯示,當(dāng)使用 Intel(是時(shí) Altera 已經(jīng)被 Intel 收購(gòu))的 Stratix 10 FPGA,Brainwave 不需要任何 batching 就能在大型 GRU (gated recurrent unit)達(dá)到 39.5 Teraflops 的性能。
Project Brainwave 分為三層構(gòu)件。首先是高性能、分布式的 FPGA 系統(tǒng)架構(gòu);在數(shù)據(jù)中心網(wǎng)絡(luò)中直接加入 FPGA,可將此作為硬件微服務(wù)。 其實(shí)是將 DNN 處理單元整合入 FPGA。 最后,Project Brainwave 還支持流行深度學(xué)習(xí)框架的軟件棧,比如說微軟 Cognitive Toolkit 和 Google Tensorflow。
微軟表示:
該系統(tǒng)為實(shí)時(shí) AI 而設(shè)計(jì)——這意味著,它能以極低的延遲在接收數(shù)據(jù)后立刻處理請(qǐng)求。由于云基礎(chǔ)設(shè)施需要處理實(shí)時(shí)數(shù)據(jù)流,不管是搜索請(qǐng)求、視頻、傳感器數(shù)據(jù)流還是用戶交互,實(shí)時(shí) AI 正在變得越來越重要。
可以看到,與 Project Cataplut 相比,Project Brainwave 在許多方面都更為出色,包括在運(yùn)行速度、軟硬件結(jié)合度和 AI 領(lǐng)域的契合程度。更重要的是,Project Brainwave 在設(shè)計(jì)之初就考慮到,它不僅要幫助 Bing 運(yùn)行深度學(xué)習(xí)等復(fù)雜運(yùn)算,也要通過 Azure 開放給外部開發(fā)者使用。
2018 年 5 月的 Bulid 大會(huì)上,微軟宣布 Project Brainwave 開放預(yù)覽。這種用于深層神經(jīng)網(wǎng)絡(luò)處理的架構(gòu)可用于 Azure 與邊緣環(huán)境。微軟表示,Project Brainwave 能夠讓 Azure 成為實(shí)時(shí)運(yùn)行人工智能最快的云平臺(tái),并且實(shí)現(xiàn)了與 Azure 機(jī)器學(xué)習(xí)的完全整合;它還支持 Intel 的 FPGA 硬件以及基于 ResNet50 的神經(jīng)網(wǎng)絡(luò)。 此外,Project Brainwave 面向 Azure Stack 和 Azure Data Box 的開發(fā)也在進(jìn)行之中。
然而,連微軟自己都承認(rèn),Project Brainwave 本質(zhì)上是利用了 Project Cataplut 的成果而構(gòu)建來的,這是一個(gè)前后相續(xù)的工程,只是在不同的發(fā)展階段扮演了不同的角色。
只不過,從 Project Cataplut 到 Project Brainwave,前前后后已經(jīng)過去了七八年的時(shí)間。
雷鋒網(wǎng)有話說
如果我們用 AI 芯片去界定微軟在 Project Brainwave 甚至 Project Cataplut 上的作為,可以說是一件完全沒毛病的事情;當(dāng)然,微軟在所謂的 AI 芯片領(lǐng)域做得更多,比如說還有面向 Hololens 的 HPU,不過已經(jīng)是端側(cè) AI 的范疇了。
只不過在微軟從事 AI 芯片相關(guān)工作已經(jīng)成為既定事實(shí)的情況下,它在業(yè)界的相關(guān)動(dòng)態(tài)其實(shí)沒有必要捕風(fēng)捉影地鼓噪一番了。本來就是一句話就能講清楚的事:微軟 Azure 部門還在招募芯片人才——結(jié)果又被強(qiáng)行吹成大新聞了。