天天看點

阿裡雲FaaS舜天平台:執FPGA異構計算之牛耳一、異構計算ABC二、為什麼要異構計算三、FPGA異構計算的錢景四、HLS與RTL—從菜刀到小李飛刀五、FaaS的典型應用場景—姚明與C羅六、針對典型應用場景FaaS舜天平台的設計特點—名刀為何是名刀七、FaaS未來演進的一些思考—ThinkWilder,SuccessBigger

作者 阿裡雲資深技術專家 隐達

一、異構計算ABC

簡單的介紹幾個概念,同道中人可以忽略這一段。雲計算取代傳統IT基礎設施已經基本成為業界共識和不可阻擋的趨勢。雲計算離不開資料中心,資料中心離不開伺服器,而伺服器則離不開CPU。當然,世事無絕對,上述三個“離不開”自然是針對當下以及并不久遠的未來而言。而異構計算的“異構”指的是“不同于”CPU的指令集。

異構計算聽起來是一個高大上兼不明覺厲的概念,實際上,我們大緻可以用“加速協處理器”的概念來替代異構計算,這樣了解起來也許就容易多了。雲計算在最開始指的就是基于CPU的計算,異構計算異軍突起之後,雲計算就分成了基于CPU的通用計算和基于CPU+FPGA、CPU+GPU的異構計算。

可能有的讀者說:CPU+ASIC難道不是異構計算麼?當然算,隻不過,抛開ASIC的優點(高性能、大批量前提下的低成本)不說,ASIC的高開發成本(進入10nm工藝時代,流一次片可能動辄幾百萬乃至數千萬美元)和長上市時間(從立項到上市最少也要一到兩年的時間)是兩個非常不利的因素。因為目前異構計算所針對的垂直行業都具有快速變化、快速疊代的特點,是ASIC完全沒有辦法滿足的。是以到目前為止,基于ASIC的異構計算占比極少,基本可以忽略不計。

本文聚焦于讨論基于FPGA的異構計算,為了行文友善起見,下文中提到異構計算就是指FPGA異構計算。

下面的圖、表對CPU、GPU、FPGA和ASIC各自的優劣勢進行了簡單的比較:

阿裡雲FaaS舜天平台:執FPGA異構計算之牛耳一、異構計算ABC二、為什麼要異構計算三、FPGA異構計算的錢景四、HLS與RTL—從菜刀到小李飛刀五、FaaS的典型應用場景—姚明與C羅六、針對典型應用場景FaaS舜天平台的設計特點—名刀為何是名刀七、FaaS未來演進的一些思考—ThinkWilder,SuccessBigger

表1:CPU、ASIC、GPU、FPGA特性簡單對比

阿裡雲FaaS舜天平台:執FPGA異構計算之牛耳一、異構計算ABC二、為什麼要異構計算三、FPGA異構計算的錢景四、HLS與RTL—從菜刀到小李飛刀五、FaaS的典型應用場景—姚明與C羅六、針對典型應用場景FaaS舜天平台的設計特點—名刀為何是名刀七、FaaS未來演進的一些思考—ThinkWilder,SuccessBigger

圖1:CPU、ASIC、GPU、FPGA能效與靈活性對比

阿裡雲FaaS舜天平台:執FPGA異構計算之牛耳一、異構計算ABC二、為什麼要異構計算三、FPGA異構計算的錢景四、HLS與RTL—從菜刀到小李飛刀五、FaaS的典型應用場景—姚明與C羅六、針對典型應用場景FaaS舜天平台的設計特點—名刀為何是名刀七、FaaS未來演進的一些思考—ThinkWilder,SuccessBigger

圖2:計算密集型任務,CPU、GPU、FPGA、ASIC的數量級比較(16位整數乘法)

二、為什麼要異構計算

異構計算為什麼會異軍突起?其實假如CPU一直很牛很牛,可以完全滿足客戶對于“計算”的海量需求,那就沒有FPGA什麼事兒了。當然了,CPU一直在摩爾定律的驅動下變的越來越牛,可是一來客戶的需求變的比CPU的能力更牛,二來随着晶片工藝的推進,摩爾定律漸有失效的迹象,CPU越來越需要一位具備“專業”加速能力的夥伴了。

縱觀CPU的演進曆史,我們可以看到為了跟上摩爾定律的步伐,業界可謂是出了渾身解數。第一闆斧就是通過不斷的提升工作的主時鐘頻率來提高效率:時鐘頻率越高,意味着機關時間内可以執行的指令越多,進而提升了效率。但是時鐘頻率不可能無限提高,因為CPU本質上也是一種ASIC,也是由一個個的半導體、一個個的邏輯門組成的,而半導體、邏輯門都需要特定的充放電時間來完成“0”、“1”狀态的轉換。這個特定的充放電時間就決定了CPU工作時鐘的時鐘周期,也就決定了時鐘頻率。

提升時鐘頻率遇到了天花闆,業界又想出了第二闆斧:“多任務、多線程”,讓CPU可以“同時”做兩件乃至更多件事情,如同周伯通的“一心二用”,進而可以“左右互搏”,這當然是神話。CPU終究是一個“分時複用”的東東,再牛叉的CPU,同一時刻也隻能跑一條指令。多任務多線程的實質不過是充分利用CPU執行某個任務時的“空閑”時間來幹點别的活兒,假如某個任務長期100%霸占CPU,那麼再多的任務和線程也沒什麼用,隻能乖乖等着。

緊接着第三闆斧又來了:多核。就是在一個package裡面封裝多個實體核,理論上多核CPU就相當于之前同等數量的單核CPU。但是這些核之間是需要通信協同的,這就導緻了性能的降低,比如一顆雙核CPU的效能大緻等同于1.8顆單核CPU。而且由于散熱、封裝等因素的限制,也不可能在一個package裡塞下幾百上千個核,盡管Intel已經推出了96核的CPU。多核還面臨DarkSilicon的問題,依靠增加核數來提升CPU性能之路已經走到盡頭。關于什麼是DarkSilicon,簡單的說就是由于功耗的限制,多核CPU中可以同時以最高性能工作的核數是非常有限的,其他的核都處于閑置狀态。如果想進一步了解可以參考如下網頁:

https://zhuanlan.zhihu.com/p/20833753

除了上述三闆斧,業界暫時沒有再找到可以大幅提升CPU計算力的辦法,而在某些特定領域,對CPU算力的需求簡直是貪得無厭、無窮無盡的,比如深度學習、圖像和視訊轉碼等,這時候FPGA的“空間”計算力就可以大顯身手了。

其實異構計算的興起要感謝AI和GPU。AI離不開各種xNN,也就是神經網絡,CPU算起來真是力不從心,而GPU則似乎天生适合幹這個活兒(訓練)。是以,随着過去兩三年AI的炙手可熱,GPU異構計算也風生水起,nVidia的股價居然在一年時間内暴漲三倍(當然不全是異構計算導緻的顯示卡需求暴增,還有數字貨币帶動的挖礦産業)。

是以,歸納起來,異構計算之是以會興起,就是因為在某些特定行業或者特定應用場景,采用CPU作為算力解決方案的成本效益是不高的。而根據這些不同的行業或者場景來選用CPU+GPU或者CPU+FPGA做解決方案的成本效益則是很高的。CPU、GPU和FPGA各自“天生”的特性決定了它們都有各自最擅長(或者說成本效益最高)的應用領域,在這些領域裡,CPU+GPU或者CPU+FPGA的組合而不是純CPU組合,是最優的解決方案。從純技術的角度來争論CPU、GPU和FPGA孰優孰劣不是一件很有意義的事情,一定要從解決方案和商業的角度來做對比才更有說服力。

三、FPGA異構計算的錢景

馬老師說了,每天做着可以改變世界的事情,就會打滿雞血,充滿激情。我鬥膽替馬老師接一句:做好了這些改變世界的事情,wholebunchofmoney就是自然而然的結果。我一直的觀點是:技術是為商業服務的,技術隻是手段,商業成功才是目的。是以見客戶一定要先談錢:使用阿裡雲的FPGA加速解決方案,既能幫您掙錢,又能幫您省錢,這樣客戶才會開開心心的掏錢。然後再談情懷,談詩和遠方,光跟客戶談詩和遠方,會被客戶轟出來的。

基于上面的分析,我們來看看FPGA異構計算的錢景如何。先看下圖(預測資料來自前瞻産業研究院):

阿裡雲FaaS舜天平台:執FPGA異構計算之牛耳一、異構計算ABC二、為什麼要異構計算三、FPGA異構計算的錢景四、HLS與RTL—從菜刀到小李飛刀五、FaaS的典型應用場景—姚明與C羅六、針對典型應用場景FaaS舜天平台的設計特點—名刀為何是名刀七、FaaS未來演進的一些思考—ThinkWilder,SuccessBigger

圖3:2017-2022年中國資料中心市場規模預測(機關:億元)

可以看到2020年中國資料中心市場規模可達近2500億元人民币,約400億美元。按照阿裡雲占據一半市場佔有率來計算,則為200億美元。根據Intel釋出的白皮書預測,到2020年,通用計算市場與異構計算市場會是一個7:3的比例,至于這三成的異構計算市場裡面GPU和FPGA的占比如何,要看各自所适合的垂直行業的發展情況。我們姑且認為GPU和FPGA各占15%,那麼FPGA異構計算市場規模為30億美元,對比整個阿裡雲2017年全年營收133億人民币(預計2020年超800億,屆時異構計算可能占比三成,達到240億人民币),可見FPGA異構計算的市場錢景是相當可觀的。

我個人堅定的看好FPGA異構計算的未來(學習博士當年堅持搞阿裡雲的精神和不達目的不罷休的勁頭:nottobelievebecauseIseebuttoseebecauseIbelieve)。随着雲計算逐漸變成和水電瓦斯一樣的基礎設施,整個市場容量要以萬億乃至數十萬億美元來計算。FPGA異構計算即使隻占10%,那也是千億美元的大市場。

在未來的雲計算、資料中心市場,純CPU、CPU+GPU和CPU+FPGA的解決方案将長期并存下去,中、短期看,是一個CPU+GPU/CPU+FPGA方案不斷蠶食純CPU方案的過程。在這個過程中,CPU廠商、FPGA廠商也會為了鞏固自己的地盤兼搶奪别人的地盤,基于各自的優勢,選擇提供一攬子晶片解決方案。比如CPU廠商會推出内嵌FPGA/GPU的超級CPU;而可程式設計邏輯器件廠商則會在FPGA器件中嵌入CPU和GPU硬核。

對于提供FPGAasaService(FaaS)的雲服務提供商來說,FPGA異構計算能否成功的關鍵則在于IP生态的建設。IP解決方案齊全的雲服務提供商,未來可以像搭樂高積木一樣,迅速的為客戶“量身定做”出成本效益最高的解決方案,并通過自己的FaaS平台向客戶輸出,而缺乏IP生态的廠商則很難得到客戶的青睐。

四、HLS與RTL—從菜刀到小李飛刀

在FPGA設計領域,HLS是HighLevelSynthesis(高層次綜合)的縮寫,RTL是RegisterTransferLevel(寄存器傳輸級)的縮寫。順便吐槽一下,從事ICT行業,就要不斷的面對各種各樣的縮寫,很煩人,但是呢,表達效率确實很高。漢語也有類似縮寫:比如喜大普奔、不明覺厲、男默女淚、火鉗劉明,等等,等等。

1998年,作為新鮮出爐的大菜鳥一隻,我加入了一家通信公司,職責是開發一塊單闆。就是畫PCB、寫單闆軟體、設計FPGA乃至到最後的焊闆子等等全部自己搞定。那時候根本不知道硬體描述語言為何物,隻能向當時的老鳥學習使用74系列內建電路來做FPGA設計。雖說不是一個邏輯門一個邏輯門的來搭電路,其實也差不多了。可想而知,這樣做的效率能高到哪裡去。但是這樣做也有好處:你對整個電路了然于胸,可以清楚的知道到哪個時鐘節拍哪個門該反轉、哪個三八譯碼器該輸出什麼碼、哪個移位寄存器的輸出應該是什麼。況且,那時候的FPGA和CPLD的容量都小,是以這麼做效率上也沒啥違和感。

等到了1999、2000年左右,XILINX開始推出Virtex系列時,這個辦法就不太靈了:FPGA的電路規模已經太大,再畫圖設計的話,周期可能要兩年乃至三年,完全抹殺了FPGA靈活可程式設計、上市時間短的優勢。被逼無奈之下,自己開始學習VerilogHDL,摸索如何使用第三方綜合工具來綜合(那時候XILINX的ISE和Altera的Quartus綜合和仿真功能都很弱)、使用第三方工具來做仿真。也要感謝當時同一個小團隊的另一隻老鳥(老鳥姓魯,對我真是傾囊相授),給了我很多指點,非常無私的那種。我樸素的認為一花獨放不是春、大家好才是真的好,于是就開始寫各種教程、制定大規模FPGA的整套開發流程、寫課件給同僚講課。事情越鬧騰越大,引起了上層的注意,就把我跟另一個部門做FPGA的幾個老鳥給抓到了一起,封閉了半年之久,整天啃各種各樣的“工程類”的書籍。最終我們輸出了“XX公司邏輯設計LCMM流程1.0”。LCMM就是LogicCMM,因為當時CMM很流行,各家軟體公司都标榜自己是CMM3/4/5,我們就無恥的蹭了一下CMM的流量。

Verilog和VDHL都是基于RTL層級的硬體描述語言(HDL)。相對而言,Verilog靈活性高一些,而VHDL文法更嚴謹一些。綜合工具很容易把HDL的描述映射成相應的硬體電路,是以綜合工具把精力放在如何更高效上:比如綜合時間盡可能短、綜合效率盡量高(占用面積低、時鐘運作頻率高)。HDL相比畫電路圖,在“電路”效率上可能要低一些,因為畢竟多了一層抽象;但是在開發效率上,那可是高了不止一個數量級。而且随着綜合工具的進步,“電路效率”的差異逐漸被抹平了。

HDL已經如此之“完美”,為什麼又會冒出HLS呢?一方面,人類追求真善美是無止境的(這是一句雞湯,不喜歡的就不用看了),真正重要的是:随着FPGA規模的增大,驗證FPGA的功能仿真階段在整個開發過程中的占比越來越高。2000年之前,可能設計電路和驗證功能(功能仿真)時間占比可能是8比2,到後來逐漸的7比3,再到現在差不多4比6了。也就是說,超過一多半的時間花在了功能驗證上了。這一多半時間中的一半又花在哪裡了呢?設計和編寫testbench了。testbench是個神馬東東呢?講白了就是一個資料發生器兼接收器兼鑒别器:把資料(不管是否合法)灌進FPGA、從FPGA接收回報、然後根據預設的需求規格來判定FPGA回報的對還是不對。

用HDL做設計,必須要考慮功能、可綜合、效率、時鐘樹、功耗、IO、布局布線等等N多因素。可是用HDL寫testbench完全沒必要考慮那麼多。一個顯而易見的推論就是:使用更高層次的抽象語言顯然可以大幅度提高testbench的模組化和設計效率,進而就從整體上大幅縮短了FPGA的開發周期。在經曆了SystemVerilog、SystemC、C、C++、OpenCL等諸多嘗試之後,使用更高抽象層次的設計語言來設計FPGA就變成了衆望所歸(用中文來說就是變成了剛需),就有了今天的HLS。

那麼問題來了:HDL和HLS相比,到底哪個更好?Well,回答這個問題還是需要一定的水準的,不然結局要麼友誼的小船說翻就翻,要麼就跳進人家給你挖的坑裡了。如同前面介紹通用計算和異構計算時比較CPU、GPU和FPGA,要看面對的具體應用場景。回答這個問題也要看針對FPGA設計的哪個方面說。從電路效率角度,HDL肯定秒殺HLS;而從仿真模組化效率角度,HLS肯定秒殺HDL。HLS當下最大的短闆就是“電路效率”太低。簡單說:同樣一個功能,用HLS不但會占用面積大,而且能跑的時鐘頻率低。這個短闆完全是HLS的高度抽象所帶來的,也就是說,高度抽象既是HLS仿真模組化的最大優勢,又是設計綜合的最大劣勢。舉個簡單的例子(例子不一定實際可以驗證,隻是為了更簡潔的說明問題):用HLS寫了一段代碼(不管是C/C++還是OpenCL),你期望綜合出的電路就是一塊可以做異步FIFO的RAM。但是由于HLS的高度抽象,對于(智商令人捉急的)綜合工具來說,可以綜合成RAM,也可以綜合成組合邏輯,或許還有第三、第四種解讀…也就是說,綜合工具暫時沒能力綜合一個最高效的電路出來。

簡而言之,在當下以及不那麼久遠的将來,使用HDL進行設計而使用HLS進行模組化和驗證,将是最佳的設計模式:取得了電路效率和驗證效率的最佳平衡。随着EDA工具的不斷進步(智商餘額不斷提高),将來我們可以期待HLS既可以設計代碼,也可以模組化驗證。菜刀也就終于進化成了無堅不摧的小李飛刀。

阿裡雲FaaS舜天平台:執FPGA異構計算之牛耳一、異構計算ABC二、為什麼要異構計算三、FPGA異構計算的錢景四、HLS與RTL—從菜刀到小李飛刀五、FaaS的典型應用場景—姚明與C羅六、針對典型應用場景FaaS舜天平台的設計特點—名刀為何是名刀七、FaaS未來演進的一些思考—ThinkWilder,SuccessBigger

圖4:同樣的功能,使用HLS和使用RTL分别來描述的對比

(圖檔來源:《從算法到FPGA的神器--HLS技術在螞蟻密碼加速項目中的運用》,作者:吾安)

五、FaaS的典型應用場景—姚明與C羅

在特定的應用場景,FPGA的加速能力已經毋庸置疑。我們要做的就是找準這些場景,讓FPGA在這些場景中充分發揮強大的加速能力。

從目前看,FPGA在圖檔和視訊轉碼、資料庫加速、深度學習推理、安全、基因測序等領域都展示了無與倫比的加速能力。

1、圖檔轉碼與視訊轉碼

移動終端的普及以及電子商務的興起産生了海量的圖檔,文藝一點的說法是:一張圖勝過千言萬語;接地氣的說法是:沒圖說個錘子。同時,人民對于美好生活的進一步向往催生了大量的娛樂需求,進而産生了海量的視訊。海量的圖檔和視訊給網絡傳輸和存儲都帶來了巨大的壓力,也帶來了巨大的傳輸和存儲成本。是以業界都在努力開發壓縮率更高、壓縮速度更快的編碼算法,當然,隻談壓縮率和壓縮速度而不談畫質就是耍流氓,是以當我們比較壓縮率和壓縮速度的時候,一定有個前提就是同等畫質條件下。

這些海量圖檔中的絕大多數(超過90%,拍腦袋得出的數字,不見得嚴謹)都是JPEG,相對于新的圖檔格式,比如webp、HEIF(這兩個都是google主推的)、lepton,我司自研的APG格式、鵝廠自研的TPG格式等,JPEG真的已經out了。是以,從節約TCO成本的角度,将這些海量JPEG圖檔轉換為webp/HEIF格式是非常有必要的。我們簡單對比一下CPU和FPGA處理JPEG轉碼的原理,來秀一下FPGA幹這個活的巨大優勢。CPU的處理是串行的,當然,靠多核可以實作“并行”,而FPGA的處理是并行的。比如我們設定一個時間段:讓CPU和FPGA各自讀入100張JPEG圖檔,那CPU就是處理完一張再處理下一張,而FPGA是一次性處理完這100張。我們很容易得出一個結論:圖檔越多,FPGA的加速優勢就越明顯。

和圖檔相比,視訊無非是“動态的圖檔”,其處理過程當然要複雜得多,可基本的原理都是差不多的。必須要說明的一點是:在視訊轉碼領域,FPGA的競争對手更多的是GPU而非CPU。并且FPGA的加速威力一定要建立在很好的算法和很好的FPGA設計、實作的前提下才能充分的發揮出來。如果算法本身很糟糕或者算法很優秀但是FPGA設計、實作很糟糕,那麼FPGA的優勢可能展現的就不是那麼明顯乃至沒什麼優勢了。

阿裡雲FaaS舜天平台可以提供給客戶的價值在于:如果你想充分利用FPGA在圖檔和視訊轉碼領域的超強計算力而又不使用FaaS,那就要自己設計闆卡、自己設計FPGA,然後在FPGA上跑自己的算法。其成本之高、開發周期之長,會讓絕大多數中小公司打消這個念頭。有了FaaS,客戶所需要做的隻是設計自己的算法,然後在FaaS上跑出結果來就可以了。更進一步,客戶甚至都無需自己設計算法,因為FaaS的核心目标之一就是建立一個健康的生态,這裡面有大量的IPVendor,也有大量的客戶,客戶隻要找到适合自己的算法IP或者找到能夠設計這個算法IP的Vendor,然後交給FaaS舜天平台跑出結果就好了。

阿裡雲FaaS舜天平台:執FPGA異構計算之牛耳一、異構計算ABC二、為什麼要異構計算三、FPGA異構計算的錢景四、HLS與RTL—從菜刀到小李飛刀五、FaaS的典型應用場景—姚明與C羅六、針對典型應用場景FaaS舜天平台的設計特點—名刀為何是名刀七、FaaS未來演進的一些思考—ThinkWilder,SuccessBigger

圖5:FPGA與CPU對于APG圖檔格式的轉碼效率對比,原始格式為JPEG(512X512)

(圖檔來源:《助推雙十一:APG圖檔編碼FPGA加速項目總結》,作者:開橙)

2、資料庫

資料庫應用大緻可以分為兩類:OLTP和OLAP,也即所謂的“聯機事務處理”和“聯機分析處理”。OLTP主要是執行基本的、日常的事務處理,比如資料庫記錄的增、删、改、查。比如在銀行取一筆款項,就是一個事務交易。OLAP則是資料倉庫系統的主要應用,支援複雜的分析操作,側重決策支援,并且提供直覺易懂的查詢結果。典型的應用就是複雜的動态的報表系統。是以OLAP是CPU密集型操作,而OLTP是IO密集型操作。FPGA的“并行”或者說“空間”計算優勢在OLAP類操作中是大有用武之地的。必須要說明的是,不是所有資料庫操作都是FPGA所擅長的。我們利用FPGA的優勢就要努力找出到底哪些操作是FPGA最擅長的,然後讓CPU去完成那些FPGA所不擅長的操作,古人教導我們說:“男女搭配,幹活不累”,CPU和FPGA配合起來才能取得最高的成本效益。

之是以要一直強調FPGA和CPU的“合理分工”,是因為我擔心讀者老爺們看到我一直在鼓吹FPGA如何如何牛叉,保不齊來一句:FPGA這麼厲害,咋不上天呢?是以,有必要時刻申明:FPGA再厲害,再牛叉,目前看終究是一個co-processor的角色,在發揮作用時是離不開CPU的(即使是FPGA内嵌了CPU,從功能上來講,仍然是FPGA部分和CPU部分要合理分工)。或者說,即便使用FPGA可以完成任何功能、滿足任何需求,還有一個成本效益的問題。FPGA必須有所為也有所不為。打個比方:姚明打籃球水準那是杠杠的,C羅踢足球水準那也是杠杠的。可是要是給倆人換一下呢?姚明踢足球也許還不如我呢,C羅打籃球也許還不如國中生呢。FPGA的加速能力要用對地方:讓姚明去打籃球,讓C羅去踢足球。

對于特定的資料庫操作,目前大量的測試資料(不論是公司外部還是公司内部)都證明了FPGA在提高吞吐率和減少延時兩個關鍵名額上,相對CPU都有巨大的優勢。

阿裡雲FaaS舜天平台:執FPGA異構計算之牛耳一、異構計算ABC二、為什麼要異構計算三、FPGA異構計算的錢景四、HLS與RTL—從菜刀到小李飛刀五、FaaS的典型應用場景—姚明與C羅六、針對典型應用場景FaaS舜天平台的設計特點—名刀為何是名刀七、FaaS未來演進的一些思考—ThinkWilder,SuccessBigger

圖6:左側為使用CPU查詢的耗時,右側為FPGA查詢耗時

(圖檔來源:《HITSDB資料庫硬體加速業務落地總結篇》,作者:謀翼)

可以看到FPGA比CPU的平均查詢響應速度快2個量級,查詢的資料量越大,提升效果越明顯。

3、AI

人工智能目前大熱的概念就是深度學習,深度學習離不開各種xNN,也就是各種神經網絡算法。神經網絡是需要訓練的,一般來說,神經網絡節點越多、層次越深,需要的訓練樣本就越多、訓練時間就越長。在訓練領域,FPGA是拼不過GPU的,可是在推斷領域,FPGA就可以大顯身手了。在深度學習領域,隻有大概5%~10%是訓練場景,超過90%的是推斷場景,尤其是各種移動終端的需求則幾乎全部都是推斷而非訓練,是以FPGA相對于GPU所具有的的低功耗、低延時優勢在移動端将展現的更加明顯。最為關鍵的,目前AI的各種算法都處在一個高速疊代的階段,FPGA的可程式設計靈活性的優勢就更加明顯。當然CPU也可以程式設計、也非常靈活,但是在各種xNN所需要的大量并行計算面前是力不從心的。下圖簡要表明了AI所需要的算力和CPU所能提供的算力之間出現的巨大Gap。

阿裡雲FaaS舜天平台:執FPGA異構計算之牛耳一、異構計算ABC二、為什麼要異構計算三、FPGA異構計算的錢景四、HLS與RTL—從菜刀到小李飛刀五、FaaS的典型應用場景—姚明與C羅六、針對典型應用場景FaaS舜天平台的設計特點—名刀為何是名刀七、FaaS未來演進的一些思考—ThinkWilder,SuccessBigger

Data+Algorithm

圖7:AI所需的巨大算力與CPU所能提供的算力之間的差距

以下這段借鑒(抄襲)微軟Azure的CatapultV2的宣傳材料,比較全面的羅列(鼓吹)了AI領域采用FPGA加速的各種好處:

Flexibility:可程式設計性天然适配正在快速演進的ML算法

DNN、CNN、LSTM、MLP、reinforcementlearning以及決策樹等等

任意精度動态支援

模型壓縮、稀疏網絡、更快更好的網絡

Performance:建構實時性AI服務能力

相較于GPU/CPU數量級提升的低延時預測能力(小樣本batch情況下,幫微軟嚴謹一下下)

相較于GPU/CPU數量級提升的單瓦特性能能力

Scale

闆卡間高速互聯IO

簡而言之,FPGA是幹xNN這活的絕佳選擇。作為佐證,業界有公司設計出了CNN(卷積神經網絡)的FPGA加速器,最終的結果和使用CPU比較,性能提升了16倍,延時降低了63倍,TCO降低了十倍,FPGA加速的價值已經無需贅言。

阿裡雲FaaS舜天平台:執FPGA異構計算之牛耳一、異構計算ABC二、為什麼要異構計算三、FPGA異構計算的錢景四、HLS與RTL—從菜刀到小李飛刀五、FaaS的典型應用場景—姚明與C羅六、針對典型應用場景FaaS舜天平台的設計特點—名刀為何是名刀七、FaaS未來演進的一些思考—ThinkWilder,SuccessBigger

圖8:CPU與FPGA分别實作googlenetv1模型性能對比

其他适合FPGA發揮加速能力的領域還有很多,就不一一列舉了。

阿裡集團相當多的業務,可以落入上面所說的五個類别。這些業務目前在CPU上運作的也很好。可是,恐怕多多少少已經遇到了瓶頸:需要堆疊越來越多的server(CPU)、客戶開始抱怨産生一個結果需要越來越多的時間、成本的壓力也越來越大,并且資料中心的功耗也越來越大,電費都夠喝一壺的了。這些症狀無一不說明:仗劍行走了多年江湖,該換換刀了,因為再不換刀,武林盟主的寶座就要易主了。FaaS平台就是名刀鑄造廠,針對不同垂直行業的加速IP就是各種名刀。各路業務大佬,走過路過不要錯過,到FaaS舜天平台來瞧一瞧,看一看,總有一款适合你。選好了,用好了,武林盟主的寶座妥妥的還是您的。FaaS則always默默地練着自己的内功,錘煉着更鋒利的名刀,靜靜地rightherewaitingforyou。當然,您也可以告訴FaaS您想要什麼樣的名刀,FaaS舜天平台給您量身定做,品質媲美男士西裝界的Anderson-Sheppard。

六、針對典型應用場景FaaS舜天平台的設計特點—名刀為何是名刀

阿裡雲FaaS舜天平台的價值在于兩點,一是通過建立完善的FPGA應用與開發生态,在IPVendor和IPConsumer之間牽線搭橋,基于阿裡雲的強大能力,給客戶提供成本效益極高的算力;二是建立雲上的FPGA開發環境與平台,降低FPGA設計、開發、驗證的門檻,客戶聚焦于設計本身,而無需考慮EDA工具、開發環境等對最終業務價值增值不多但又必須花費大量時間和成本去部署的事情。

針對上述價值,FaaS做了大量針對性的創新設計。

1、支援業界主流FPGA廠商

目前阿裡雲FaaS平台同時支援Intel和XILINX兩家主流FPGA廠商的器件,阿裡雲也是全球FaaS産品線最齊全的公共雲服務商。對于隻想利用FPGA算力加速的客戶來說,無需知道也不會知道底層提供加速的FPGA屬于哪家廠商。但是對于使用FaaS進行設計、驗證的客戶來說,一般在設計之初就已經標明目标器件,設計也都是針對該器件進行優化,是以同時支援Intel和XILINX兩家廠商的器件是非常有必要的。

阿裡雲FaaS舜天平台:執FPGA異構計算之牛耳一、異構計算ABC二、為什麼要異構計算三、FPGA異構計算的錢景四、HLS與RTL—從菜刀到小李飛刀五、FaaS的典型應用場景—姚明與C羅六、針對典型應用場景FaaS舜天平台的設計特點—名刀為何是名刀七、FaaS未來演進的一些思考—ThinkWilder,SuccessBigger

圖9:阿裡雲FaaS支援業界主流FPGA廠商

2、硬體設計創新

FaaS舜天平台的FPGA執行個體從F1、F2走到了F3。F3闆卡采用了高密設計,PCB達到了26層,克服了信号完整性、布局布線和功耗散熱等各種高難度挑戰,單卡可以支援雙VU9P晶片。業界大多都是單卡單晶片方案,從算力密度上是無法匹敵F3的。這種高密設計的好處是最高可以節省50%的實體機采購成本。

3、軟體設計創新

阿裡雲FaaS舜天平台也有大量的軟體創新:硬體抽象層支援Multi-boot燒寫;支援使用者邏輯功耗可監控;支援1/2/4片FPGA互聯拓撲,且可動态配置拓撲形态;支援多種輕量級傳輸協定,傳輸效率高達95%;支援網絡接口自适配;支援熱更新;支援軟硬體聯合仿真。這些創新設計為使用者提供了靈活、豐富的執行個體規格選擇;大大簡化了FPGA的高成本效益算力輸出的複雜度,同時極大的提升了FaaS服務的易用性。

4、安全設計創新

IP的安全是FaaS生态中的所有參與者都非常關心的首要問題之一。阿裡雲FaaS舜天平台從底層到上層、從硬體到軟體做了大量的安全保障考慮和設計。首先,采取了強虛拟化隔離:IP源代碼、發行包和部署環境對第三方是完全不可見的;其次,采用KMS加密實作使用者IP的使用可審計、可計費,具體如下:

打好的AFUIP鏡像,通過IPAgent加密并上傳到IPStore

IPStore的IP通過IPAgent傳到NC主控端,Host的Agent加載子產品根據擷取的秘鑰解密并燒寫進FPGA

FaaS還從軟體、硬體和系統層面,針對目前已知的各種FPGA的攻擊手段進行了防護,比如HardwareTrojanInsertion、SideChannel、PDNAttack、VoltageDrop-basedFaultAttack等等。在最壞的情況下,F3也可以自行恢複初始工作狀态,且從被攻擊到自行恢複的整個過程都不會影響其他的FPGA和執行個體,確定了攻擊的影響可消除、可恢複且嚴格控制在單晶片内。

阿裡雲FaaS舜天平台:執FPGA異構計算之牛耳一、異構計算ABC二、為什麼要異構計算三、FPGA異構計算的錢景四、HLS與RTL—從菜刀到小李飛刀五、FaaS的典型應用場景—姚明與C羅六、針對典型應用場景FaaS舜天平台的設計特點—名刀為何是名刀七、FaaS未來演進的一些思考—ThinkWilder,SuccessBigger

圖10:阿裡雲FaaS的安全設計

七、FaaS未來演進的一些思考—ThinkWilder,SuccessBigger

拉拉雜雜說了這麼多,到了總結陳詞的時間了。

FPGA從誕生到現在已有34年的曆史,雖說應用的領域和場景極其廣泛,從太空到深海,從軍用到民用…但是直到2017年,全球市場容量也不過60億美元。不知道有沒有人算過具體的年複合增長率,但是用腳都可以想象肯定低的可憐。

異構計算實際上是FPGA發展曆史長河裡難得的機遇期,套用電影《張大民的幸福生活》裡的一句台詞來形容就是“春天終于到來了”。其強大的加速能力及其所能帶來的業務和商業價值真的無須再多說,再說就成祥林嫂了。關鍵在于如何把這個加速能力便捷、快速、低成本的輸出給客戶,在短時間内給客戶提供可觀的價值,幫助客戶以快打慢,進而形成自己的獨特競争優勢。

阿裡雲的FaaS舜天平台基于為客戶創造更多價值的理念,做了大量的努力和創新。未來也會在這個理念的指引下,繼續完善和增強FaaS舜天平台的功能、可擴充性、穩定性和易用性;作為FPGA異構計算技術和商業的雙重上司者,繼續與業界IP夥伴和客戶一起,努力打造健康的生态圈和産業鍊,攜手共赢,共同擁抱FPGA異構計算的春天!