云計算已經成為了一種新的計算范式。對于云計算而言,虛擬化是一項必不可少的技術,通過將硬件資源虛擬化,可以實現用戶之間的隔離、系統的靈活可擴展,提升安全性,使得硬件資源可被充分利用。
從 2017 年起,因為FPGA的高可編程性、低延遲、高能效等特點,越來越多的云服務提供商,如 Amazon、阿里云、微軟 Azure,都開始在云端提供了賽靈思 FPGA 實例,邁出了云計算發展的重要一步。然而截至目前,FPGA 云服務仍以物理卡的形式、面向單一的靜態任務,沒有很好的針對云端 FPGA 虛擬化的解決方案。最近,在 FPGA 領域頂級學術會議 FCCM2020 上,清華大學汪玉教授研究小組就這一課題實現了重要突破。
—— 姚頌
賽靈思人工智能業務高級總監
開創先河
探索 FPGA 虛擬化之路
曾書霖:一直以來,我們團隊的研究重點都是以移動端神經網絡加速器為基礎,在此之上思索如何推廣到云端數據中心進行擴展。為了適配云端的虛擬化特性,從硬件架構到軟件設計都要實現對虛擬化的支持。2019 年我們發現,雖然在 CPU 和 GPU 上針對AI應用已經有很多支持虛擬化的解決方案,但是在 FPGA 領域還缺乏相對成熟的方案。于是,我們決定在 FPGA 上面同時針對深度學習和虛擬化進行研究,力圖實現 AI 應用在云端數據中心的高效部署。簡單來講,就是研究如何讓多個用戶的 AI 應用能夠同時在一個 FPGA 上高效、可靠、靈活地運行起來。
舉個例子,數據中心工作負載有一個重要特性,就是不僅存在多個用戶,而且工作負載是的。針對數據中心多任務和動態負載的特點,深度學習加速器既要能夠支持這種多任務并發執行,同時也需要適應快速的動態負載變化?;谶@種思考,我們的研究定位于對原有移動端只能支持單任務和靜態負載的神經網絡加速器進行拓展,使之可以支持多任務并發和動態負載支持的虛擬化加速器設計。
為此,我們通過多核硬件資源池、基于分塊 (tilling) 的指令封裝、兩級靜態與動態編譯的方式,實現了任務間的分離,同時還能保證快速在線重編程。
在今年5月舉行的 FPGA 領域頂級會議 FCCM 2020 上,我們團隊發表了針對深度學習加速的 FPGA 虛擬化方案。通常在 FCCM 這樣的頂級學術會議,只有評分最高的論文才會被接收,并且接收率只有 20%。因此,論文能被接收對我們團隊研究工作是極大的認可與鼓勵。這篇論文已經發布在 Arxiv 平臺,有興趣的朋友可以前往下載。
https://arxiv.org/abs/2003.12101
痛點驅動
硬件重配置帶來的時間及開銷壓力
曾書霖:在研究中,我們對公有云和私有云兩種場景進行了區分(如下圖所示)。公有云主要強調用戶之間的隔離,包括資源隔離和性能隔離。
私有云(如下圖)更像單獨為一個企業或用戶搭建的服務器,這個服務器要能夠支持多個用戶或多個任務同時執行,換句話說,就是對硬件資源持續且最大化的性能和資源利用。這種情況下,就要根據不同任務負載情況實現資源的動態劃分。因此,隨著負載變化愈加頻繁,每次負載變化都會導致整個硬件資源的重配置。我們在研究中針對不同場景進行分析,也是為了找到一種途徑從而有效降低整體重配置時間。
另一方面,一類神經網絡加速器主要是基于HLS開發,它的特點是每一次神經網絡模型發生變化時,硬件加速器也會發生相應變化,這就意味著每當用戶的任務或負載發生變化,它都需要重新生成一個加速器,即重新利用 Vivado生成一個新的硬件比特流,這方面的時間開銷是無法接受的。
與之相比,以賽靈思 DPU 加速器為代表的基于指令集的深度學習加速器,則可以通過指令集方式支持不同神經網絡模型。也就是說,當用戶任務或者負載發生變化時,無需重新生成硬件比特信息,而只需要利用軟件編譯器去生成對應指令,但這個過程依然比較慢,且頻繁的重配置甚至可能會嚴重影響用戶的任務進度。從這一維度來講,我們也希望把重配置時間盡可能降低。
Alveo+阿里云
FPGA 虛擬化研究的實驗環境
曾書霖:這一研究的最初想法誕生于 2019 年 5 月。在一年的時間里,我們從產生想法到搭建論文框架,再到不斷完善,通過團隊通力合作逐漸充實論文內容。剛開始我們只考慮了云端場景,針對虛擬化和加速器也只有初步規劃,對于真實云端應用的特性并沒有太透徹的思考,目前的研究成果都是團隊在實際研究中不斷梳理總結而成的。
一直以來,我們實驗室的研究都是以賽靈思 FPGA 為基礎。在此次研究中,我們使用賽靈思 Alveo U200 數據中心加速器卡搭建了云端加速器的本地環境。同時,我們也用到賽靈思 Virtex UltraScale+ VU9P 實現 FPGA 虛擬化環境,這是一個阿里云 F3 的實例,我們希望除了本地有一個可比擬的環境,在云端也有一個環境去驗證我們的設計。
后續計劃
完善整個FPGA虛擬化系統演示
曾書霖:未來我們會繼續就 FPGA 虛擬化整個課題,對研究以及論文進行系統層面的拓展,我們的目標是繼續發表一篇系統領域的期刊論文。目前,整篇論文的工作還是以相對簡單的DNN負載在單個 FPGA 上加速器的性能仿真為主,下一步的系統層面拓展會有一個更加復雜的軟件棧,除了底層硬件加速器、軟件編譯器,還會有操作系統、通信協議和一些虛擬化容器(container)實現宿主機和用戶之間的對接。我們的后續工作包括在軟件系統層融合主機端和客戶端的通信框架,搭建基礎的虛擬化操作系統,并針對整個軟件棧從系統的角度進行針對復雜的云端 AI 負載開展一些實驗性探究,完善整個 FPGA 虛擬化系統的 demo。
另外,我們還會考慮把研究擴展到大規模的、多塊 FPGA 的數據中心場景,從單卡設計拓展到多卡設計??梢灶A見到的是,在未來研究中隨著多卡的引入,我們會面臨一些嶄新的挑戰,而我們也也需要站在更宏觀的角度對更多情況進行綜合考量,這些對我們團隊的科研能力是非常好的鍛煉。
FPGA 研究
挑戰與機遇并存的新課題
曾書霖:我在賽靈思和收購之前的深鑒科技都有過實習經驗,這也使我對 FPGA 和 AI、深度學習有了更深入的體驗。在賽靈思實習時,我在負責 FPGA 開發的硬件組,組長給我的任務是學習使用賽靈思的 SDAccel/SDx 工具(現已整合進 Vitis),于是我得以接觸到針對云端軟件的開發工具,這在我后來進行這一研究以及開展實驗起到了非常重要的作用,因為研究過程中的很多工作是圍繞 SDx 開展的,并且數據中心里面一個很重要部署的軟件就是 SDAccel。
在我看來,FPGA 在未來將是一個與 CPU、GPU 同樣必不可少的芯片品類,特別在數據中心場景里將扮演重要角色。未來的數據中心將是異構計算為核心的硬件數據中心,在這種場景下,單獨依靠每一個硬件都無法實現整個數據中心性能和能效的最大化,我們必須要綜合考慮不同的硬件,以虛擬化思想嘗試把所有硬件資源最大化利用起來。業界與學術界此前針對 CPU、GPU 的研究已經較為充分,但對于如何把 FPGA 性能與能效最大化以及如何與其他硬件相結合,以實現一個支持智能應用的異構系統,還有很大的空間可以發展,當然同時也是一個頗具挑戰性的課題領域。
-
FPGA
+關注
關注
1630文章
21791瀏覽量
605092 -
云計算
+關注
關注
39文章
7853瀏覽量
137688
原文標題:AI 觀察室 | 無需實體 FPGA 也能 AI 部署?聽聽清華汪玉研究團隊怎么說
文章出處:【微信號:FPGA-EETrend,微信公眾號:FPGA開發圈】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論