杭州2017年10月14日電 /美通社/ --
10月11日, 2017阿里云棲大會在杭州云棲小鎮(zhèn)舉行,這次大會吸引了來自全球近5萬名嘉賓參會,堪稱史上較強。作為阿里在數據中心與AI計算基礎設施的重要合作伙伴,浪潮在阿里展臺發(fā)布了基于F10A的AI線上推理、GZip算法與WebP圖片轉碼三大云場景FPGA加速方案,在擴充FPGA生態(tài)的同時,也將為從事AI開發(fā)與應用的公司以及大型數據中心用戶,提供更高性能功耗比的專用加速芯片選擇。
以下為發(fā)布現場的演講實錄。
面向FAAS服務的FPGA加速卡
我們看到,應用逐步向云環(huán)境遷移,2020年,預計65%-85%的應用遷移到云環(huán)境中,對公有云、私有云和傳統云數據中心來說,公有云具有較高的負載密度和性價比,將成為云服務應用的主流形態(tài)。
當前一些以深度學習為代表的新興計算應用給云數據中心和云服務帶來了重大挑戰(zhàn),異構計算成為解決這一挑戰(zhàn)的關鍵要素,成為一種新常態(tài)。異構計算云服務也給我們帶來一個新的盈利模式,對于云應用租戶來說,感受的是時間,時間就是金錢。如果通過異構加速,縮短服務所需的時間,可以節(jié)省很多的費用支出。對于面向云應用租戶提供SaaS服務的廠商來說,單位時間內生產效率的提升可以給他們帶來更多的收益,也提升了他們的提供云服務的積極性。對于公有云廠商來說,一方面,通過異構計算,可以顯著降低系統的能耗,節(jié)約成本,另一方面,異構計算給云應用租戶和SaaS服務商帶來更多的好處,使得大家更踴躍的參與,這將形成多贏的局面。對于異構計算加速部件,可以有GPU、FPGA、ASIC或者以TPU為代表的專用加速器等多種選擇。其中,GPU使用最廣,生態(tài)系統最成熟,在深度學習方面取得了良好效果。
與CPU和GPU不同,FPGA是一種典型的非諾依曼架構,是硬件適配軟件的模式,它能夠根據系統資源和算法特征靈活的調整并行度,達到最優(yōu)的適配,因此能效比高于CPU和GPU。對于ASIC專用加速器來說,它們在專用算法的加速方面會有比較好的效果,但難以滿足云服務對計算部件具有廣泛適用性的需求。
以TPU為代表的各種PU們在深度學習加速方面取得了較好的效果,通常拿來與FPGA競爭、比較,這讓我們想起了20年前計算機體系結構超標量(Supersclar)和超長指令字(VLIW)之爭,超標量架構通過硬件發(fā)掘程序的并行性,但在4發(fā)射(4-issue)以上遇到了很大的困難,為了發(fā)掘程序的并行性并消除數據相關性和流水線沖突,付出了很大的硬件代價,同時使得處理器的工作主頻難以提升。而超長指令字將程序并行性發(fā)掘任務交給了編譯器,同時簡化了數據相關性、流水線沖突處理單元設計,以期望實現更高的工作主頻和更好的性能。但是理想很美好,現實很殘酷,編譯器很難從現有的編程模式下發(fā)掘更高的并行性。超長指令字并不能發(fā)揮,因此現在的主流CPU依然采用超標量架構。FPGA更像一種類似超標量的架構,提升算法并行性的模式,對于TPU來說,其Tensorcore采用的脈動陣列架構處理方式,對數據復用性很敏感,對于像殘差神經網絡(Resnet)這種小規(guī)模矩陣運算(如1*1矩陣)效果存在折扣。另一方面,TPU類似于超長指令字架構,簡化了數據控制邏輯單元,需要通過框架優(yōu)化和編譯器優(yōu)化來發(fā)掘并行性,消除數據相關性,應用場景受到限制,短時間內難以滿足云服務通用性的要求。因為,我們認為,FPGA 是繼GPU之后,第二種具有更高能效比、更好通用性云服務加速部件。
其實FPGA不僅在計算的加速具有良好效果,其也可以應用于數據中心存儲和網絡的加速,FPGA可為云服務計算、存儲、網絡帶來綜合的提升。
FPGA作為一個加速卡,已經有幾十年的歷史。但是在數據中心應用有所不同,FPGA首先要提供云服務,能夠滿足大規(guī)模部署和運維的需求,滿足云服務的特性,包括遠程監(jiān)控管理、在線動靜態(tài)邏輯的重構,也需要支持各種虛擬機訪問以及支持各種驅動兼容性,整個加速卡也需要有更高的RAS特性,這些在服務器里面,可能是比較通用的性質,但是先前的FPGA加速卡,并沒有這類應用場景需求,也不具備這些特性,存在很大缺失。我們認為,FPGA更重要的是一種FaaS(FPGAas a Service)服務。
在這里介紹一下浪潮研制的面向 FaaS(FPGA as a Service)服務的FPGA加速卡。它是業(yè)界功能密度較高的半高半長加速卡,它與其他卡的顯著不同之處在于在半高半寬的尺寸下支持雙DIMM模式,而不是內存貼片。采用內存貼片的方式,將會帶來較好的散熱效果,但內存容量受限,同時,現在內存存在一些良率問題,采用貼片內存就需要篩選,如果篩選不好的話,FPGA卡,可能如果發(fā)生內存的故障,會不可修復,可能會帶來FPGA里頭的通道,或者很大一塊(08:卡可能發(fā)成內存故障,不可修復,可能會帶來FPGA內存訪問通道的缺失,或者一大塊內存空間失效,影響整個板卡的使用,因為浪潮采用DIMM的方式,并克服了DIMM方式帶來的一些問題,如信號完成性和散熱要求高要求。浪潮的FPGA卡每個DIMM較大可支持16GB,所以我們半高半長的板卡較大可以支持32GB內存,比其他板卡高出一倍以上,它的峰值浮點性能可以達到1.5TFlops。浪潮作為服務器廠商,其FPGA加速卡不僅僅是一個板卡,而是將很多的服務器技術轉移至其中,構建了一個支持FaaS服務的FPGA生態(tài)系統。
板卡能夠支持動態(tài)邏輯的在線可重構、靜態(tài)邏輯的遠程更新,采用帶內(CPU-PCIE-FPGA)帶外(BMC-SMBUS-CPLD)雙環(huán)監(jiān)控管理機制,大大提升了板卡遠程監(jiān)控管理的可靠性,通過它們可以實時的監(jiān)控FPGA芯片的溫度、板卡風扇轉速、板卡序列號、板卡內存特性并可以調整FPGA的工作頻率。
同時也支持虛擬機的直接訪問,板卡本身也加入了很多RAS特性,如高可靠內存訪問等。板卡支持并行(FPP)和串行(AS)雙加載模式,任何一種模式加載出現故障,都可以快速切換到另一種模式加載,保證了板卡大規(guī)模服務的可用性。
基于OpenCL高級語言的FPGA一體化解決方案
傳統的FPGA的開發(fā)類似于芯片的開發(fā),采用硬件描述(RTL)語言開發(fā),RTL開發(fā)帶來的問題就會像芯片設計一樣周期會比較長。一個典型的應用開發(fā),我們首先要進行架構設計,然后我們要寫算法的C模型,C模型做完驗證之后,RTL工程師使用RTL語言改寫一遍,寫后需要仿真綜合,如果我們發(fā)現時序達不了標,可能要調整時序,甚至要推倒重來重新優(yōu)化設計,時序達標后,首先要跟C模型進行聯合仿真驗證,驗證完畢還要上板卡進行測試驗證,板卡級的測試驗證會有很多問題,尤其是人工開發(fā)引入的時序、時鐘問題,發(fā)現難驗證難。因此,要開發(fā)一個大型應用可能需要一年的時間。當然,現在有一些HLS(HighLevel Synthsis)的工具,它可以把C模型直接翻譯成RTL模型,但是它的主要問題是開發(fā)不是特別友好,它僅僅把算法實現了,但是算法周邊,包括總線接口、訪存單元、驅動、上層的調用都存在著空白需要額外開發(fā)。因為RTL工程師僅僅把它當成一個輔助的開發(fā)工具,整體開發(fā)時間并不能節(jié)省太多。
互聯網存在快速開發(fā)和迭代開發(fā)的特性,以滿足線上應用快速變化的需求,RTL或HLS開發(fā)模式動輒以半年或年為單位的開發(fā)周期難以滿足需求,迫切需要更高層次的開發(fā)模型。OpenCL高級語言開發(fā)方式為我們打開了一扇窗戶,它把底層的硬件如總線、IO接口、訪存控制器等和底層軟件如驅動、函數調用等全部封裝在BSP中,變成標準單元提供上層支持。用戶只需要關注算法本身,OpenCL的開發(fā)的邏輯通過編譯工具直接映射到FPGA中,開發(fā)周期大大縮短,也符合互聯網應用的需求。
Gzip數據壓縮
基于OpenCL語言浪潮開發(fā)了一些解決方案,下面我們講一些案例,以數據壓縮Gzip為例,存儲面臨的壓力遠遠高于計算,數據產生可以分為兩類,一類是人類產生的數據,比方說,文本、圖片和視頻等,它的特點是隨機性高、重復率低,另一類是機器產生的數據,包括交易記錄、編譯報告和日志等,這類的數據其實比我們人類產生的要多的多,它的特點是隨機性比較低,重復率非常高。對于壓縮來說,怎么樣把各類數據都進行很好的壓縮,是個很大的挑戰(zhàn)。
對于FPGA壓縮方案業(yè)內通用的是一種簡化方案,它把Gzip重要的兩個部件LZ77壓縮、Huffman并行執(zhí)行,犧牲了壓縮率,不兼容Gzip標準算法。
針對這些問題,浪潮推出了完全兼容Gzip標準的FPGA壓縮算法,并且提供兩種方案,一種是高性能的(High Performance)的方案,另一種是高壓縮率的方案。數據對比表明,采用簡化方案雖然性能可以達到2.5GB每秒,但壓縮率只有45%,浪潮的高性能方案和高壓縮率方案性能可以到1-1.5GB每秒,壓縮率可達25%-28%,比簡化方案提升了50%以上。 另外,在機器產生的日志文件壓縮中效果更加明顯,壓縮率能到5%,而簡化的方案只能到26%-27%左右,浪潮的方案提升了5倍,這是非常顯著的一個數據,因為現在很多互聯網廠商,他們每天的日志文件,都是TB級的,所以減少5倍存儲開銷是非??捎^的數字。
與CPU軟件方案相比,在文本上面壓縮上與其接近,在日志文件壓縮上與其差距不大,但性能提升了10-20倍?,F在較快的SSD數據寫入速度大約在1GB每秒左右,浪潮FPGA加速方案可以實現實時壓縮和存儲。
圖片轉碼FPGA加速
WebP是谷歌提出的一種圖片編碼格式,它能夠在保證圖象質量的同時,進一步壓縮圖片存儲空間,比PNG、JPG、GIF格式有25%-60%的存儲空間減少。對于數據中心來說,網絡帶寬其實是很大的一塊運營成本。谷歌的數據表明,Webp格式可減少33%的網頁傳輸時間,同時整體加載時間可以減少10%。騰訊的數據表明,采用Webp格式,其新聞客戶端、QQ空間等,流量峰值帶寬降低9GB,圖片延時和數據下載延時降低100ms。因此采用WebP的方式不僅僅能夠數據每天節(jié)省TB級的數據存儲空間,同時也能有效降低網絡帶寬的開銷,從而降低整個數據中心的運營成本。從VGA(640*480)到4K高清各種尺度下的測試表明,浪潮FPGA的WebP編碼性能可提升10倍以上。
深度學習
浪潮FPGA在深度學習線上推理應用也做了很多嘗試。首先是AlexNet深度學習網絡,單機單卡性能可達到848楨每秒的線上識別率。我們也嘗試單機雙卡、三卡到四卡性能加速,在單機四卡情況下,可達到2971幀每秒的線上識別率。而且,從單機到單卡到四卡,它們的性能提升線性度非常好。
另外,我們也構建了兩種殘差深度學習網絡加速模型,一種是采用CIFAR-10的57層神經網絡,另一種采用ImageNet數據集的50層神經網絡。浪潮作為一家服務器廠商,可以提供包含FPGA板卡、BSP和驅動、IP算法,同時可以集成在我們的服務器中給客戶提供一體化的解決方案。