何為真正的 FaaS?阿里舜天平臺做了四大創新

導讀:數據中心和雲計算的超高增速,AI、視頻、基因測序等應用對於算力的無盡渴求和摩爾定律發展事實上已經停滯的現實,均給異構加速帶來了巨大的應用潛力和商機。但 Faas 解決方案仍有較高的門檻,今天,我們一起了解 Faas 的難度在哪裡?以及在阿里,我們如何做到真正的 Faas?

一、 前言

近幾年,DC 和雲計算領域風起雲湧,發展地如火如荼。中外廠家紛紛發佈 “DC First”、“All in Cloud”、“Cloud or Dead” 等戰略,不管此前公司的主業為何,殺入 DC 和雲計算領域的廠家如過江之鯽。但是,和任何 ICT 領域一樣,在經過充分的搏殺和競爭之後,整個市場將基本穩定下來,由 TOP2-3的廠家把持,其他 players 加到一起分點殘羹冷炙。Gartner 於4月24日發佈報告,阿里雲以19.6%的市場份額,雄踞整個亞太第一,AWS 和微軟分居第二和第三。全球範圍內,仍然維持了AWS、微軟和阿里雲分別為冠、亞、季軍的格局。

阿里雲 FPGA as a Service(以下簡稱FaaS)舜天平臺正是 FPGA 異構加速領域的領導者和開拓者,也是 FPGA 異構加速領域良好生態的倡導者和建設者。依託阿里雲百萬企業付費客戶以及阿里雲強大的飛天操作系統,FaaS 舜天平臺對內而言,已經成為阿里集團 FPGA 加速業務的基礎設施;對外而言,則將大幅降低 FPGA 的開發和使用門檻,致力於為客戶提供最高性價比的算力和打造健康的 FPGA 加速生態。

二、 傳統的 FPGA 應用與 FaaS 的區別

FPGA 由於其強大的靈活性,自誕生以來,在數以千計的垂直市場中都獲得了大量的應用。但是,這種應用都談不上“雲”,也談不上“service”。我們知道,傳統 IT 基礎設施是沒有彈性的,因此很容易出現要麼業務高峰時無法支撐乃至整個 IT 系統崩潰;要麼陷入業務低谷時,大量 IT 資源閒置,造成成本高企。因此,“雲”和“非雲”的一個最大區別就在於是否支持資源的“彈性”伸縮:需要時按需獲取,不需要時隨時釋放。而要做到“彈性”,那麼一定要通過虛擬化來支持。如果做不到“彈性”和“虛擬化”,就稱不上 FaaS,究其本質和傳統上對 FPGA 的使用沒有任何區別。

如果單純從 FPGA 的設計和使用角度看,即使有門檻的存在,設計一顆 glue logic的 FPGA 或者跑一點簡單算法,實現一點簡單控制,難度是相當有限的。但是,不能說具備了這些能力之後,就可以對外宣稱可以提供 FaaS 的能力了。

首先,使用 FPGA 實現複雜的算法的門檻是非常高的(比如用 FPGA 實現 H.265 編碼);其次,高效使用 FPGA 實現複雜的算法的門檻是非常非常高的(還拿 H.265編碼舉例,設計得不好的話,很大容量的一顆 FPGA 也許只能支持一路 1080p/30 幀的 H.265 視頻,好的設計也許就能支持4路);最後,把 FPGA 的加速能力通過“雲”來輸出給客戶的門檻是非常非常非常高的。所以,FaaS 的核心之一是讓 FPGA 的算力“x86化”,即雲上購買和使用 FPGA 的算力和雲上購買和使用 CPU 的算力一樣簡單;核心之二,是讓 FPGA 的算力“服務化”,即不需要客戶做二次開發和適配,通過簡單的類 URL 調用即可使用。

何為真正的 FaaS?阿里舜天平臺做了四大創新

三、 FaaS的難度在哪裡

FaaS 的價值可以從三方面來看:

  • 一是,把 FPGA 的算力從傳統的“線下”輸出改為“線上”輸出;
  • 二是,把 FPGA 的算力形成資源池,和 CPU 一樣,做到業務高峰時“召之即來”,輕鬆應對大業務量挑戰、業務低谷時“揮之即去”,及時釋放資源以節約成本;
  • 三是,把 FPGA 的算法IP做成“積木”,可以讓客戶根據實際的業務需求,在很短的時間內,選取合適的 IP “積木“,搭成針對性的解決方案。

這三方面的價值同時也是 FaaS 的難度所在。

1、 雲化

傳統的使用 FPGA 的方式(也即所謂的“線下”模式)一般是:FPGA 和其他器件(包括主控的 CPU)一樣,都焊在“母板”上,主控 CPU 通過與 FPGA 直連或者 CPLD 橋接的方式,對該 FPGA 進行配置和控制,FPGA 的存儲空間直接映射到 CPU 的主內存空間。而云上模式下,FPGA 所在的板卡(通常叫做 FPGA 加速卡)是所在宿主機“母板”上的一個 PCIe 設備,雲服務的客戶使用虛擬機和 PCIe 報文對該加速卡(也就是 FPGA)進行配置和控制。由於此時 FPGA 跟“母板” CPU 之間不存在任何“直連”關係,只能通過 PCIe 報文對 FPGA 進行操作,傳統上對 FPGA 的復位、加載、狀態和性能監控等常規功能,在虛擬機(雲上)環境下不再那麼“常規”。簡單的用一句話總結就是:線下根本不是問題的問題,到了線上(雲上)可能全是問題。不解決好這些問題,就沒辦法讓 FPGA 簡單易用,也就談不上算力“普惠化”,更談不上“雲服務”了。

FPGA 雲廠商要做的是介於 FPGA 的驅動層以及客戶的軟件 SDK 層之間的適配層,這個適配層儘可能屏蔽底層的軟硬件細節,通過 API 給客戶的軟件 SDK 提供必要的控制接口,使得客戶能夠以“類 URL 調用”這樣的簡單方式來調用 FPGA 的算力。簡而言之,如果不能做到簡單易用,那麼儘管 FPGA 相對 CPU、GPU 可以提供極高的性價比,也會在 CPU 和 GPU 的強大生態面前敗下陣來。客戶的訴求很簡單:希望動動鼠標就能得到結果(客戶根本不 care 底層的算力是 CPU、GPU 還是 FPGA 輸出的),而不是要看幾百頁手冊,要三五個乃至更多開發人員適配上三個月才能使用。

2、 算力池化

傳統上,由於 FPGA 是焊接在所在母板的,因此,母板所在的宿主機的 CPU 對該片(或者幾片)FPGA 是擁有100%的“所有權”和“使用權”的。即便很多時候,FPGA 處於空閒狀態,它也不可能被別的宿主機(儘管可能宿主機之間存在網絡連接,不管是 WAN 還是 LAN,甚至是網線直連)所使用。但是,在雲上使用環境中,每個宿主機所“攜帶”的 FPGA 都是某個計算集群的一份子,每個宿主機(和運行在其上的虛擬機)既可以使用自己本板/本機上的 FPGA 、也可以使用其他宿主機的 FPGA 。傳統使用方式下,沒辦法滿足類似“提供 1.25 片 FPGA 或者 3.5 片 FPGA 給某個用戶使用”這樣的需求,但在雲上環境中,滿足這樣的需求是雲服務的基本功能。

3、 算法 IP 積木化

算法(通常我們稱呼這些算法叫 IP)是 FPGA 的靈魂,沒有了算法,FPGA 可以說什麼都不是;有了算法,FPGA 幾乎可以做任何事情,FPGA 的高靈活性是由算法來使能的。業界有很多第三方的 ISV 和獨立開發者,充分利用 FPGA 的高並行和時間流水特性,開發了很多高效的 IP,這些 IP 可以高效地完成某一個或幾個特定的功能。更多的時候,客戶的需求必須要多個 IP 的配合才能滿足。由於並沒有任何標準組織來制定 IP 的對外接口,各家 ISV /獨立開發者所開發的 IP 的接口多種多樣。要將他們拼到一起形成解決方案,往往需要花費大量的時間和精力開發二者中間的適配層,這樣就失去了通過組合 IP 從而快速形成解決方案的優勢。只有所有的 IP 都遵循統一的接口標準,才能夠做到 IP 像樂高積木一樣任意組合、快速形成解決方案。

這當然是一種理想狀態。事實上,FPGA 器件出現已經有 30 多年的歷史,大大小小的設計各種 IP 的 ISV 也有很多,但是極少有 ISV 能夠長大、能夠規模化。在 FPGA 的傳統擅長領域沒有出現,在 FaaS 漸成風潮的今天,暫時也沒有出現。開發 IP 最大的問題在於平衡“通用性”和“專用性”,包括 IP 算法本身和 IO 接口。一般來說:通用性越好,意味著性能往往就要差一些;性能調測的非常強勁的 IP,通用性往往不夠好,使用時要做各種各樣的適配和犧牲;支持的 IO 接口越多,意味著 IP 本身的成本也就越高,但是隻支持某種 IO 接口的話,成本是降下來了,但是嚴重限制了 IP 的應用範圍。

到了 FaaS 雲時代,由於在特定垂直領域,FPGA 相對 CPU 或者 GPU 的性價比往往非常出眾,所以 IP 的性能往往不是考慮的第一要素,而且,雲上只能輸出算力,無法輸出 IO,因此也不存在支持的 IO 的種類問題。FPGA 算力雲化的最大障礙在於 IP 距離“服務”還有相當的距離,要充分發揮 IP 的性能,客戶往往要做二次開發以及大量的軟件適配,這恰恰和雲化降低 FPGA 的使用門檻、使 FPGA 的算力普惠化的大目標相牴觸。

四、 阿里雲舜天平臺:做真正的FaaS

阿里雲 FaaS 舜天平臺自誕生之初,就把 FPGA 算力普惠化作為自己的使命,通過雲化輸出 FPGA 算力,為客戶提供更高性價比的計算解決方案,是舜天平臺的價值所在。舜天平臺不但很好地解決了上述的三個難點,同時還致力於三方面的工作,使得FaaS真正的名副其實。

一是,針對 FPGA 具有明顯加速優勢的特定垂直市場,做到真正以“服務”來輸出 FPGA 的高性價比算力。CPU 和 GPU 的生態已經非常的完善,在全球有幾十甚至上百萬的開發者。這就使得客戶只需購買 ECS(Elastic Compute Service彈性計算服務)/EGS(Elastic Graphic Service彈性圖形服務)這樣的 IaaS 基礎設施,可以很容易、快捷地在其上建立 PaaS/SaaS 服務。

但是對於 FPGA 來說,由於生態的不完善和分散,絕大部分雲上 FPGA 用戶不具備自行購買 EFS(Elastic FPGA Service)之後在其上搭建 PaaS/SaaS 的能力。這就意味著,如果雲服務廠商僅僅提供 FPGA 的 IaaS,客戶是根本不會買單的;即使是提供帶 IP 的IaaS+,客戶仍然要做二次開發與適配,這就大大降低了 FaaS 的吸引力。因此,要使得 FPGA as a Service 成為一種可行的商業模式,就必須對外提供基於 FPGA IaaS/IaaS+的 SaaS 服務,只有這樣,才能夠與 CPU/GPU 進行競爭,從而發揮 FPGA的高性價比、低延時、高靈活可編程性等優勢。

二是,建立完善的FPGA IP 雲市場,在 IP Vendor 和 FPGA 異構計算雲服務客戶之間牽線搭橋:IP Vendor 通過阿里雲 FaaS IP 市場獲得收入,從而發展壯大,設計適用於更多垂直市場的 IP;而客戶則通過在 IP 雲市場靈活選擇 IP,快速形成解決方案,從而獲得更高性價比的算力。如上所說,無生態不 FaaS,生態對於 FaaS 的成功可謂至關重要,FPGA 器件廠商、FPGA 雲服務提供商和廣大的 FPGA IP 獨立開發者和 ISV 是這個生態的三根支柱。缺少了任何一方,生態的建設都是舉步維艱的。

相對而言,FPGA 器件廠商和雲服務提供商應該投入更多的資金和資源來扶持獨立開發者和 ISV。同時,雲服務提供商要與 ISV 密切合作,在目前能夠看到的 FPGA 具備明顯優勢的垂直領域,迅速落地應用併產生價值,形成示範和標杆效應,以吸引更多的獨立開發者和 ISV 加入到建設 FaaS 生態的大軍中來。

第三,阿里雲 FaaS 舜天平臺還致力於建立雲上的 FPGA 開發環境與平臺,降低FPGA 設計、開發、驗證的門檻,客戶、ISV 和獨立開發者均可聚焦於設計本身,而無需考慮 EDA 工具、開發環境、驗證環境等對最終業務價值增值不多但又必須花費大量時間和精力的事情。

傳統上,FPGA 是一項“重資產”應用:要購買 FPGA 器件、要開發板卡、要購買 EDA 工具和 FPGA 調測儀器(如邏輯分析儀),所有這些加起來,形成了 FPGA 應用的高門檻。單說 EDA 工具這一項,對於中小 ISV 和獨立開發者來說,EDA 工具(含 FPGA 器件廠家提供的配套開發軟件,如 Intel 的 Quartus 和 XILINX 的Vivado)的 license 授權費用不菲,他們很難負擔得起,而要使用非正版軟件,又不得不面臨很大的風險:包括軟件侵權風險和設計中埋下隱患的風險。FaaS 舜天平臺很好的解決了這些問題,大大降低了 FPGA 開發、使用的成本和門檻,為建設健康的 FaaS 生態打下了堅實的基礎。

何為真正的 FaaS?阿里舜天平臺做了四大創新

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

1、 支持業界主流 FPGA 器件廠商

目前,阿里雲 FaaS 舜天平臺同時支持 Intel 和 XILINX 兩家主流 FPGA 廠商的器件,阿里雲也是全球 FaaS 產品線最齊全的公共雲服務商。對於只想利用 FPGA 算力加速的客戶來說,無需知道也不會知道底層提供加速的 FPGA 屬於哪家廠商。一方面,兩家廠商的器件和開發環境各有千秋;另一方面,相當一部分使用 FaaS 進行設計、驗證的第三方 ISV 和獨立開發者來說,其設計面向的是線下應用,因此必須針對某個廠家的某款器件,這就使得同時支持 Intel 和 XILINX 兩家廠商的器件變為必需。阿里雲目前是 FaaS 產品線最為齊全的雲服務提供商。

何為真正的 FaaS?阿里舜天平臺做了四大創新

2、 硬件設計創新

FaaS 舜天平臺的 F3 實例,其板卡採用了單卡雙芯片(XILINX 公司的 VU9P 芯片)的高密設計,而絕大多數號稱提供 FaaS 的雲服務提供商均採用了更為穩妥的單卡單芯片方案。單片 VU9P 的典型功耗為75W,兩片就是150W,供電和散熱成為設計時必須重點考慮的因素,這些問題解決不好的話,將極大的影響 F3 的穩定性。同時由於 PCB 達到了26層,信號完整性(比如 PCIe、MAC 等高速接口)也是巨大的挑戰之一。克服這些挑戰之後,FaaS 舜天平臺的 F3 實現了算力密度業界第一,從而實現了最多可以節省50%的物理機採購成本,這進一步提升了 FPGA 的性價比競爭力。

3、 軟件設計創新

阿里雲FaaS也有大量的軟件創新:

完整的 FPGA 監控系統,用戶可以實時獲取 FPGA 的各種運行狀態,包括功耗、溫度、IP使用率等;
用戶可選 1/2/4片 FPGA 互聯拓撲,用戶可根據自己 workload 大小靈活選取和配置合適的實例,實現最高性價比;同卡 FPGA 之間有高達 600Gbps 的高速互聯通道,應用若需兩片 FPGA 之間實現實時、大批量數據搬運,不存在帶寬瓶頸;


自適應網絡接口:兩路100G光口,使得不同 NC 之間的 FPGA 相互通信不存在任何帶寬瓶頸;
熱升級:在不中斷客戶業務的前提下,對部分用戶邏輯進行在線重配置,以實現新的功能和 Feature;
支持軟硬件聯合仿真。這些創新設計為用戶提供了靈活、豐富的實例規格選擇;大大簡化了 FPGA 的高性價比算力輸出的複雜度,同時極大的提升了 FaaS服務的易用性。
FaaS 舜天平臺提供兩大套件: HDK 和 SDK,提供更加高效、統一的開發及部署平臺。

HDK:Shell + Role的組合方式,保證了Shell 的最輕量化和穩定性,又兼顧了便捷性和靈活性;
SDK:一部分是 HDK 對應的主機端驅動(Drivers)與軟件庫(Libraries),另一部分是 FPGA 管理工具 faascmd 套件。驅動與軟件庫和 HDK 的 Shell 以及 Role 相對應,和 HDK 一起,為用戶提供統一及靈活的軟件支持。faascmd 工具套件則為用戶提供雲上 FPGA 管理服務,包括 BIT/DCP 文件安全校驗、FPGA 鏡像生成、下載及管理、FPGA 加速卡狀態查詢反饋等功能。

4、 安全性創新

採用定製虛擬化技術達到 IP 加速與部署環境的強隔離,IP 的用戶與 IP 的網表文件完全隔離,網表文件的傳輸、部署、加速流程全程對用戶都不可見;同時加速計算能力又可以透明的向使用該IP的客戶開放。通過這個創新,完全杜絕了 FPGA IP 在雲上輸出的時候被盜用、盜版的可能,提供了非常高的安全保護機制。同時 IP 的擁有方可以通過阿里雲的 KMS 加密服務對IP進行加密保護,每次對 IP 加載前都需要向KMS 服務獲取秘鑰進行解密,這樣一來針對 IP 的使用下載有據可查;並且使得 IP 發佈方的 IP 在數據中心內部都是安全的,因為沒有了 IP 提供方的 KMS 秘鑰,即便是阿里雲也無法對加密的網表進行解密操作。


分享到:


相關文章: