2019年2月26日至28日,計算機網路系統領域的全球頂級學術會議NSDI於美國波士頓舉行。作為業內權威學術大會,NSDI一向十分重視收錄文章的質量,因此大會採用嚴格的雙盲評審,每篇文章都要經過兩輪總計六到八個審稿人的審閱,以及程式委員會的討論篩選。相比一些計算機頂會動輒上千的入選論文數,每屆NSDI大會上僅有幾十篇論文能夠入選。
今年的NSDI大會共收錄了包括知名高校和企業研究機構在內的49篇論文,其中有5篇來自微軟,包括微軟亞洲研究院網路研究組的最新研究成果“Direct Universal Access: Making Data Center Resources Available to FPGA”(直接通用訪問:使資料中心資源可用於FPGA)。
與此同時,每屆NSDI大會都會評選出一篇歷經 “時間考驗(Test of Time)”的論文。顧名思義,這篇論文必須在本領域發表了至少十年,經過時間考驗證明其有著深遠的影響力。微軟亞洲研究院於2009年發表的軟體無線電系統Sora(Microsoft Research Software Radio),在本屆大會上榮獲了“經歷時間考驗(Test of Time)”獎項。
FPGA互聯互通:雲基礎設施虛擬化的里程碑式進展
眾所周知,FPGA是大型雲基礎設施的底層技術支撐,如今被廣泛地部署在資料中心裡。相比於CPU或GPU,FPGA的優勢在於更高的計算效率。為了發揮FPGA的計算效率優勢,則需要FPGA直接訪問資料中心中的各種資源,而不是由CPU進行中轉,這些資源包括大量儲存,如主機記憶體和NVMe硬碟等等。而資料中心中的計算業務通常很龐大,單個FPGA無法裝載全部的邏輯或是無法滿足計算的延時需求,往往需要多個FPGA協同完成計算。同時,異構計算還需要FPGA與CPU或GPU等計算裝置交換資料。
事實上,FPGA可以看作是一種硬體程式設計,它與軟體不同,軟體可以實時更改、調整,但硬體程式碼更像是刻印其上,難以更改,所以硬體可程式設計難度非常高。當使用者訪問不同的資源時,他們需要不斷地重新編寫不同的程式碼。此外,當前資料中心中的FPGA應用通訊使用了一些定製化的協議棧,以直接訪問特定的資源,如訪問主機記憶體的DMA,通過資料中心網路訪問其他FPGA的LTL等。但是這些定製的通訊方式訪問能力有限,介面複雜。為了使用某一協議棧需要付出很多額外的開發代價。由於FPGA程式開發週期很長,這都極大地限制了FPGA程式在資料中心的使用。
針對這些問題,並基於微軟資料中心超大規模的FPGA部署,微軟亞洲研究院的研究員們創新研究了一套互聯互通系統——“直接通用訪問”(Direct Universal Access,簡稱DUA)。DUA可在不改變資料中心已有網路的情況下,為資料中心中的FPGA提供一個簡單而高效的通訊體系結構。
通過DUA,FPGA可以訪問資料中心中所有的資源。具體來說,DUA沿用了已有的資料中心網路以及FPGA訪問各種資源的通訊協議棧,並把FPGA作為“路由器”連線各個協議棧,將整個資料中心的資源連在一起。在這一資料中心全部連通的網路之上,DUA為每一個資源都提供了全資料中心統一的地址、路由以及連線管理。
DUA還對FPGA開發者提供了統一的程式設計介面來訪問各種資源,開發者不需要考慮資源的型別和所處的位置,簡化了程式碼重寫的難度,極大地降低了FPGA應用程式的開發週期。
論文的實驗結果表明,DUA在不同連線方式間轉發資料的延時不到0.1微秒,相比而言,資料中心中兩臺主機間的延時大約是3微秒。DUA在任意兩埠間轉發的吞吐量可以滿足PCIe、乙太網等FPGA外部介面的最大傳輸速率。然而,DUA這樣高的效能並沒有佔用FPGA晶片過多的邏輯資源(僅約不到10%)。更重要的是,通過使用DUA,開發者只需要分別修改幾十行程式碼,就可以把兩個應用——深度學習演算法deep crossing和網路包深度檢測演算法的核心模組——從一塊FPGA擴充套件到多塊FPGA,同時取得接近於線性的效能提升。
此外,當前現有的大型雲平臺,雖然可以實現多租戶的運營,但其實每個租戶所租用的儲存空間、算力、網路頻寬等都無法實現真正的互不干擾,尤其是分配給不同租戶的虛擬資源剛好在一臺物理機上時,干擾一定會發生。即便分配給不同租戶的虛擬資源不在一臺物理機上,也會帶來利用率低下的問題。儘管管理員絞盡腦汁將物理設施劃成大大小小的虛擬資源塊,但仍然有不少資源被浪費。而DUA可以讓多個使用者共用同一部分資源,大大提升了FPGA的利用率。
微軟亞洲研究院副研究員舒然表示,如果將整個“雲”看作是一臺PC的話,那麼FPGA互聯互通則可算是與PC中的網路協議棧相對應,並在整個“雲”作業系統中發揮非常重要的作用。“在FPGA之上搭建的這層通用的網路系統,將所有FPGA相連,形成了一個FPGA資源池,在極大地提升了硬體速度的同時,還提高了資源利用率。”
資料中心大規模部署的FPGA真正實現互聯互通,無疑是雲基礎設施虛擬化的里程碑式進展。FPGA資源池可以真正做到任何租戶使用任何物理裝置上的任何虛擬資源,以及同一應用跨裝置使用虛擬資源都不再是問題。可以認為,作為未來大型雲基礎設施的一部分,FPGA在互聯互通上的突破有望開啟整個未來基礎設施的變革。
《Direct Universal Access: Making Data Center Resources Available to FPGA》論文原文:https://www.microsoft.com/en-us/research/publication/direct-universal-access-making-data-center-resources-available-to-fpga/
Sora系統:軟體無線電領域的陳年佳釀,愈久彌香
十年前,Sora便一鳴驚人
Sora是一個完全可程式設計的、高效能的軟體無線電系統,可以用於實現最前沿的無線通訊技術(Wi-Fi、LTE以及MIMO等)。其在軟硬體平臺上的創新使得Sora可以在PC上完成高效能的無線訊號處理。這種用軟體的方式去實現以往固化在硬體中的無線電功能,無疑讓靈活度倍增,而這也是Sora的顛覆性所在。
由於Sora可以在一個通用的硬體平臺上,完全用軟體來實現各種不同的無線通訊協議,因此,如果通訊協議更新,那麼僅通過軟體升級的方式就可以進行相應的部署,而無需替換硬體板卡。這對於學術研究和實際產品應用都有著非常重要的意義。同時,Sora還起到了一個橋樑作用,將以前通訊和計算機軟體這兩個隔絕領域的研究人員連線在一起,可以在同一個平臺上工作、交流。
2009年,微軟亞洲研究院首次發表Sora這一軟體無線電系統的研究成果時,相關論文就獲得了NSDI 2009的最佳論文獎以及學術界多項最佳論文和演示大獎。
在Sora出現之前,無線電通訊系統中關鍵的底層操作,如物理層(PHY)訊號處理、媒體訪問層控制(MAC),基本上都是用專用硬體來實現的。但是,這種以硬體晶片實現的無線電系統存在兩個明顯的不足:一是,硬體晶片一旦設計生產後,就無法修改和升級;二是,硬體晶片設計成本昂貴。這都極大地制約了無線技術的研究與發展。
面對這些挑戰,微軟亞洲研究院開發了Sora。研究員們首先設計了一款新的射頻控制介皮膚,利用高速PCIe匯流排傳輸寬頻無線訊號取樣。其次,Sora充分利用了現代多核CPU的多種特性來平行加速無線訊號處理(例如,SIMD指令及利用Cache構建查詢表等)。Sora的軟體架構可以將處理流水線有效地分配到多個核上,從而實現流水線平行計算。最後,Sora中實現了一個新的核心服務,稱為專屬執行緒,可以被現實指定在特定核上,用於保障處理的實時性。
Sora的業界影響綿延至今
十年前,Sora專案的推動者和該論文的作者之一,時任微軟亞洲研究院無線與網路組負責人的張永光(現任微軟研究院首席研究員,負責微軟雷德蒙研究院網路雲化研究)就曾表示,“我們不少研究專案是著眼於10年後的應用,這些研究成果未來可能從根本上改變工業界。”在NSDI 2019大會上,這句話得到了驗證,時隔十年,Sora榮獲了“時間考驗(Test of Time)”獎,在系統領域能夠獲此殊榮的技術可謂鳳毛麟角。
張永光介紹道,Sora剛一出現就引起了學術界與工業界的興趣,眾多機構開始在科研和教學中使用Sora。隨後為了滿足研究者們日益迫切的各種研究需求,微軟亞洲研究院開源瞭如支援定製的射頻前端、支援定製的RCB、支援新的通訊模式等大量Sora系統特性,幫助更多的研究團體實現了更多的無線電領域的科研創新。
“當時軟體無線電效能低,跟不上高速的無線通訊要求,學術界的各研究機構都只能通過模擬或數學推斷進行研究,無法真實地驗證工作,這導致了無線網路通訊系統的學術研究工作與實際脫節。有了Sora之後,科研人員可以真實地實現測試,從而推動了該領域國際上的研究工作”,張永光表示。
在工業界,Sora對其他無線網路系統也產生了積極的影響。今天,軟體無線電系統廣泛使用的PCIe、多核CPU、實時射頻等技術,都是Sora率先開始使用的。今天大家所熟知的GNU radio,在十年前的效能也非常滯後,正是通過使用了這些技術,才有了今天效能良好的GNU radio。不僅如此,當今5G中vRAN的實現,也多多少少應用了類似技術。
Sora十年來給學術界和產業界帶來的深遠影響,是它得以獲得“時間考驗(Test of Time)”殊榮的原因。正如它名字裡蘊含的語義:Sora在日文中是“天空”的意思;Sora還是遊戲“王國之心”男主角的名字(在故事中,這個十六歲的勇敢男孩,手持“鑰匙刀”,成為拯救世界的先驅),Sora的發展可謂開闢了另一片天空,為整個無線電系統研究做出了傑出貢獻。