向硬件進軍 微軟人工智能時代押注FPGA
一種全新的古老計算機芯片
本文引用地址:http://butianyuan.cn/article/201610/310813.htm2010 年 12 月,微軟研究院 Andrew Putnam 離開西雅圖度假,回到了位于科羅拉多斯普林斯的家中。當時正是圣誕節(jié)前兩天,他還沒開始大采購。正在他開車去商場的路上,電話突然響了,另一端正是他的老板 Burger。Burger 當時打算節(jié)后面見 Bing 高管,但他需要一份能在 FPGA 上運行 Bing 機器學(xué)習(xí)算法的硬件設(shè)計。
Putnam 找到最近的星巴克開始規(guī)劃設(shè)計,這大約花了他 5 個小時,所以他仍有時間去購物。
當時 Burger 45 歲,Putnam 41 歲,兩人過去都是學(xué)者。Burger 曾在特克薩斯大學(xué)奧斯汀分校擔任計算機科學(xué)教授,他在那里工作了 9 年,專攻微處理器,還設(shè)計了一款名為 EDGE 的新型芯片。
Putnam 曾在華盛頓大學(xué)工作 5 年,擔任研究員并主要從事 FPGA 研究。當時可編程芯片已經(jīng)存在了好幾十年,但它們大多被當作處理器的一部分。2009 年 Burger 將 Putnam 挖到微軟,兩人開始探索用可編程芯片提升線上服務(wù)速度的方法。
Project Catapult V1,即 Doug Burger 團隊曾在微軟西雅圖數(shù)據(jù)中心測試過的版本。
微軟的搜索引擎是一個依靠成千上萬臺機器運行的在線服務(wù)。每臺機器都需要靠 CPU 驅(qū)動,盡管英特爾等公司不斷改進它們,這些芯片還是跟不上軟件更新的腳步。很大程度上,是因為人工智能浪潮的來臨。
Bing 搜索等服務(wù)已經(jīng)超出了摩爾定律預(yù)言的處理器能力,即每 18 個月處理器上晶體管的數(shù)量翻一倍。事實還證明增加 CPU 并不能解決問題。
但同時,為新出現(xiàn)的需求制造專用芯片,成本是非常昂貴的。恰好 FPGA 能彌補這個不足,Bing 決定讓工程師制造運行更快、比流水線生產(chǎn)的通用 CPU 能耗更少、同時可定制的芯片,從而解決不斷更新的技術(shù)和商業(yè)模式變化所產(chǎn)生的種種難題。
圣誕節(jié)后的會面中,Burger 為必應(yīng)高管們拿出了一套用 FPGA 提升搜索速度,同時功耗較低的方法。高管們不置可否。在接下來的幾個月中,Burger 團隊根據(jù) Putnam 圣誕節(jié)時畫出的草圖構(gòu)建了原型,證明其運行必應(yīng)的機器學(xué)習(xí)算法時速度可以提升 100 倍?!改菚r他們才表現(xiàn)出濃厚興趣」,當時的團隊成員、現(xiàn)瑞士洛桑聯(lián)邦理工學(xué)院院長 Jim Larus 告訴我們,「但同樣也是艱難時光的開始?!?/p>
原型是一個使用六個 FPGA 的專用盒,由一整個機架的服務(wù)器共享。如果盒子吱吱作響,表明它們需要更多 FPGA——考慮到機器學(xué)習(xí)模型的復(fù)雜性需求會越來越大——這些機器就會停止工作。必應(yīng)的工程師非常厭惡這件事?!傅麄儧]錯,」Larus 說。
正是這個原型吸引了陸奇。他給了 Burger 足夠的資金,可以在 1600 臺服務(wù)器上裝配 FPGA 并進行測試。在中國和臺灣硬件制造商的幫助下,團隊花費半年時間制造出了硬件產(chǎn)品,并在微軟數(shù)據(jù)中心的一組機架上進行測試。但一天晚上滅火系統(tǒng)出現(xiàn)了問題。他們花了三天時間修復(fù)機架——它仍能工作。
在 2013 年到 2014 年的幾個月中,測試顯示必應(yīng)「決策樹」機器學(xué)習(xí)算法在新芯片的幫助下,可以提升 40 倍運行速度。2014 年夏天,微軟公開表示要很快要將這些硬件應(yīng)用到必應(yīng)實時數(shù)據(jù)中心。但是在那之后,微軟暫停了。
不只是 Bing 搜索
Bing 在前幾年一直是微軟線上發(fā)展的核心,但到 2015 年,公司有了其他兩個主要的在線服務(wù):商務(wù)應(yīng)用套件 Office 365 和云計算服務(wù) MicrosoftAzure。和其他競爭者一樣,微軟高層意識到運營一個不斷成長的在線帝國的唯一有效方法是在同樣的基礎(chǔ)上運營所有的服務(wù)。如果 Project Catapult 將轉(zhuǎn)變微軟的話,那 Bing 也不能被排除在外。它也要在 Azure 和 Office 365 內(nèi)部工作。
問題是,Azure 高官們不在乎加速機器學(xué)習(xí),他們需要聯(lián)絡(luò)的幫助。Azure 數(shù)據(jù)中心的流量跳動增長的太快,服務(wù)的 CPU 不能跟上腳步。最終,Azure 首席架構(gòu)師 Mark Russinovich 這樣一批人看到了 Catapult 能幫助解決這些問題,但不是為 Bing 設(shè)計的那種解決問題的方式。他的團隊需要可編程的芯片,將每個服務(wù)器連接到主要網(wǎng)絡(luò),如此他們在數(shù)據(jù)流量到達服務(wù)器之前就能開始處理了。
FPGA 架構(gòu)的第一代原型是一個被一架服務(wù)器共享的單個盒子(Version 0)。然后該團隊轉(zhuǎn)向為每個服務(wù)器設(shè)計自己的 FPGA(Version 1)。然后他們將芯片放到服務(wù)器和整體網(wǎng)絡(luò)之間。
所以,研究 FPGA 的這伙人需要重新開發(fā)硬件。在第三代原型中,芯片位于每個服務(wù)器的邊緣,直接插入到網(wǎng)絡(luò),但仍舊創(chuàng)造任何機器都可接入的 FPGA 池。這開始看起來是 Office 365 可用的東西了。最終,Project Catapult 準備好上線了。
Larus 將許多重新設(shè)計描述為噩夢,這不是因為他們需要建立新的硬件,而是他們每次都需要重新編程 FPGA。他說,「這非常的糟糕,要比編程軟件都糟糕,更難寫、難糾正?!惯@是一項非常繁瑣的工作,像是改變芯片上的小邏輯門。
既然最終的硬件已經(jīng)有了,微軟還要面對每一次重新編程這些芯片時都會遇到的同樣挑戰(zhàn)?!高@是一個看世界思考世界的全新視角,」Larus 說。但是Catapult 硬件的成本只占了服務(wù)器中所有其他的配件總成本的 30%,需要的運轉(zhuǎn)能量也只有不到 10%,但其卻帶來了 2 倍原先的處理速度。
這個布局非常大。微軟 Azure 用這些可編程的芯片來路由、加密和壓縮數(shù)據(jù)。Bing 占據(jù)著世界上 20% 的桌面搜索市場和 6% 的移動手機市場,在 Bing 上,這個芯片能幫助 Bing 適應(yīng)新品種的人工智能:深度神經(jīng)網(wǎng)絡(luò)。而且據(jù)微軟的一名員工說,Office365 正在嘗試在加密和壓縮上使用 FPGA 以及機器學(xué)習(xí)——這一舉措將惠及其 2310 萬用戶。最終,Burger 說道,這些會驅(qū)動所有的微軟服務(wù)。
評論