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

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

1、 前言

近幾年,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 加速生態。編程

2、 傳統的 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 調用便可使用。工具

3、 FaaS的難度在哪裏

FaaS 的價值能夠從三方面來看:性能

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

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

一、 雲化編碼

傳統的使用 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 輸出的),而不是要看幾百頁手冊,要三五個乃至更多開發人員適配上三個月才能使用。加密

二、 算力池化

傳統上,因爲 FPGA 是焊接在所在母板的,所以,母板所在的宿主機的 CPU 對該片(或者幾片)FPGA 是擁有100%的「全部權」和「使用權」的。即使不少時候,FPGA 處於空閒狀態,它也不可能被別的宿主機(儘管可能宿主機之間存在網絡鏈接,無論是 WAN 仍是 LAN,甚至是網線直連)所使用。可是,在雲上使用環境中,每一個宿主機所「攜帶」的 FPGA 都是某個計算集羣的一份子,每一個宿主機(和運行在其上的虛擬機)既可使用本身本板/本機上的 FPGA 、也可使用其餘宿主機的 FPGA 。傳統使用方式下,沒辦法知足相似「提供 1.25 片 FPGA 或者 3.5 片 FPGA 給某個用戶使用」這樣的需求,但在雲上環境中,知足這樣的需求是雲服務的基本功能。

三、 算法 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 的算力普惠化的大目標相抵觸。

4、 阿里雲舜天平臺:作真正的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作了大量針對性的創新設計。

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

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

二、 硬件設計創新

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

三、 軟件設計創新

阿里雲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 加速卡狀態查詢反饋等功能。

四、 安全性創新

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



本文做者: 癡迷技術的

閱讀原文

本文來自雲棲社區合做夥伴「阿里技術」,如需轉載請聯繫原做者。

相關文章
相關標籤/搜索